123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732 |
- 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 Base {
- constructor() {
- this.isViewOnly = false;
- this.editedTime = new Date();
- this.lastEditedTime = 0;
- this.f2Edit = false;
- this.showFormula = false;
- this.fontFamilyRecent = [];
- this.isFormula = false;
- this.isResizing = false;
- this.rowwidthcount = 0;
- this.isNewSheet = false;
- this.reqCount = 0;
- this.isInitial = true;
- this.clicks = 0;
- this.autofillDrag = false;
- this.checkedIndexes = [];
- this.selectedIndexes = [null, null, null, null];
- this.isCtrlA = false;
- this.isCreatingNewFile = false;
- this.isDriveImport = false;
- this.openJSON = false;
- }
- init(response, res, customresponce, callback) {
- this.result = response.result;
- this.documentGroup = this.result.DocumentGroup;
- this.customresult = customresponce.result;
- this.filedata = res.result;
- this.FileName = response.result.FileTitle;
- this.FileId = response.result.FileId;
- this.permissionLevel = response.result.UserPermission;
- this.lastEditedTime = response.result.LastUpdateTime;
- this.timePeriod = response.result.TimePeriod;
- this.username = response.result.LastUpdateByName;
- this.folderId = response.result.folderId;
- this.fileurl = response.result.FileUrl;
- this.Priority = response.result.Priority;
- this.newUpload = response.result.NewUpload;
- this.NewDocument = response.result.NewDocument;
- this.identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- this.unibaseusername = this.identity.name;
- this.hederText = {};
- this.mouseDownHandlers = [];
- this.keyDownHandlers = [];
- this.render();
- if (callback != null) {
- callback();
- }
- }
- clickHandler(e) {
- if (e.target.getAttribute('id') == 'importdata-cancel-bt') {
- }
- if (e.target.getAttribute('id') == 'importdata-select-btn') {
- }
- }
- removeListeners() {
- }
- unwireBootStrapKeyEvent() {
- let popup = document.body.getElementsByClassName('_bizgaze_popup_container');
- let events = $._data($(popup)[0], "events");
- if (events && events.keydown) {
- $(popup).off('keydown.dismiss.bs.modal', events.keydown[0].handler);
- }
- if (events && events.click) {
- events.click.filter((obj) => obj).forEach(click => {
- $(popup).off('click.dismiss.bs.modal', click.handler);
- });
- }
- }
- clearFindReplace() {
- if (!this.ssObj.element.querySelector('.e-find-dlg') && !this.ssObj.element.querySelector('.e-findtool-dlg')) {
- this.ssObj.ribbonModule.findValue = '';
- this.ssObj.findAndReplaceModule.shortValue = '';
- }
- }
- fullScreenHandler() {
- setTimeout(() => {
- this.setHeightOnFullScreenChange();
- }, 0);
- }
- processSheetRender() {
- this.updateProps();
- this.renderMenuBar();
- this.refreshHeight();
- this.ssRender();
- this.ribbon.init(this.result);
- if (this.permissionLevel && this.permissionLevel == Unibase.Apps.Collaboration.Enums.Share.Viewer) {
- setTimeout(() => {
- this.setViewonly();
- this.ssObj.dataBind();
- }, 0);
- }
- this.unwireBootStrapKeyEvent();
- this.priorityRender();
- this.eventListners();
- this.colourpicker();
- }
- connectHub(fileId, documentgroup) {
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/collaboration/components/docconnector.js", "apps/collaboration/components/unidochub.js"], function () {
- Unibase.Apps.Collaboration.Components.DocConnector.Instance().init(fileId, documentgroup);
- });
- }
- sheetColorRender() {
- if (!this.NewDocument) {
- Unibase.Apps.Collaboration.DocumentManager.Instance().getCustomJsonData(this.FileId).then((res) => {
- var result = res.result.tabcolors;
- this.sheets = this.ssObj.element.querySelector('.e-sheet-tab').querySelectorAll('.e-toolbar-item');
- this.sheetsName = this.ssObj.element.querySelector('.e-sheet-tab .e-active').querySelector('.e-tab-text');
- var R;
- var G;
- var B;
- for (var i = 0; i < this.sheets.length; i++) {
- if (result.sheets[i].TabColor !== null && result.sheets[i].TabColor !== undefined && result.sheets[i].TabColor.Name !== "0" && result.sheets[i].TabColor.Name !== null && result.sheets[i].TabColor.Name !== undefined) {
- if (result.sheets[i].TabColor.R == null || result.sheets[i].TabColor.R == "") {
- R = 0;
- }
- else {
- R = result.sheets[i].TabColor.R;
- }
- if (result.sheets[i].TabColor.G == null || result.sheets[i].TabColor.G == "") {
- G = 0;
- }
- else {
- G = result.sheets[i].TabColor.G;
- }
- if (result.sheets[i].TabColor.B == null || result.sheets[i].TabColor.B == "") {
- B = 0;
- }
- else {
- B = result.sheets[i].TabColor.B;
- }
- document.getElementById(this.sheets[i].id).style.borderBottom = "4px solid rgb(" + R + "," + G + "," + B + ")";
- document.getElementById(this.sheets[i].id).firstElementChild.style.height = "100%";
- }
- }
- document.getElementsByClassName("e-indicator e-ignore")[1].style.display = "none";
- });
- }
- document.getElementsByClassName("e-indicator e-ignore")[1].style.display = "none";
- }
- sheetColorChange(colorcode) {
- var sheetIndex = this.ssObj.activeSheetIndex;
- if (sheetIndex != null) {
- var rgbcolor = [];
- var name;
- if (colorcode != "0") {
- rgbcolor = this.hexToRgb(colorcode);
- name = "#" + colorcode;
- }
- else {
- rgbcolor.push(0);
- rgbcolor.push(0);
- rgbcolor.push(0);
- name = colorcode;
- }
- var data = {
- FileId: this.FileId,
- TabColor: rgbcolor,
- SheetIndex: sheetIndex,
- SheetHexCode: name,
- };
- Unibase.Apps.Collaboration.DocumentManager.Instance().saveSheetColor(data).then((responce) => {
- if (colorcode != 0) {
- document.getElementById(this.sheets[sheetIndex].id).style.borderBottom = "4px solid rgb(" + rgbcolor[0] + "," + rgbcolor[1] + "," + rgbcolor[2] + ")";
- document.getElementById(this.sheets[sheetIndex].id).firstElementChild.style.height = "100%";
- }
- else {
- document.getElementById(this.sheets[sheetIndex].id).style.borderBottom = "none";
- }
- document.getElementsByClassName("e-indicator e-ignore")[1].style.display = "none";
- this.customresult = responce.result.tabcolor;
- this.editDetails();
- let args = {
- origin: 'biz', action: 'colorchange', sheetIndex: this.getSheetIndex()
- };
- Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().bizSignalr(args);
- });
- }
- }
- hexToRgb(hex) {
- var rgb = hex.match(/.{1,2}/g);
- var arrayRgb = [
- parseInt(rgb[0], 16),
- parseInt(rgb[1], 16),
- parseInt(rgb[2], 16),
- ];
- return arrayRgb;
- }
- priorityRender() {
- if (this.Priority) {
- $(".biz_ss_star_icon_" + this.FileId).removeClass("fa-star-o");
- $(".biz_ss_star_icon_" + this.FileId).addClass("fa-star");
- $(".biz_ss_star_icon_" + this.FileId).removeClass("text-light");
- $(".biz_ss_star_icon_" + this.FileId).css("color", "orange");
- }
- }
- render() {
- this.renderPopup(this.processSheetRender.bind(this));
- }
- parseMatchValue(value) {
- if (value.trim().toLowerCase() == "true" || value.trim() == "1") {
- return true;
- }
- return false;
- }
- ssRender() {
- this.ssObj = new ej.spreadsheet.Spreadsheet(this.ssSettings);
- this.formatpainter.init(this);
- this.spellchecker.init(this);
- if (this.permissionLevel && this.permissionLevel == Unibase.Apps.Collaboration.Enums.Share.Viewer) {
- this.initialLoadFn = this.initialLoad.bind(this);
- this.ssObj.on("initialLoad", this.initialLoadFn);
- }
- this.ssObj.on("initialLoad", this.addFormatsToToolbar.bind(this));
- this.ssObj.on("deleteImage", this.deleteImageHandler, this);
- this.ssObj.on('performUndoRedo', this.performBizUndoRedo.bind(this));
- setTimeout(() => {
- this.fontFamilyObj = this.ssObj.element.querySelector('#' + this.ssObj.element.id + '_font_name').ej2_instances[0];
- this.fontFamilyObj.addEventListener('beforeOpen', this.fontFamilyBfOpen.bind(this));
- this.fontFamilyObj.beforeItemRender = this.fontFamilyBfRender.bind(this);
- this.fontFamilyObj.addEventListener('select', this.fontFamilySelect.bind(this));
- window.hlookupHandler = (value, range, rowIdx, match) => {
- var val = this.ssObj.element.querySelector('.e-spreadsheet-edit').innerText;
- range = val.split('(')[1].split(')')[0].split(',')[1];
- };
- window.vlookupHandler = (value, range, colIdx, match) => {
- let sheet = this.ssObj.biz.getActiveSheet();
- let val = this.ssObj.element.querySelector('.e-spreadsheet-edit').innerText;
- range = val.split('(')[1].split(')')[0].split(',')[1];
- colIdx = parseInt(colIdx);
- value = value.replace(/['"]+/g, '');
- match = this.parseMatchValue(match);
- let ranges = ej.spreadsheet.getIndexesFromAddress(range);
- let i, j;
- let isMatched;
- if (value.includes('#NAME')) {
- return value;
- }
- if (ranges[3] - ranges[1] + 1 < colIdx || colIdx < 1) {
- return '#REF!';
- }
- for (i = ranges[0]; i <= ranges[2]; i++) {
- if (isMatched) {
- break;
- }
- for (j = ranges[1]; j <= ranges[3]; j++) {
- let cellObj = ej.spreadsheet.getCell(i, j, sheet);
- if (cellObj && cellObj.value && match ? cellObj.value.toString() === value : cellObj.value.toString().toLowerCase() === value.toLowerCase()) {
- isMatched = true;
- break;
- }
- }
- }
- let cell = ej.spreadsheet.getCell(i - 1, ranges[1] + colIdx - 1, sheet);
- if (isMatched && cell) {
- return cell.value || '';
- }
- else {
- return '#N/A';
- }
- };
- window.hlookupHandler = (value, range, rowIdx, match) => {
- let sheet = this.ssObj.biz.getActiveSheet();
- let val = this.ssObj.element.querySelector('.e-spreadsheet-edit').innerText;
- range = val.split('(')[1].split(')')[0].split(',')[1];
- rowIdx = parseInt(rowIdx);
- value = value.replace(/['"]+/g, '');
- match = this.parseMatchValue(match);
- let ranges = ej.spreadsheet.getIndexesFromAddress(range);
- let i, j;
- let isMatched;
- if (value.includes('#NAME')) {
- return value;
- }
- if (ranges[2] - ranges[0] + 1 < rowIdx || rowIdx < 1) {
- return '#REF!';
- }
- for (i = ranges[0]; i <= ranges[2]; i++) {
- if (isMatched) {
- break;
- }
- for (j = ranges[1]; j <= ranges[3]; j++) {
- let cellObj = ej.spreadsheet.getCell(i, j, sheet);
- if (cellObj && cellObj.value && match ? cellObj.value.toString() === value : cellObj.value.toString().toLowerCase() === value.toLowerCase()) {
- isMatched = true;
- break;
- }
- }
- }
- let cell = ej.spreadsheet.getCell(ranges[0] + rowIdx - 1, j, sheet);
- if (isMatched && cell) {
- return cell.value || '';
- }
- else {
- return '#N/A';
- }
- };
- this.ssObj.addCustomFunction("hlookupHandler", "hlookup");
- this.ssObj.addCustomFunction("vlookupHandler", "vlookup");
- }, 1000);
- this.wireEvents();
- this.ssObj.appendTo('.DocumentViewer');
- this.ssObj.biz = {};
- this.addUtilFn();
- Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile = this.ssObj;
- this.initSetInterval();
- document.getElementsByClassName('e-spinner-pane')[0].style.display = 'none';
- }
- dialogOpenHandler(args) {
- if (args.dialogName == "ValidationDialog") {
- args.element.ej2_instances[0].addEventListener("open", (arg) => {
- document.querySelector(".e-validation-dlg .e-allow input").ej2_instances[0].addEventListener("change", this.validationInputHandler.bind(this));
- });
- args.element.ej2_instances[0].addEventListener("beforeClose", (arg) => {
- document.querySelector(".e-validation-dlg .e-allow input").ej2_instances[0].removeEventListener("change", this.validationInputHandler.bind(this));
- });
- }
- }
- validationInputHandler(changedargs) {
- let dataNote = "Note: date format should be MM/DD/YYYY";
- let timeNote = "Note: time format should be HH:MM:SS AM/PM ";
- let listNote = "Note: List will be seperated by comma(,)";
- let validationDailog = document.getElementsByClassName("e-validation-dlg")[0];
- let ele = document.createElement("div");
- let container = document.createElement("div");
- container.classList.add("biz-validation-note-wrapper");
- ele.classList.add("biz-validation-note");
- container.append(ele);
- let wrapperElement = document.getElementsByClassName("biz-validation-note-wrapper");
- if (changedargs.value == "Date") {
- if (wrapperElement.length == 0) {
- document.getElementsByClassName("e-cellrange")[0].before(container);
- ele.textContent = dataNote;
- validationDailog.style.marginTop = "0";
- container.style.marginBottom = "10px";
- }
- else
- document.getElementsByClassName("biz-validation-note")[0].textContent = dataNote;
- }
- else if (changedargs.value == "Time") {
- if (wrapperElement.length == 0) {
- document.getElementsByClassName("e-cellrange")[0].before(container);
- ele.textContent = timeNote;
- validationDailog.style.marginTop = "0";
- container.style.marginBottom = "10px";
- }
- else {
- document.getElementsByClassName("biz-validation-note")[0].textContent = timeNote;
- }
- }
- else if (changedargs.value == "List") {
- if (wrapperElement.length == 0) {
- document.getElementsByClassName("e-cellrange")[0].before(container);
- ele.textContent = listNote;
- validationDailog.style.marginTop = "0";
- container.style.marginBottom = "10px";
- }
- else {
- document.getElementsByClassName("biz-validation-note")[0].textContent = listNote;
- }
- }
- else {
- (wrapperElement.length !== 0) && wrapperElement[0].remove();
- validationDailog.style.marginTop = "";
- container.style.marginBottom = "";
- }
- }
- deleteImageHandler(args) {
- let sheet = this.ssObj.getActiveSheet();
- let sheetName = this.setSheetNameForInCell(sheet.name);
- if (!args.id.includes(sheetName) && document.getElementById(args.id)) {
- let data = document.getElementById(args.id).style.backgroundImage;
- args["src"] = data.substring(5, data.length - 2);
- let img = sheet.pictures.find(x => x.imageId == args.id);
- setTimeout(() => {
- if (img) {
- let index = sheet.pictures.indexOf(img);
- args.id += "_" + sheetName + "_" + img.row + "_" + img.col + "_import";
- (index != -1) && (sheet.pictures.splice(index, 1));
- }
- }, 150);
- }
- setTimeout(() => {
- args["action"] = args.name;
- (args.id.includes(sheetName)) && (this.download.ssAutoSave(args, this, true));
- }, 200);
- }
- initSetInterval() {
- if (this.timePeriod === "Minutes" || this.timePeriod === "Minute") {
- this.intr = setInterval(() => {
- this.lastEditedTime = this.lastEditedTime + 1;
- this.username = this.username;
- this.timePeriod = this.timePeriod;
- if (this.lastEditedTime != 1) {
- if (this.lastEditedTime >= 59 && this.timePeriod === "Minutes") {
- Unibase.Apps.Collaboration.DocumentManager.Instance().lastEdit(this.FileId).then((response) => {
- this.identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- this.unibaseusername = this.identity.name;
- this.lastEditedTime = response.result.Lastedittime;
- this.username = response.result.LastUpdatedByName;
- this.timePeriod = response.result.TimePeriod;
- if (this.unibaseusername === this.username) {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago";
- }
- else {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago by " + this.username;
- }
- });
- }
- else {
- this.identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- this.unibaseusername = this.identity.name;
- if (this.unibaseusername === this.username) {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago";
- }
- else {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago by " + this.username;
- }
- }
- }
- }, 60000);
- }
- else if (this.timePeriod === "Hour" || this.timePeriod === "Hours") {
- this.intrhour = setInterval(() => {
- this.lastEditedTime = this.lastEditedTime + 1;
- this.username = this.username;
- this.timePeriod = this.timePeriod;
- if (this.lastEditedTime >= 23 && this.timePeriod === "Hours") {
- Unibase.Apps.Collaboration.DocumentManager.Instance().lastEdit(this.FileId).then((response) => {
- this.identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- this.unibaseusername = this.identity.name;
- this.lastEditedTime = response.result.Lastedittime;
- this.username = response.result.LastUpdatedByName;
- this.timePeriod = response.result.TimePeriod;
- if (this.unibaseusername === this.username) {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago";
- }
- else {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago by " + this.username;
- }
- });
- }
- else {
- this.identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- this.unibaseusername = this.identity.name;
- if (this.unibaseusername === this.username) {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago";
- }
- else {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago by " + this.username;
- }
- }
- }, 3600000);
- }
- }
- activeUsers(FileUsers) {
- var connecteduser = [];
- for (var v in FileUsers) {
- let identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let unibaseId = identity.unibaseId;
- if (unibaseId != FileUsers[v].unibaseId) {
- connecteduser.push(FileUsers[v].firstName.trim());
- }
- }
- this.connecteduserfirstName = connecteduser;
- console.log(this.connecteduserfirstName);
- this.showActiveUsers(FileUsers);
- return this.connecteduserfirstName;
- }
- showActiveUsers(FileUsers) {
- var onlineusername = document.getElementsByClassName("biz-ss-onlineusersintials")[0];
- let identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let unibaseId = identity.unibaseId;
- var connectedUsersFirstChar = [];
- for (var user in this.connecteduserfirstName) {
- connectedUsersFirstChar.push(this.connecteduserfirstName[user].charAt(0));
- }
- var element = document.getElementById('biz-ss-connected_users_container');
- if (typeof (element) != 'undefined' && element != null) {
- element.remove();
- }
- let html = "";
- let html1 = `<div id="biz-ss-connected_users_container"></div>`;
- $(".biz-ss-onlineusersintials").append(html1);
- let usersHtml = '', randomColor;
- let colorPalette = ['#6640b2', '#3a55b1', '#0092ee', '#00acf0', '#1ebccd', '#009b84', '#22af47', '#88c241', '#d0d962', '#fde335', '#ffbf36', '#ff9528', '#ff6028', '#7a5449', '#c1993f', '#9e9e9e', '#5e7d8a', '#324148', '#f5f5f6', '#f95851', '#ef3975', '#b642b5', '#7a59bc', '#536bbb', '#21a0f0', '#21b7f2'];
- for (let i = 0; i < this.connecteduserfirstName.length; i++) {
- randomColor = colorPalette[Math.floor(Math.random() * colorPalette.length)];
- html = `<div id="biz-ss-connecteduser-` + unibaseId + `" class="d-flex flex-row border rounded-circle w-35p h-35p biz-ss-users-` + i + `" style="margin-right:-8px; background-color:` + randomColor + `">
- <div id="biz-ss-connecteduser_` + unibaseId + `" class="biz-ss-connectedusersfirstletter m-auto" data-toggle="popover" data-placement="top" title = "` + this.connecteduserfirstName[i] + `">` + connectedUsersFirstChar[i] + `</div></div>`;
- if (i <= 5) {
- $("#biz-ss-connected_users_container").append(html);
- }
- usersHtml += '<a class="dropdown-item d-flex flex-row align-items-center p-1 my-1" href="javascript:void(0)"><div class="biz-ss-connectedusersfirstletter border mr-2 px-2 rounded-circle text-white" style="background-color:#' + randomColor + '" title = "' + this.connecteduserfirstName[i] + '">' + connectedUsersFirstChar[i] + '</div><span class="font-13 font-weight-500">' + FileUsers[i].firstName + '</span></a>';
- if (i > 5) {
- $("#biz-ss-connected_users_container").children().last().remove();
- $("#biz-ss-connected_users_container").append('<div class="users-dropdown"><a href="javascript:void(0);" class="d-flex flex-row border rounded-circle w-35p h-35p text-dark biz-ss-users-' + i + '" role="button" id="biz-ss-connecteduser-' + unibaseId + '" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style=" background-color:lightgray;margin-right:-8px"><span class="m-auto font-14 font-weight-500"><span class="font-12 text-muted"><i class="la la-plus"></i></span>' + [i - 4] + '</span></a><div class="dropdown-menu z-index-10 position-absolute bg-white h-275p scroll-bar" aria-labelledby="biz-ss-connecteduser-' + unibaseId + '"></div>');
- $('.users-dropdown .dropdown-menu').append(usersHtml);
- }
- }
- }
- fontFamilyBfOpen(args) {
- args.element.parentElement.classList.remove('e-font-family');
- if (this.fontFamilyRecent.length) {
- let defaultItems = this.ssObj.ribbonModule.getFontFamilyItems();
- delete defaultItems[5].iconCss;
- let sheet = this.ssObj.biz.getActiveSheet();
- let range = ej.spreadsheet.getIndexesFromAddress(sheet.activeCell);
- let cell = ej.spreadsheet.getCell(range[0], range[1], sheet);
- let style = cell && cell.style && cell.style.fontFamily || 'Calibri';
- for (let i = 0; i < defaultItems.length; i++) {
- if (defaultItems[i].text === style) {
- defaultItems[i].iconCss = 'e-icons e-selected-icon';
- }
- }
- let items = this.fontFamilyRecent.concat([{ separator: true }]).concat(defaultItems);
- this.fontFamilyObj.items = items;
- this.fontFamilyObj.dataBind();
- }
- }
- fontFamilyBfRender(args) {
- args.element.style.fontFamily = args.item.text;
- }
- fontFamilySelect(args) {
- this.fontFamilyRecent = this.fontFamilyRecent.filter((e) => { return e.text !== args.item.text; });
- this.fontFamilyRecent.unshift({ text: args.item.text });
- if (this.fontFamilyRecent.length > 5) {
- this.fontFamilyRecent.pop();
- }
- }
- wireEvents() {
- if (this.permissionLevel !== Unibase.Apps.Collaboration.Enums.Share.Viewer) {
- document.body.addEventListener('mousedown', this.mouseDown.bind(this));
- document.body.addEventListener('mouseup', this.mouseUp.bind(this));
- document.body.querySelector('.DocumentViewer').addEventListener('keyup', this.keyUp.bind(this));
- document.body.addEventListener('dblclick', this.bodyDblClick.bind(this));
- document.body.querySelector('.DocumentViewer').addEventListener('keydown', this.keyDown.bind(this));
- }
- window.addEventListener('keydown', this.windowKeydown.bind(this));
- document.body.addEventListener('mouseup', this.viewOnlyMouseUp.bind(this));
- document.body.addEventListener('mousedown', this.viewOnlyMouseDown.bind(this));
- document.body.querySelector('.DocumentViewer').addEventListener('keydown', this.viewOnlyKeyDown.bind(this));
- }
- unwireEvents() {
- document.body.removeEventListener('mousedown', this.mouseDown.bind(this));
- document.body.removeEventListener('mousedown', this.mouseDown.bind(this));
- document.body.removeEventListener('mouseup', this.mouseUp.bind(this));
- document.body.querySelector('.DocumentViewer').removeEventListener('keydown', this.keyDown.bind(this));
- document.body.querySelector('.DocumentViewer').removeEventListener('keyup', this.keyUp.bind(this));
- document.body.removeEventListener('mouseup', this.viewOnlyMouseUp.bind(this));
- document.body.removeEventListener('mousedown', this.viewOnlyMouseDown.bind(this));
- document.body.querySelector('.DocumentViewer').removeEventListener('keydown', this.viewOnlyKeyDown.bind(this));
- document.body.removeEventListener('dblclick', this.bodyDblClick.bind(this));
- window.removeEventListener('keydown', this.windowKeydown.bind(this));
- }
- eventListners() {
- document.getElementsByClassName("biz-ss-cloudsave")[0].addEventListener('click', (event) => {
- Unibase.Apps.Collaboration.Components.Sheets.Ribbon.Instance().renderCloudSavedDialogue();
- });
- document.getElementsByClassName("biz-ss-cloudloading")[0].addEventListener('click', (event) => {
- Unibase.Apps.Collaboration.Components.Sheets.Ribbon.Instance().renderCloudSavingDialogue();
- });
- document.getElementsByClassName("biz-ss-filename")[0].addEventListener('focusout', (event) => {
- if (this.FileId)
- this.fileNameChange();
- else
- this.download.ssAutoSave({ action: "createNewSpreadsheet", eventArgs: {} }, this, false);
- });
- document.getElementsByClassName("biz-ss-starred")[0].addEventListener('click', (event) => {
- });
- (this.ssObj.enableContextMenu) && this.ssObj.contextMenuModule.contextMenuInstance.addEventListener("beforeItemRender", (e) => {
- var indexes = this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.biz.getActiveSheet();
- if (e.item.text == "UnHide Rows") {
- var rowStart = indexes[0];
- var rowEnd = indexes[2];
- var rows = sheet.rows;
- rows = rows.slice(rowStart, rowEnd + 1);
- if (rows.filter(({ hidden }) => hidden == true).length == 1) {
- e.element.innerHTML = "UnHide Row";
- }
- }
- if (e.item.text == "UnHide Columns") {
- var colStart = indexes[1];
- var colEnd = indexes[3];
- var cols = sheet.columns;
- cols = cols.slice(colStart, colEnd + 1);
- if (cols.filter(({ hidden }) => hidden == true).length == 1) {
- e.element.innerHTML = "UnHide Column";
- }
- }
- });
- document.onpaste = (pasteEvent) => {
- let sheet = this.ssObj.getActiveSheet();
- let indexes = ej.spreadsheet.getIndexesFromAddress(sheet.activeCell);
- let items = (event.clipboardData || event.originalEvent.clipboardData).items;
- for (var i = 0; i < 2; i++) {
- var item = items[i];
- if (item && item.kind === 'file') {
- let blob = item.getAsFile();
- let reader = new FileReader();
- reader.onload = (event) => {
- let sheetName = this.setSheetNameForInCell(sheet.name);
- this.pastedImageDetails = event;
- let cellPstn = ej.spreadsheet.getCellPosition(sheet, [indexes[0], indexes[1]], sheet.frozenRows, sheet.frozenColumns);
- let imageModel = {
- src: this.pastedImageDetails.target.result,
- top: cellPstn.top,
- left: cellPstn.left,
- id: "spreadsheet_overlay_picture_" + sheetName + "_" + indexes[0] + "_" + indexes[1]
- };
- let cellInfo = ej.spreadsheet.getCell(indexes[0], indexes[1], sheet);
- this.oldCellInfo = Object.assign({}, cellInfo);
- (!cellInfo) && (cellInfo = {});
- this.setImageSize("top", imageModel);
- this.setImageSize("left", imageModel);
- cellInfo["image"] = [imageModel];
- this.ssObj.biz.setCell(indexes[0], indexes[1], sheet, cellInfo);
- this.download.ssAutoSave({ action: "cellSave", eventArgs: { address: "sheet!" + this.ssObj.biz.getRange() } }, this, true);
- let args_undoredo = { indexes: indexes, range: this.ssObj.biz.getRange(), cellInfo: cellInfo, action: 'insertimage', origin: 'biz', sheetIndex: this.getSheetIndex() };
- this.ssObj.updateUndoRedoCollection({ name: 'bizAction', args: { action: 'bizImageInCell', options: args_undoredo, oldCells: this.oldCellInfo } });
- this.bizSignalr(args_undoredo);
- };
- reader.readAsDataURL(blob);
- }
- }
- };
- window.onkeyup = (event) => {
- if (event.keyCode == 27 && this.fullscreen.ssMenuBarFullScreen) {
- let sheetPannelElement = document.getElementById("DocumentViewer_sheet_panel");
- this.ssObj.element.parentElement.nextElementSibling.style.display = "inline-block";
- this.ssObj.element.parentElement.previousElementSibling.style.display = "block";
- document.getElementById('DocumentViewer_ribbon').style.display = 'block';
- var toolbarPannelHeight = sheetPannelElement.previousElementSibling.previousElementSibling.offsetHeight;
- var formulaPannelHeight = sheetPannelElement.previousElementSibling.offsetHeight;
- var sheetTabPannelHeight = sheetPannelElement.nextElementSibling.offsetHeight;
- var documentviewerHeight = this.ssObj.element.offsetHeight;
- document.getElementById("DocumentViewer_sheet_panel").style.height = (documentviewerHeight - toolbarPannelHeight - formulaPannelHeight - sheetTabPannelHeight) + 'px';
- this.fullscreen.ssMenuBarFullScreen = false;
- }
- };
- document.getElementsByClassName("biz-ss-filename")[0].addEventListener("input", () => {
- this.setFileNameElementWidth();
- });
- }
- getTextWidth(text, font = this.getCanvasFontSize()) {
- const canvas = this.getTextWidth.canvas || (this.getTextWidth.canvas = document.createElement("canvas"));
- const context = canvas.getContext("2d");
- context.font = font;
- const metrics = context.measureText(text);
- return metrics.width;
- }
- getCssStyle(element, prop) {
- return window.getComputedStyle(element, null).getPropertyValue(prop);
- }
- getCanvasFontSize(el = document.body) {
- const fontWeight = this.getCssStyle(el, 'font-weight') || 'normal';
- const fontSize = this.getCssStyle(el, 'font-size') || '16px';
- const fontFamily = this.getCssStyle(el, 'font-family') || 'Times New Roman';
- return `${fontWeight} ${fontSize} ${fontFamily}`;
- }
- setFileNameElementWidth() {
- let fileNameEle = document.getElementsByClassName("biz-ss-filename")[0];
- fileNameEle.style.width = (this.getTextWidth(fileNameEle.value) + 8) + "px";
- }
- mouseUp(e) {
- setTimeout((e) => {
- let customSortDlg = document.getElementsByClassName("e-customsort-dlg")[0];
- if (customSortDlg) {
- let addBtnSort = document.getElementsByClassName("e-sort-addbtn")[0];
- let dataSourceLen = document.querySelector(".e-sort-field.e-control").ej2_instances[0].dataSource.length;
- let numberOfList = document.querySelector(".e-list-sort.e-sort-template").firstElementChild.firstElementChild.children.length;
- if (dataSourceLen === numberOfList) {
- addBtnSort.classList.add("e-disabled");
- addBtnSort.disabled = true;
- }
- else {
- addBtnSort.classList.remove("e-disabled");
- addBtnSort.disabled = false;
- }
- }
- }, 300);
- }
- viewOnlyMouseUp(e) {
- if (this.fullscreen.ssMenuBarFullScreen) {
- setTimeout(() => {
- if (e.toElement.title == "Expand Formula Bar" || e.toElement.title == "Collapse Formula Bar") {
- let sheetPannelElement = document.getElementById("DocumentViewer_sheet_panel");
- var formulaPannelHeight = sheetPannelElement.previousElementSibling.offsetHeight;
- var sheetTabPannelHeight = sheetPannelElement.nextElementSibling.offsetHeight;
- sheetPannelElement.style.height = (window.innerHeight - formulaPannelHeight - sheetTabPannelHeight) + 'px';
- }
- }, 200);
- }
- }
- mouseDown(e) {
- let sheet = this.ssObj.biz.getActiveSheet();
- this.clearFindReplace();
- this.mouseDownHandlers.forEach((hanlder) => { hanlder.call(this, e); });
- var range = this.ssObj.biz.getIndexes();
- this.cellRowStart = range[0];
- this.cellColStart = range[1];
- this.cellRowEnd = range[2];
- this.cellColEnd = range[3];
- let moveToDialog = document.getElementsByClassName("copyto_dialog");
- let importDialog = document.getElementsByClassName("biz-ss-import-dialog");
- let resizeDialog = document.getElementById("biz-ss-resizetofit-dialog_dialog-header");
- let cloudSaved = e.target.closest(".biz-ss-cloudsave-container");
- let selectedTab = e.target.closest(".e-tab-wrap");
- let cloudSaving = e.target.closest(".biz-ss-cloudloading-container");
- this.clicks++;
- setTimeout(() => {
- this.clicks = 0;
- }, 400);
- if (!(cloudSaved)) {
- if (document.getElementById('biz-ss-cloudsave-container')) {
- this.ribbon.ssCloudSavedDialougObj.destroy();
- }
- }
- if (!(cloudSaving)) {
- if (document.getElementById('biz-ss-cloudloading-container')) {
- this.ribbon.ssCloudSavingDialougObj.destroy();
- }
- }
- if (this.clicks === 2) {
- let changedValues = [];
- this.clicks = 0;
- if (e.target.classList.contains("e-autofill")) {
- this.autofillDrag = true;
- let indexes = this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.getActiveSheet();
- let cellInfo = ej.spreadsheet.getCell(indexes[0], indexes[1], sheet);
- let leftCellsCount = 0;
- let currentFormula;
- let obj;
- if (cellInfo && cellInfo.formula) {
- for (var i = indexes[0] + 1; i < 100000000000000; i++) {
- let cell = ej.spreadsheet.getCell(i, indexes[1] - 1, sheet);
- if (this.checkCellObjHasValue(cell))
- leftCellsCount++;
- else
- i = 100000000000000;
- }
- if (cellInfo.formula.includes(":") && cellInfo.formula.includes("(")) {
- let ranges = cellInfo.formula.split(":");
- let row1 = Number(ranges[0].match(/\d/g).join(""));
- let row2 = Number(ranges[1].match(/\d/g).join(""));
- for (var i = indexes[0] + 1; i <= indexes[0] + leftCellsCount; i++) {
- ranges[0] = ranges[0].replace(row1.toString(), (row1 + 1).toString());
- ranges[1] = ranges[1].replace(row2.toString(), (row2 + 1).toString());
- currentFormula = ranges.join(":");
- obj = ej.spreadsheet.getCell(i, indexes[1], sheet);
- if (!obj)
- obj = { formula: currentFormula };
- else
- obj["formula"] = currentFormula;
- this.ssObj.biz.setCell(i, indexes[1], sheet, obj);
- let change = { Row: i, cell: indexes[1], CellInfo: obj };
- changedValues.push(change);
- row1++;
- row2++;
- }
- }
- else if (cellInfo.formula.includes("(")) {
- for (var i = indexes[0] + 1; i <= indexes[0] + leftCellsCount; i++) {
- let row;
- let formulaRange = cellInfo.formula.split("(");
- row = Number(formulaRange[1].match(/\d/g).join(""));
- currentFormula = cellInfo.formula.replace(row.toString(), (i + 1));
- obj = ej.spreadsheet.getCell(i, indexes[1], sheet);
- if (!obj)
- obj = { formula: currentFormula };
- else
- obj["formula"] = currentFormula;
- this.ssObj.biz.setCell(i, indexes[1], sheet, obj);
- let change = { Row: i, cell: indexes[1], CellInfo: obj };
- changedValues.push(change);
- }
- }
- else if (cellInfo.formula.includes(":")) {
- let ranges = cellInfo.formula.split(":");
- let row1 = Number(ranges[0].match(/\d/g).join(""));
- let row2 = Number(ranges[1].match(/\d/g).join(""));
- for (var i = indexes[0] + 1; i <= indexes[0] + leftCellsCount; i++) {
- ranges[0] = ranges[0].replace(row1.toString(), (row1 + 1).toString());
- ranges[1] = ranges[1].replace(row2.toString(), (row2 + 1).toString());
- currentFormula = ranges.join(":");
- obj = ej.spreadsheet.getCell(i, indexes[1], sheet);
- if (!obj)
- obj = { formula: currentFormula };
- else
- obj["formula"] = currentFormula;
- this.ssObj.biz.setCell(i, indexes[1], sheet, obj);
- let change = { Row: i, cell: indexes[1], CellInfo: obj };
- changedValues.push(change);
- row1++;
- row2++;
- }
- }
- else {
- let row = Number(cellInfo.formula.match(/\d/g).join(""));
- for (var i = indexes[0] + 1; i <= indexes[0] + leftCellsCount; i++) {
- currentFormula = cellInfo.formula.replace(row.toString(), (i + 1));
- obj = ej.spreadsheet.getCell(i, indexes[1], sheet);
- if (!obj)
- obj = { formula: currentFormula };
- else
- obj["formula"] = currentFormula;
- this.ssObj.biz.setCell(i, indexes[1], sheet, obj);
- let change = { Row: i, cell: indexes[1], CellInfo: obj };
- changedValues.push(change);
- }
- }
- }
- (changedValues.length > 0) && this.download.ssAutoSave({ action: "imageincell", changedValues: changedValues }, this, true);
- this.ssObj.selectRange(sheet.activeCell + ":" + this.generateHeaderText(indexes[3] + 1) + (changedValues.pop().Row + 1));
- }
- }
- if (moveToDialog.length > 0) {
- let unicld = Unibase.Apps.Collaboration.Components.UniCloud.Instance();
- let copyto = e.target.closest(".copyto_dialog");
- if (!(copyto)) {
- if (document.getElementsByClassName(".copyto_dialog")) {
- $("#_bizgaze_modal").modal("hide");
- $("#_bizgaze_modal").empty();
- }
- }
- this.selectFileEffectInDialog(e);
- if (e.target.id === "copyto_select_btn") {
- if (unicld.copyToSelectedFileId !== 0) {
- Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
- let base = Unibase.Apps.Collaboration.Components.Sheets.Base.Instance();
- let sheetIdx = base.getSheetIndex();
- let parsed = base.ssObj.sheets[sheetIdx];
- $("#_bizgaze_modal").modal("hide");
- $(".modal-backdrop")[$(".modal-backdrop").length - 1].remove();
- $("#moveToModal").empty();
- if (unicld.copyToSelectedFileId === base.FileId) {
- let count = 0;
- let sheets = base.ssObj.sheets;
- let sheetnames = base.ssObj.sheets.map(x => x.name);
- let sheetName;
- if (sheetnames.includes("Copy of " + parsed.name)) {
- sheets.forEach((sheet) => {
- if (sheet.name.startsWith("Copy of " + parsed.name))
- count++;
- });
- sheetName = "Copy of " + parsed.name + "(" + count + ")";
- }
- else {
- sheetName = "Copy of " + parsed.name;
- }
- let saveType = "insertsheetinsamewb";
- let data = {
- FileId: base.FileId,
- sheetName: sheetName,
- autosavetype: saveType,
- sheetIndex: Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().getSheetIndex(),
- requestId: Unibase.Apps.Collaboration.Components.Common.Download.Instance().requestId + 1,
- };
- Unibase.Apps.Collaboration.DocumentManager.Instance().ssAutoSave(data).then(() => {
- Unibase.Apps.Collaboration.DocumentManager.Instance().getJsonData(base.FileId).then((sheetdata) => {
- if (sheetdata.result != null) {
- let newdata = sheetdata.result;
- this.removeSheetIndexProp(newdata.Workbook);
- base.ssObj.openFromJson({ file: newdata });
- }
- else {
- }
- Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
- });
- });
- }
- else {
- let data = {
- FileId: base.FileId,
- copytofileid: unicld.copyToSelectedFileId,
- sheetIndex: base.getSheetIndex(),
- requestId: Unibase.Apps.Collaboration.Components.Common.Download.Instance().requestId + 1,
- };
- Unibase.Apps.Collaboration.DocumentManager.Instance().CopySheetInToExistingWorkbook(data).then((res) => {
- Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
- if (res.errors) {
- }
- else {
- }
- });
- }
- }
- else {
- unicld.moveToFolderElement.firstElementChild.click();
- }
- }
- }
- if (e.target.parentElement.id === "DocumentViewer_currencyformat") {
- for (let i = this.cellRowStart; i <= this.cellRowEnd; i++) {
- for (let j = this.cellColStart; j <= this.cellColEnd; j++) {
- var cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- cellInfo["format"] = "$#,##0.00";
- this.ssObj.biz.setCell(i, j, sheet, cellInfo);
- }
- }
- }
- if (e.target.parentElement.id === "DocumentViewer_percentageformat") {
- for (let i = this.cellRowStart; i <= this.cellRowEnd; i++) {
- for (let j = this.cellColStart; j <= this.cellColEnd; j++) {
- var cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- cellInfo["format"] = ".00%";
- this.ssObj.biz.setCell(i, j, sheet, cellInfo);
- }
- }
- }
- if (e.target.classList.contains("biz-ss-fileshare-btn")) {
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(['apps/collaboration/components/old_unicloud.js', 'platform/apps/managers/appmanager.js', 'platform/apps/enums/appconfigurationtypes.js'], () => {
- Unibase.Apps.Collaboration.Components.UniCloud.Instance().share(this.FileId, "file", 0);
- });
- }
- if (importDialog.length > 0) {
- this.selectFileEffectInDialog(e);
- if (e.target.id == "importfile-drive-cancel-btn") {
- this.ribbon.ssImportDialougObj.hide();
- setTimeout(() => {
- if (this.ribbon.ssImportDialougObj)
- this.ribbon.ssImportDialougObj.destroy();
- this.ribbon.ssImportDialougObj = null;
- }, 1000);
- }
- else if (e.target.id == "importfile-drive-select-btn") {
- this.isDriveImport = true;
- let obj = {
- name: this.ribbon.driveSelectedLiElement.textContent.trim(),
- fileid: this.ribbon.driveSelectedFileId,
- };
- let importObj = {
- upload: false,
- existingfileid: this.ribbon.driveSelectedFileId,
- FileId: this.FileId,
- filedata: "",
- filetype: "",
- filename: "",
- FilePath: null,
- RefId: 0,
- };
- this.ribbon.spreadsheetImportedFileData = importObj;
- this.ribbon.spreadsheetImportedReplaceFileData = importObj;
- this.ribbon.importedFile = { files: [obj] };
- this.ribbon.ssImportDialougObj.destroy();
- this.ribbon.ssimportedFileDataDailog();
- }
- }
- if (resizeDialog) {
- if (e.target.classList.contains("e-dlg-closeicon-btn") || e.target.classList.contains("e-icon-dlg-close")) {
- this.dialogue.hideResizeDialog();
- }
- }
- if (selectedTab) {
- let selectedTabText = selectedTab.querySelector(".e-tab-text").textContent;
- if (selectedTabText && e.which == 3)
- selectedTab ? (this.selectedSheetName = selectedTab.textContent) : (this.selectedSheetName = null);
- else
- this.selectedSheetName = null;
- }
- }
- viewOnlyMouseDown(e) {
- let fullscreenDialog = document.getElementsByClassName("biz-ss-menubar-fullscreen");
- let requestAcessDialog = e.target.closest(".biz-ss-requestaccess-dialog");
- if (fullscreenDialog.length > 0) {
- if (e.target.classList.contains("biz-ss-menubarfullscreen-dismiss"))
- this.dialogue.hideSsMenubarFullscreenDialog();
- }
- else if (this.viewOnlyDialog) {
- var viewonlydialog = ej.base.closest(e.target, '.biz-ss-viewonly-dialog');
- if (!viewonlydialog) {
- this.viewOnlyDialog.hide();
- this.viewOnlyDialog.destroy();
- }
- }
- if (this.requestAccessObj && !requestAcessDialog) {
- this.hideRequestAccess();
- }
- }
- checkCellObjHasValue(cell) {
- if (!cell)
- return false;
- else if (cell && cell.value != null && cell.value != undefined && cell.value.toString() != "" && cell.value.toString() != " ")
- return true;
- else
- return false;
- }
- selectFileEffectInDialog(e) {
- let unicld = Unibase.Apps.Collaboration.Components.UniCloud.Instance();
- let moveToList = e.target.closest(".copyto_list");
- let moveToFileList = e.target.closest(".copyto_file");
- let moveTofolder = e.target.closest(".copyto_folder");
- let driveSelectBtn = document.getElementById("importfile-drive-select-btn");
- let copyToSelectBtn = document.getElementById("copyto_select_btn");
- if (moveToList) {
- if (document.getElementsByClassName("copyto_select")[0])
- document.getElementsByClassName("copyto_select")[0].classList.remove("copyto_select");
- let copyto = e.target.closest(".copyto_list");
- copyto.classList.add("copyto_select");
- unicld.copyToSelectedFileId = 0;
- if (moveToFileList) {
- let fileid = Number(moveToFileList.id.split("_")[2]);
- unicld.copyToSelectedFileId = fileid;
- this.ribbon.driveSelectedFileId = fileid;
- this.ribbon.driveSelectedLiElement = moveToFileList;
- if (driveSelectBtn)
- driveSelectBtn.classList.remove("disabled");
- else
- copyToSelectBtn.classList.remove("disabled");
- }
- if (driveSelectBtn && driveSelectBtn.classList.contains("disabled"))
- driveSelectBtn.classList.remove("disabled");
- else if (driveSelectBtn && driveSelectBtn.classList.contains("e-disabled"))
- driveSelectBtn.classList.remove("e-disabled");
- }
- if (moveTofolder) {
- unicld.moveToFolderElement = moveTofolder;
- (driveSelectBtn) && driveSelectBtn.classList.add("e-disabled");
- if (driveSelectBtn)
- driveSelectBtn.classList.add("disabled");
- else
- copyToSelectBtn.classList.add("disabled");
- }
- }
- addUtilFn() {
- this.ssObj.biz.getRange = () => { return this.ssObj.getActiveSheet().selectedRange; };
- this.ssObj.biz.getIndexes = () => { return this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.ssObj.biz.getRange())); };
- this.ssObj.biz.setCell = (rowIdx, colIdx, sheet, cellObj) => {
- this.ssObj.clipboardModule.setCell(rowIdx, colIdx, sheet, cellObj, false, false, false);
- };
- this.ssObj.biz.getCell = (rowIdx, colIdx, sheet) => {
- return ej.spreadsheet.getCell(rowIdx, colIdx, sheet);
- };
- this.ssObj.biz.isRowAvailable = (rowIdx, activeSheet) => {
- if (activeSheet.rows[rowIdx]) {
- return true;
- }
- return false;
- };
- this.ssObj.biz.getActiveSheet = () => {
- if (this.ssObj.biz.sheetIndex > -1) {
- return this.ssObj.sheets[this.ssObj.biz.sheetIndex];
- }
- else {
- return this.ssObj.getActiveSheet();
- }
- };
- this.ssObj.biz.isRowsSelected = (indexes) => {
- if (!indexes) {
- indexes = this.ssObj.biz.getIndexes();
- }
- let colStart = indexes[1];
- let colEnd = indexes[3];
- let colCount = this.ssObj.getActiveSheet().colCount - 1;
- for (var i = indexes[0]; i <= indexes[2]; i++) {
- if (!(colStart === 0 && colEnd === colCount))
- return false;
- }
- return true;
- };
- this.ssObj.biz.isColsSelected = (indexes) => {
- if (!indexes) {
- indexes = this.ssObj.biz.getIndexes();
- }
- let rowStart = indexes[0];
- let rowEnd = indexes[2];
- let rowCount = this.ssObj.getActiveSheet().rowCount - 1;
- for (var i = indexes[1]; i <= indexes[3]; i++) {
- if (!(rowStart === 0 && rowEnd === rowCount))
- return false;
- }
- return true;
- };
- this.ssObj.biz.getSheetIndexByname = (name) => {
- let len = this.ssObj.sheets.length;
- for (let i = 0; i < len; i++) {
- if (this.ssObj.sheets[i].name == name) {
- return i;
- }
- }
- return -1;
- };
- this.ssObj.biz.getSheetByName = (name) => {
- let len = this.ssObj.sheets.length;
- for (let i = 0; i < len; i++) {
- if (this.ssObj.sheets[i].name == name) {
- return this.ssObj.sheets[i];
- }
- }
- };
- }
- getIndexesFromAddress(range) {
- return this.swapRange(ej.spreadsheet.getIndexesFromAddress(range));
- }
- getSheetIndex(sheet) {
- sheet = sheet ? sheet : this.ssObj.biz.getActiveSheet();
- let len = this.ssObj.sheets.length;
- for (let i = 0; i < len; i++) {
- if (this.ssObj.sheets[i].name == sheet.name) {
- return i;
- }
- }
- return -1;
- }
- getCellsFromIndexes(range, customRange) {
- let cells = [];
- let sheet = this.ssObj.getActiveSheet();
- let k = 0;
- for (let i = range[0]; i <= range[2]; i++) {
- for (let j = range[1]; j <= (!customRange ? range[3] : range[1] + customRange[k].length); j++) {
- cells.push(JSON.parse(JSON.stringify(ej.spreadsheet.getCell(i, j, sheet))));
- }
- k++;
- }
- return cells;
- }
- setCellObjects(range, cells, customRange) {
- let sheet = this.ssObj.getActiveSheet();
- let k = 0;
- for (let i = range[0]; i <= range[2]; i++) {
- for (let j = range[1]; j <= (!customRange ? range[3] : range[1] + customRange[k].length); j++) {
- let obj = cells.shift();
- let cell = ej.spreadsheet.getCell(i, j, sheet);
- if (cell && cell.image && cell.image[0]) {
- document.getElementById(cell.image[0].id).remove();
- }
- if (obj) {
- this.ssObj.biz.setCell(i, j, sheet, obj);
- }
- else {
- this.ssObj.biz.setCell(i, j, sheet, undefined);
- delete sheet.rows[i].cells[j];
- }
- }
- k++;
- }
- }
- generateSheetName(names, name) {
- let splitJoin;
- if (names.indexOf(name) < 0)
- return name;
- if (name.lastIndexOf(" (") > -1)
- splitJoin = name.substr(0, name.lastIndexOf(" ("));
- else
- splitJoin = name;
- let i = 2;
- while (names.indexOf(splitJoin + '(' + i + ")") > -1)
- i++;
- return name + ' (' + i + ')';
- }
- clearCell(sheet, rowIdx, colIdx) {
- this.ssObj.biz.setCell(rowIdx, colIdx, sheet, {});
- delete sheet.rows[rowIdx].cells[colIdx];
- }
- updateCell(sheet, rowIdx, colIdx, cellObj) {
- this.ssObj.biz.setCell(rowIdx, colIdx, sheet, cellObj);
- }
- clearRow(sheet, rowIdx) {
- if (this.ssObj.biz.isRowAvailable(rowIdx, sheet) && sheet.rows[rowIdx].cells) {
- let len = sheet.rows[rowIdx].cells.length;
- for (let j = 0; j < len; j++) {
- this.ssObj.biz.setCell(rowIdx, j, sheet, {});
- }
- }
- delete sheet.rows[rowIdx];
- }
- updateRow(sheet, rowIdx, rowObj) {
- for (var j = 0; rowObj && rowObj.cells && j <= rowObj.cells.length; j++) {
- let cell = rowObj.cells[j];
- cell && this.ssObj.biz.setCell(rowIdx, j, sheet, cell);
- }
- rowObj && (sheet.rows[rowIdx] = rowObj);
- }
- swapRange(cells) {
- if (cells[0] > cells[2])
- this.swap(cells, 0, 2);
- if (cells[1] > cells[3])
- this.swap(cells, 1, 3);
- return cells;
- }
- swap(array, x, y) {
- if (x == y)
- return;
- let tmp = array[x];
- array[x] = array[y];
- array[y] = tmp;
- }
- generateHeaderText(colIndex) {
- if (this.hederText[colIndex]) {
- return this.hederText[colIndex];
- }
- let text = this.generateText(colIndex);
- this.hederText[colIndex] = text;
- return text;
- }
- generateText(colIndex) {
- let alphabet = "Z";
- if (colIndex / 26 > 1)
- return this.generateText((colIndex % 26 === 0) ? (colIndex / 26 - 1) : Math.floor(colIndex / 26)) + String.fromCharCode((colIndex % 26) === 0 ? alphabet.charCodeAt(alphabet) : 64 + (colIndex % 26));
- else
- return String.fromCharCode(64 + (colIndex));
- }
- updateProps() {
- this.element = document.getElementById('DocumentViewer');
- this.ribbon = Unibase.Apps.Collaboration.Components.Sheets.Ribbon.Instance();
- this.dialogue = Unibase.Apps.Collaboration.Components.Sheets.Dialogue.Instance();
- this.autofill = Unibase.Apps.Collaboration.Components.Sheets.Autofill.Instance();
- this.formatpainter = Unibase.Apps.Collaboration.Components.Sheets.FormatPainter.Instance();
- this.spellchecker = Unibase.Apps.Collaboration.Components.Sheets.SpellChecker.Instance();
- this.util = Unibase.Apps.Collaboration.Components.Common.Util.Instance();
- this.download = Unibase.Apps.Collaboration.Components.Common.Download.Instance();
- this.fullscreen = Unibase.Apps.Collaboration.Components.Fullscreen.Instance();
- this.ssSettings = {
- contextMenuBeforeOpen: this.cmenuBfOpen.bind(this),
- contextMenuItemSelect: this.cmenuSelect.bind(this),
- actionComplete: this.actionComplete.bind(this),
- beforeCellRender: this.bfCellRender.bind(this),
- beforeSelect: this.beforeSelect.bind(this),
- actionBegin: this.actionBegin.bind(this),
- cellEdit: this.cellEdit.bind(this),
- sortComplete: this.sortComplete.bind(this),
- openComplete: this.openComplete.bind(this),
- cellSave: this.cellSave.bind(this),
- dataBound: this.dataBound.bind(this),
- beforeCellSave: this.beforeCellSave.bind(this),
- created: this.ssCreated.bind(this),
- sheets: this.filedata,
- allowSave: true,
- saveUrl: _appsettings.server_url() + '/apis/v4/unibase/collaboration/documents/spreadsheetdownload',
- };
- }
- beforeSelect(args) {
- let ele = document.getElementById("DocumentViewer_edit");
- if (ele)
- ele.textContent = "";
- this.isCtrlA = false;
- }
- bfCellRender(args) {
- if (this.openJSON) {
- this.processCustomResponse();
- this.openJSON = false;
- }
- if (this.showFormula) {
- let value = '';
- if (args.cell && args.cell.value) {
- value = args.cell.value;
- }
- if (args.cell.formula && args.cell.formula.length) {
- value = args.cell.formula;
- }
- args.element.innerHTML = value;
- }
- if (args && args.cell && args.cell.image && args.cell.image.length > 0) {
- let sheet = this.ssObj.getActiveSheet();
- let sheetName = this.setSheetNameForInCell(sheet.name);
- (sheet["pictures"] == undefined) && (sheet["pictures"] = []);
- args.cell.image.forEach((img) => {
- if ((!img.id.includes(sheetName)) && (!sheet.pictures.find(x => x.imageId == img.id)))
- sheet.pictures.push({ imageId: img.id, row: args.rowIndex, col: args.colIndex });
- });
- }
- }
- setSheetNameForInCell(currentSheetName) {
- currentSheetName = currentSheetName.replaceAll("(", "");
- currentSheetName = currentSheetName.replaceAll(")", "");
- if (currentSheetName.includes(" "))
- return currentSheetName.split(" ").join("-");
- else
- return currentSheetName;
- }
- beforeCellSave(args) {
- this.isInitial = false;
- this.prevFormulaRange = "";
- this.f2Edit = false;
- this.prevFormulaRange = "";
- this.formulaActiveCell = "";
- if (args.value && args.value.length && args.value.length && args.value[0] === '=' && this.lastKeyEvent.keyCode === 13) {
- let popup = document.body.querySelector('#' + this.ssObj.element.id + '_ac_popup');
- if (popup && popup.classList.contains('e-popup-open')) {
- args.cancel = true;
- this.ssObj.formulaModule.triggerKeyDownEvent(13);
- this.ssObj.formulaModule.hidePopUp();
- popup.classList.remove('e-popup-open');
- popup.classList.add('e-popup-close');
- }
- }
- this.removeCopyIndicator();
- }
- cellEdit(args) {
- this.isInitial = false;
- var indexes = this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.biz.getActiveSheet();
- let cellInfo = ej.spreadsheet.getCell(indexes[0], indexes[1], sheet);
- if (cellInfo && cellInfo.image && cellInfo.image[0] && cellInfo.image[0].id.startsWith("biz_image_in_cell")) {
- document.getElementById(cellInfo.image[0].id).style.display = "none";
- }
- if (this.autofillDrag) {
- this.ssObj.endEdit();
- this.autofillDrag = false;
- }
- }
- sortComplete(args) {
- debugger;
- }
- cellSave(args) {
- var indexes = this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.biz.getActiveSheet();
- let cellInfo = ej.spreadsheet.getCell(indexes[0], indexes[1], sheet);
- if (cellInfo && cellInfo.value && cellInfo.value != "") {
- if (cellInfo.image && cellInfo.image.length > 0) {
- document.getElementById(cellInfo.image[0].id).remove();
- cellInfo.image = [];
- this.download.ssAutoSave({ action: "imageincell", changedValues: [{ row: indexes[0], cell: indexes[1], cellinfo: cellInfo }] }, this, true);
- }
- }
- else if (cellInfo && cellInfo.image && cellInfo.image.length > 0) {
- document.getElementById(cellInfo.image[cellInfo.image.length - 1].id).style.display = "";
- }
- if (this.showFormula) {
- let value = '';
- if (args.value) {
- value = args.value;
- }
- if (args.formula && args.formula.length) {
- value = args.formula;
- }
- args.element.innerHTML = value;
- }
- this.removeCopyIndicator();
- }
- openComplete() {
- setTimeout(() => { this.addImageClassToAllImages(); }, 3000);
- }
- ssCreated() {
- this.openJSON = true;
- this.removeSheetIndexProp(this.filedata.Workbook);
- this.ssObj.openFromJson({ file: this.filedata });
- this.container.addEventListener('fullscreenchange', this.fullScreenHandler.bind(this));
- (this.ssObj.enableContextMenu) && this.ssObj.contextMenuModule.contextMenuInstance.addEventListener('beforeItemRender', this.cmenubfrender.bind(this));
- document.getElementsByClassName("e-formula-bar-panel")[0].firstElementChild.lastElementChild.remove();
- this.ssObj.element.querySelector('.e-sheet-tab').ej2_instances[0].addEventListener('selected', this.tabSelected.bind(this));
- this.focusDocumentViewer();
- this.setFileNameElementWidth();
- this.ssObj.addEventListener("dialogBeforeOpen", this.dialogOpenHandler.bind(this));
- }
- removeSheetIndexProp(workbook) {
- if (workbook.sheets && workbook.sheets.length > 0) {
- for (var i = 0; i < workbook.sheets.length; i++)
- (workbook.sheets[i] && workbook.sheets[i].index) && (delete workbook.sheets[i].index);
- }
- }
- processCustomResponse() {
- if (this.customresult.richtexts && this.customresult.richtexts.sheets.length) {
- let rc = this.customresult.richtexts;
- for (let i = 0; i < rc.sheets.length; i++) {
- let idx = this.ssObj.biz.getSheetIndexByname(this.customresult.richtexts.sheets[i].name);
- this.ssObj.sheets[idx].richtexts = { rows: rc.sheets[0].rows };
- }
- }
- }
- autoSave(args) {
- if (!(args.action == "import" || args.action == "gotoSheets") && !this.isInitial) {
- Unibase.Apps.Collaboration.Components.Common.Download.Instance().saveDocumentFile(this.FileId, "Excel", null, args, this).then(function () { });
- }
- }
- cmenubfrender(args) {
- let ele = document.createElement("span");
- ele.classList.add("e-badge");
- ele.classList.add("biz-contextmenu-badges");
- let indexes = this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.biz.getActiveSheet();
- if (args.item.text === "Filter") {
- if (this.ssObj.filterCollection) {
- let sheetsWithFilter = this.ssObj.filterCollection.map(x => x.sheetIndex);
- if (sheetsWithFilter.includes(this.getSheetIndex())) {
- if (args.element.classList.contains("e-disabled")) {
- args.element.classList.add("e-disabled");
- }
- }
- }
- }
- else if (args.item.text === "Clear validation") {
- for (var i = indexes[0]; i <= indexes[2]; i++) {
- for (var j = indexes[1]; j <= indexes[3]; j++) {
- let cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (cellInfo && !cellInfo.validation) {
- args.element.classList.add("e-disabled");
- i = indexes[2] + 1;
- j = indexes[3] + 1;
- }
- }
- }
- }
- else if (args.item.text === "Cut") {
- ele.textContent = "Ctrl+X";
- }
- else if (args.item.text === "Copy") {
- ele.textContent = "Ctrl+C";
- }
- else if (args.item.text === "Paste") {
- ele.textContent = "Ctrl+V";
- }
- else if (args.item.text === "Values") {
- ele.textContent = "Ctrl+Shift+V";
- }
- else if (args.item.text === "Hyperlink") {
- ele.textContent = "Ctrl+K";
- }
- if (args && args.element && !args.element.classList.contains("e-separator") && args.element.id !== "DocumentViewer_cmenu_colorpallet")
- args.element.append(ele);
- if (args.item.text === "Move Right") {
- let idx = this.ssObj.biz.getSheetIndexByname((this.selectedSheetName || sheet.name));
- if (idx === this.ssObj.sheets.length - 1)
- args.element.classList.add("e-disabled");
- }
- if (args.item.text === "Move Left") {
- let idx = this.ssObj.biz.getSheetIndexByname((this.selectedSheetName || sheet.name));
- if (idx === 0)
- args.element.classList.add("e-disabled");
- }
- }
- cmenuSelect(args) {
- let id = this.ssObj.element.id + '_cmenu_';
- let sheets = this.ssObj.sheets;
- let idx = this.getSheetIndex();
- let range = this.ssObj.biz.getRange();
- let i1, i2;
- switch (args.item.id) {
- case id + 'insertrowabove':
- case id + 'insertrow':
- this.ssObj.contextMenuModule.selectHandler({ item: { id: this.ssObj.element.id + '_cmenu_insert_row_above' } });
- break;
- case id + 'insertrowbelow':
- this.ssObj.contextMenuModule.selectHandler({ item: { id: this.ssObj.element.id + '_cmenu_insert_row_below' } });
- break;
- case id + 'insertcolright':
- this.ssObj.contextMenuModule.selectHandler({ item: { id: this.ssObj.element.id + '_cmenu_insert_column_after' } });
- break;
- case id + 'insertcolleft':
- case id + 'insertcolumn':
- this.ssObj.contextMenuModule.selectHandler({ item: { id: this.ssObj.element.id + '_cmenu_insert_column_before' } });
- break;
- case id + 'shiftright':
- this.formatpainter.insertShiftRight(range);
- this.download.ssAutoSave({ action: "insertCell" }, this, true);
- break;
- case id + 'shiftdown':
- this.formatpainter.insertShiftDown(range);
- break;
- case id + 'deleterow':
- this.ssObj.contextMenuModule.selectHandler({ item: { id: this.ssObj.element.id + '_cmenu_delete_row' } });
- break;
- case id + 'deletecolumn':
- this.ssObj.contextMenuModule.selectHandler({ item: { id: this.ssObj.element.id + '_cmenu_delete_column' } });
- break;
- case id + 'shiftleft':
- this.formatpainter.deleteShiftLeft(range);
- break;
- case id + 'shiftup':
- this.formatpainter.deleteShiftUp(range);
- break;
- case id + 'deletevalue':
- this.ssObj.editModule.editingHandler('delete');
- break;
- case id + 'datvalidation':
- this.ssObj.notify('initiatedatavalidation', null);
- break;
- case id + 'highlightinvaliddata':
- this.ssObj.addInvalidHighlight();
- break;
- case id + 'clearhighlight':
- this.ssObj.removeInvalidHighlight();
- break;
- case id + 'clearvalidation':
- this.ssObj.notify('removeDataValidation', null);
- break;
- case id + 'delete_sheet':
- args.item.id = "skipped";
- this.formatpainter.renderConfirmDlg();
- break;
- case id + 'biz_insert':
- this.ssObj.element.querySelector('.e-add-sheet-tab').click();
- break;
- case id + 'existingspreadsheet':
- break;
- case id + 'newspreadsheet':
- Unibase.Apps.Collaboration.DocumentManager.Instance().CopySheetToNewSpreadsheet({ FileId: this.FileId, sheetIndex: this.getSheetIndex() }).then((res) => {
- });
- break;
- case id + 'removefilter':
- this.ssObj.applyFilter();
- let sortingBtn = document.getElementById("DocumentViewer_sorting");
- sortingBtn.firstElementChild.style.color = "";
- break;
- case id + 'changecolor':
- break;
- case id + 'insertnote':
- this.formatpainter.insertNote();
- break;
- case id + 'clearnotes':
- this.formatpainter.clearComment();
- break;
- case id + 'resizecolumns':
- case id + 'resizecolumn':
- case id + 'resizerows':
- case id + 'resizerow':
- this.dialogue.renderResizeDialog();
- break;
- }
- }
- cmenuBfOpen(args) {
- let target = this.ssObj.contextMenuModule.getTarget(args.event.target);
- let id = this.ssObj.element.id + '_cmenu_';
- let ins = this.ssObj.contextMenuModule.contextMenuInstance;
- let data = this.ssObj.contextMenuModule.getDataSource(target);
- let spt = this.ssObj.biz.getRange().split(':');
- let stCol = spt[0].replace(/[0-9]/g, '');
- let endCol = spt[1].replace(/[0-9]/g, '');
- let stRow = spt[0].match(/\d+$/)[0];
- let endRow = spt[1].match(/\d+$/)[0];
- let indexes = this.ssObj.biz.getIndexes();
- let isRowsSelected = this.ssObj.biz.isRowsSelected(indexes);
- let isColsSelected = this.ssObj.biz.isColsSelected(indexes);
- let row = (indexes[2] - indexes[0] + 1);
- let col = (indexes[3] - indexes[1] + 1);
- let sheet = this.ssObj.biz.getActiveSheet();
- let range = this.ssObj.getActiveSheet().selectedRange;
- let count = (range.match(/:/g) || []).length;
- let ranges;
- let dataValidationItems = [{ text: 'Data validation', iconCss: '', id: id + 'datvalidation' },
- { text: 'Highlight invalid data', iconCss: '', id: id + 'highlightinvaliddata' },
- { text: 'Clear highlight', iconCss: '', id: id + 'clearhighlight' },
- { text: 'Clear validation', cssClass: "e-disabled", iconCss: '', id: id + 'clearvalidation' },];
- switch (target) {
- case 'Content':
- if (count <= 1) {
- data.push({ separator: true });
- if (isRowsSelected) {
- data.push({ text: 'Insert ' + row + ' above', iconCss: '', id: id + 'insertrowabove' });
- data.push({ text: 'Insert ' + row + ' below', iconCss: '', id: id + 'insertrowbelow' });
- }
- else {
- !isColsSelected && data.push({ text: 'Insert ' + row + ' row' + (row > 1 ? 's' : ''), iconCss: '', id: id + 'insertrow' });
- }
- if (isColsSelected) {
- data.push({ text: 'Insert ' + col + ' left', iconCss: '', id: id + 'insertcolleft' });
- data.push({ text: 'Insert ' + col + ' right', iconCss: '', id: id + 'insertcolright' });
- }
- else {
- !isRowsSelected && data.push({ text: 'Insert ' + col + ' column' + (col > 1 ? 's' : ''), iconCss: '', id: id + 'insertcolumn' });
- }
- data.push({ text: 'Insert cells', iconCss: '', id: id + 'insertcells', items: [{ text: 'Shift right', iconCss: '', id: id + 'shiftright' }, { text: 'Shift down', iconCss: '', id: id + 'shiftdown' }] });
- data.push({ separator: true });
- !isColsSelected && data.push({ text: row > 1 ? 'Delete selected rows' : 'Delete row', iconCss: '', id: id + 'deleterow' });
- !isRowsSelected && data.push({ text: stCol === endCol ? 'Delete column ' + stCol : 'Delete columns ' + stCol + ' - ' + endCol, iconCss: '', id: id + 'deletecolumn' });
- data.push({ text: 'Delete cells', iconCss: '', id: id + 'deletecells', items: [{ text: 'Shift left', iconCss: '', id: id + 'shiftleft' }, { text: 'Shift up', iconCss: '', id: id + 'shiftup' }] });
- data.push({ separator: true });
- data.push({ text: 'Insert note', iconCss: '', id: id + 'insertnote' });
- if (sheet.comments && sheet.comments.rows[indexes[0]] && sheet.comments.rows[indexes[0]].cells[indexes[1]]) {
- data.push({ text: 'Clear notes', iconCss: '', id: id + 'clearnotes' });
- }
- }
- data.push({ text: 'Validations', iconCss: '', id: id + 'datvalidation', items: dataValidationItems });
- data.find(x => x.text == "Filter").items.splice(2, 0, { text: "Remove filter", id: id + "removefilter" });
- break;
- case 'ColumnHeader':
- data.splice(5, 1);
- if (isColsSelected) {
- data.splice(5, 0, { text: 'Insert ' + col + ' left', iconCss: '', id: id + 'insertcolleft' });
- data.splice(6, 0, { text: 'Insert ' + col + ' right', iconCss: '', id: id + 'insertcolright' });
- if (range.includes(" "))
- data.splice(9, 0, { text: 'Resize selected columns', iconCss: '', id: id + 'resizecolumns' });
- else if (col > 1) {
- let cols = this.generateText((indexes[1] + 1)) + " - " + this.generateText((indexes[3] + 1));
- data.splice(9, 0, { text: 'Resize Columns ' + cols, iconCss: '', id: id + 'resizecolumns' });
- }
- else
- data.splice(9, 0, { text: 'Resize Column', iconCss: '', id: id + 'resizecolumn' });
- }
- else
- data.splice(5, 0, { text: 'Insert ' + col + ' column' + (col > 1 ? 's' : ''), iconCss: '', id: id + 'insertcolumn' });
- data.splice(data.length - 1, 0, { text: 'Clear column' + (col > 1 ? 's' : ''), iconCss: '', id: id + 'deletevalue' });
- data.push({ separator: true });
- data.push({ text: 'Validations', iconCss: '', id: id + 'datvalidation', items: dataValidationItems });
- break;
- case 'RowHeader':
- data.splice(5, 1);
- if (isRowsSelected) {
- data.splice(5, 0, { text: 'Insert ' + row + ' above', iconCss: '', id: id + 'insertrowabove' });
- data.splice(6, 0, { text: 'Insert ' + row + ' below', iconCss: '', id: id + 'insertrowbelow' });
- if (range.includes(" "))
- data.splice(10, 0, { text: 'Resize selected rows', iconCss: '', id: id + 'resizerows' });
- else if (row > 1)
- data.splice(10, 0, { text: 'Resize rows ' + (indexes[0] + 1) + " - " + (indexes[2] + 1), iconCss: '', id: id + 'resizerows' });
- else
- data.splice(10, 0, { text: 'Resize row ', iconCss: '', id: id + 'resizerow' });
- }
- else
- data.splice(5, 0, { text: 'Insert ' + row + ' row' + (row > 1 ? 's' : ''), iconCss: '', id: id + 'insertrow' });
- data.splice(data.length - 1, 0, { text: 'Clear row' + (row > 1 ? 's' : ''), iconCss: '', id: id + 'deletevalue' });
- data.push({ separator: true });
- data.push({ text: 'Validations', iconCss: '', id: id + 'datvalidation', items: dataValidationItems });
- break;
- case 'Footer':
- data[0].id = this.ssObj.element.id + '_cmenu_biz_insert';
- data.push({
- text: 'Copy to', iconCss: '', id: id + 'copyto', items: [{ text: "New Spreadsheet", iconCss: '', id: id + 'newspreadsheet' },
- { text: "Existing Spreadsheet", iconCss: '', id: id + 'existingspreadsheet' }]
- });
- data.push({ text: 'Change Color', iconCss: '', id: id + 'changecolor', items: [{ id: id + 'colorpallet' }] });
- break;
- }
- if (target.length) {
- ins.items = data;
- ins.dataBind();
- if (target === 'footer') {
- }
- if (target === 'Content') {
- }
- }
- if (args.items && args.items[0] && args.items[0].id == id + "colorpallet") {
- document.getElementById(id + "colorpallet").appendChild(this.changecolor);
- args.element.style.height = "225px";
- let top = window.innerHeight - 400;
- args.element.style.top = args.element.style.top + top + "px";
- args.element.style.borderRadius = "5px";
- }
- }
- tabSelected() {
- this.updateSheetIcon();
- }
- colourpicker() {
- this.changecolor = document.createElement("div");
- this.changecolor.setAttribute("id", "changecolor_" + this.FileId);
- document.body.appendChild(this.changecolor);
- this.ModalHtml = ` <div id ="colorpalettecointiner"><div class='list-group' id='colourpalette'><button id="biz-ss-colorpalletreset" style="border: none;text-align: left;font-weight: 400;padding: 0px;cursor: pointer;" onclick="Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().sheetColorChange('0')"><span><i class="la la-tint-slash"></i></span>Reset</button></div></div>`;
- $("#changecolor_" + this.FileId).html(this.ModalHtml);
- var palette = [
- '000000', '434343', '666666', '999999', 'b7b7b7', 'cccccc', 'd9d9d9', 'efefef', 'f3f3f3', 'ffffff',
- '980000', 'ff0000', 'ff9900', 'ffff00', '00ff00', '00ffff', '4a86e8', '0000ff', '9900ff', 'ff00ff',
- 'e6b8af', 'f4cccc', 'fce5cd', 'fff2cc', 'd9ead3', 'd0e0e3', 'c9daf8', 'cfe2f3', 'd9d2e9', 'ead1dc',
- 'dd7e6b', 'ea9999', 'f9cb9c', 'ffe599', 'b6d7a8', 'a2c4c9', 'a4c2f4', '9fc5e8', 'b4a7d6', 'd5a6bd',
- 'cc4125', 'e06666', 'f6b26b', 'ffd966', '93c47d', '76a5af', '6d9eeb', '6fa8dc', '8e7cc3', 'c27ba0',
- 'a61c00', 'cc0000', 'e69138', 'f1c232', '6aa84f', '45818e', '3c78d8', '3d85c6', '674ea7', 'a64d79',
- '85200c', '990000', 'b45f06', 'bf9000', '38761d', '134f5c', '1155cc', '0b5394', '351c75', '741b47',
- '5b0f00', '660000', '783f04', '7f6000', '274e13', '0c343d', '1c4587', '073763', '20124d', '4c1130',
- ];
- var k = 0;
- var html = "";
- var html1 = "";
- for (let i = 0; i < 8; i++) {
- html = `<div id="biz-ss-colorpallet-` + i + `" class="list-group" style="display: flex;flex-direction: row;">`;
- $("#colourpalette").append(html);
- var rowcount = 10;
- let j = 0;
- for (j; j < rowcount; j++) {
- html1 = `<span class="colorpalettegrid border rounded-circle" role="gridcell" id="id_` + palette[k] + `" aria-label="` + palette[k] + `" style="background-color:#` + palette[k] + `;width: 20px;height: 20px;"" onclick="Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().sheetColorChange('` + palette[k] + `')"></span>`;
- $("#biz-ss-colorpallet-" + i).append(html1);
- k++;
- }
- $("#biz-ss-colorpallet-" + i).append("</div>");
- }
- }
- updatePadding(isAdd) {
- let active = this.ssObj.element.querySelector('.e-sheet-tab').querySelector('.biz-dd-active');
- if (active) {
- let parent = active.parentElement;
- isAdd ? parent.classList.add('biz-dd-parent') : parent.classList.remove('biz-dd-parent');
- }
- }
- updateSheetIcon() {
- let sheets = this.ssObj.sheets;
- let activeSheet = this.ssObj.getActiveSheet();
- let sheetsElem = this.ssObj.element.querySelector('.e-sheet-tab').querySelectorAll('.e-text-wrap');
- for (let i = 0; i < sheets.length; i++) {
- if (sheetsElem[i] && !sheetsElem[i].querySelectorAll('.biz-dd-wrap').length) {
- let wrap = ej.base.createElement('div', { className: 'biz-dd-wrap' });
- let icon = ej.base.createElement('span', { className: 'e-icons biz-dd-icon' });
- wrap.appendChild(icon);
- sheetsElem[i].appendChild(wrap);
- }
- let wrap = sheetsElem[i].querySelector('.biz-dd-wrap');
- wrap.classList.remove('biz-dd-active');
- if (activeSheet.name === sheetsElem[i].querySelector('.e-tab-text').innerText) {
- wrap.classList.add('biz-dd-active');
- }
- }
- }
- dataBound(args) {
- if (this.isInitial) {
- this.reqCount++;
- if (this.reqCount == 2)
- this.isInitial = false;
- }
- setTimeout(() => {
- this.ssObj.sheetTabsModule.refreshSheetTab();
- this.sheetColorRender();
- }, 50);
- this.updateSheetIcon();
- this.formatpainter.updateEdgesOnBound();
- }
- actionBegin(args) {
- this.prevFormulaRange = "";
- this.formulaActiveCell = "";
- this.isFormula = false;
- if (args.action === "filter") {
- this.sortingBtn = document.getElementById("DocumentViewer_sorting");
- this.sortingBtn.firstElementChild.style.color = "rgb(12 143 11)";
- }
- else if (args.action === 'renameSheet') {
- let active = this.ssObj.element.querySelector('.e-sheet-tab').querySelector('.biz-dd-active');
- this.updatePadding(true);
- active.remove();
- }
- else if (args.action === 'beforeInsertImage') {
- var indexes = this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.biz.getActiveSheet();
- this.oldCellInfo = Object.assign({}, ej.spreadsheet.getCell(indexes[0], indexes[1], sheet));
- }
- else if (args.action === 'clipboard') {
- (args.args && args.args.eventArgs && args.args.eventArgs.copiedInfo && args.args.eventArgs.copiedInfo.isCut) && this.removeInCellImage(args.args.eventArgs.pastedRange);
- }
- }
- actionComplete(args) {
- this.prevFormulaRange = "";
- this.formulaActiveCell = "";
- args.action === 'cellSave' && (this.f2Edit = false, this.isFormula = false);
- if (args.eventArgs && args.eventArgs.modelType && (args.eventArgs.modelType == "Sheet" || args.eventArgs.modelType == "Row" || args.eventArgs.modelType == "Column") && (args.action == "insert" || args.action == "delete")) {
- args.eventArgs.sheet = [];
- this.focusDocumentViewer();
- }
- if (args.action == "resizeToFit") {
- this.ribbon.imageInCell = true;
- }
- if (args.action !== 'import' && Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.signalrData != JSON.stringify(args)) {
- var onlineStatus = (window.navigator.onLine ? 'on' : 'off') + 'line';
- window.addEventListener('online', () => document.getElementsByClassName('biz-ss-cloudsave')[0].style.display = 'inline-block');
- window.addEventListener('online', () => document.getElementsByClassName("biz-ss-cloudoff")[0].style.display = "none");
- window.addEventListener('offline', () => document.getElementsByClassName('biz-ss-cloudsave')[0].style.display = 'none');
- window.addEventListener('offline', () => document.getElementsByClassName("biz-ss-cloudoff")[0].style.display = "inline-block");
- try {
- Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).
- getConnection().
- invoke("ChangeDoc", Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().FileId, JSON.stringify(args));
- }
- catch (_a) {
- }
- }
- if (args.eventArgs && args.eventArgs.modelType && args.eventArgs.modelType == "Row" && args.action == "delete") {
- this.removeInCellImage("", [args.eventArgs.startIndex, 0, args.eventArgs.endIndex, this.ssObj.biz.getActiveSheet().usedRange.colIndex]);
- }
- if (args.eventArgs && args.eventArgs.modelType && args.eventArgs.modelType == "Column" && args.action == "delete") {
- this.removeInCellImage("", [0, args.eventArgs.startIndex, this.ssObj.biz.getActiveSheet().usedRange.rowIndex, args.eventArgs.endIndex]);
- }
- if (args.action === 'renameSheet') {
- this.updateSheetIcon();
- this.updatePadding(false);
- this.sheetColorRender();
- }
- if (args.action === 'moveSheet') {
- this.ssObj.sheets[args.position].index = args.position;
- this.ssObj.sheets[args.sheetIndexes[0]].index = args.sheetIndexes[0];
- var data = {
- FileId: this.FileId,
- PreviousSheetIndex: args.sheetIndexes[0],
- PresentSheetIndex: args.position,
- };
- Unibase.Apps.Collaboration.DocumentManager.Instance().updateSheetColorIndex(data).then((res) => {
- this.customresult = res.result;
- this.sheetColorRender();
- });
- this.focusDocumentViewer();
- }
- if (args.action === 'insert') {
- if (args.eventArgs.insertType === "Row") {
- this.ssObj.insertRow(args.eventArgs.index, args.eventArgs.index);
- }
- if (args.eventArgs.insertType === "Column") {
- this.ssObj.insertColumn([{ index: args.eventArgs.index, width: 95 }], args.eventArgs.index);
- }
- }
- if (args.action == "insertImage") {
- this.actionInsertImage(args);
- }
- if (args.action === "imageRefresh" && args && args.eventArgs && args.eventArgs.id) {
- this.imageRefresh(args);
- }
- if (args.action === "resize" && !this.isResizing) {
- this.resizeImagesOnActionResize(args);
- this.isResizing = true;
- this.adjustRowsAndColumnWidth(args);
- this.isResizing = false;
- }
- if (args.action === "cellDelete")
- this.removeInCellImage(args.eventArgs.address.split("!")[1]);
- if (args.action === "format") {
- setTimeout(() => {
- this.setIncellImageHeightOnFontChange(args);
- }, 100);
- }
- if (args.action === 'resize' || (args.action === 'format' && args.eventArgs.style && args.eventArgs.style.fontSize)) {
- if (args.eventArgs.isCol) {
- let size = parseInt(args.eventArgs.width) - parseInt(args.eventArgs.oldWidth);
- this.formatpainter.refreshEdges(false, undefined, args.eventArgs.index, size);
- }
- else if (args.eventArgs.isCol === false) {
- let size = parseInt(args.eventArgs.height) - parseInt(args.eventArgs.oldHeight);
- this.formatpainter.refreshEdges(false, args.eventArgs.index, undefined, size);
- }
- else {
- this.formatpainter.refreshEdges(false);
- }
- }
- if (args.action === 'clipboard') {
- this.removeCopyIndicator();
- this.clipboardBizImages(args);
- (args.eventArgs && args.eventArgs.copiedInfo && args.eventArgs.copiedInfo.isCut) && (this.removeInCellImage(args.eventArgs.pastedRange.split("!")[1]));
- }
- if (args.action === "gotoSheet") {
- this.sortingBtn = document.getElementById("DocumentViewer_sorting");
- this.sortingBtn.firstElementChild.style.color = "";
- if ((this.ssObj.filterCollection) && this.ssObj.filterCollection.find(x => x.sheetIndex === args.eventArgs.currentSheetIndex)) {
- this.sortingBtn.firstElementChild.style.color = "rgb(12 143 11)";
- }
- setTimeout(() => { this.addImageClassToAllImages(); }, 1000);
- this.focusDocumentViewer();
- }
- if (args.action === "filter" && !this.isInitial) {
- this.updateFilters(args);
- }
- if (args.action == "import") {
- this.updateFilterIcon();
- }
- this.removeCopyIndicator();
- args.action == "gotoSheet" && (setTimeout(() => { this.addImageClassToAllImages(); }, 1000));
- (this.ribbon.imageInCell) ? (this.ribbon.imageInCell = false) : this.autoSave(args);
- }
- updateFilterIcon() {
- setTimeout(() => {
- this.sortingBtn = document.getElementById("DocumentViewer_sorting");
- if (this.ssObj.filterModule.filterCollection.has(this.getSheetIndex())) {
- this.sortingBtn.firstElementChild.style.color = "rgb(12 143 11)";
- }
- else {
- this.sortingBtn.firstElementChild.style.color = "";
- }
- });
- }
- focusDocumentViewer() {
- setTimeout(() => {
- document.getElementById("DocumentViewer").focus();
- }, 100);
- }
- removeInCellImage(range, indexes) {
- let rangeIndexes;
- if (!indexes) {
- rangeIndexes = ej.spreadsheet.getIndexesFromAddress(range);
- }
- else {
- rangeIndexes = indexes;
- }
- let sheet = this.ssObj.biz.getActiveSheet();
- let sheetName = this.setSheetNameForInCell(sheet.name);
- for (var i = rangeIndexes[0]; i <= rangeIndexes[2]; i++) {
- for (var j = rangeIndexes[1]; j <= rangeIndexes[3]; j++) {
- let idEndswith = sheetName + "_" + i + "_" + j;
- let cell = ej.spreadsheet.getCell(i, j, sheet);
- if (cell && cell.image && cell.image[0] && cell.image[0].id.startsWith("biz_image_in_cell")) {
- let img = document.getElementById(cell.image[0].id);
- if (img)
- img.remove();
- }
- else if (document.querySelector(`[id$= ${idEndswith}]`)) {
- let img = document.querySelector(`[id$= ${idEndswith}]`);
- if (img)
- img.remove();
- }
- }
- }
- }
- removeCopyIndicator() {
- if (document.getElementsByClassName("e-copy-indicator")[0])
- document.getElementsByClassName("e-copy-indicator")[0].style.display = "none";
- if (document.getElementsByClassName("e-formularef-indicator")[0])
- document.getElementsByClassName("e-formularef-indicator")[0].remove();
- }
- updateFilters(args) {
- this.ribbon.imageInCell = true;
- let sheetIdx = this.getSheetIndex();
- if (args.eventArgs.filterOptions) {
- let collection = {
- sheetIdx: sheetIdx, column: [], criteria: [], dataType: [], filterRange: args.eventArgs.range,
- hasFilter: true, predicates: [], value: []
- };
- this.download.ssAutoSave({ action: "applyFilter", collection: collection }, this, true);
- }
- else if (args.eventArgs.predicates) {
- let cols = args.eventArgs.predicates.map(x => x.field);
- let collection = {
- sheetIdx: sheetIdx,
- column: cols.map(this.lettersToNumber),
- criteria: args.eventArgs.predicates.map(x => x.operator),
- dataType: args.eventArgs.predicates.map(x => x.type),
- filterRange: args.eventArgs.range,
- hasFilter: true,
- predicates: args.eventArgs.predicates.map(x => x.predicate),
- value: args.eventArgs.predicates.map(x => x.value),
- };
- this.download.ssAutoSave({ action: "updateFilter", collection: collection }, this, true);
- if (this.ssObj.sheets[sheetIdx] && this.ssObj.sheets[sheetIdx].rows) {
- for (var i = 0; i < this.ssObj.sheets[sheetIdx].rows.length; i++) {
- if (this.ssObj.sheets[sheetIdx].rows[i] && this.ssObj.sheets[sheetIdx].rows[i].hidden && this.ssObj.sheets[sheetIdx].rows[i].cells) {
- for (var j = 0; j < this.ssObj.sheets[sheetIdx].rows[i].cells.length; j++) {
- if (this.ssObj.sheets[sheetIdx].rows[i].cells[j] && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0] && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0].id.startsWith("biz_image_in_cell")) {
- let img = document.getElementById(this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0].id);
- if (img)
- img.style.display = "none";
- }
- }
- }
- else if (this.ssObj.sheets[sheetIdx].rows[i].cells) {
- for (var j = 0; j < this.ssObj.sheets[sheetIdx].rows[i].cells.length; j++) {
- if (this.ssObj.sheets[sheetIdx].rows[i].cells[j] && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0] && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0].id.startsWith("biz_image_in_cell")) {
- let img = document.getElementById(this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0].id);
- img.style.display = "";
- }
- }
- }
- }
- }
- }
- else if (!args.eventArgs.filterOptions && !args.eventArgs.predicates) {
- if (this.ssObj.sheets[sheetIdx] && this.ssObj.sheets[sheetIdx].rows) {
- for (var i = 0; i < this.ssObj.sheets[sheetIdx].rows.length; i++) {
- if (this.ssObj.sheets[sheetIdx].rows[i] && this.ssObj.sheets[sheetIdx].rows[i].hidden && this.ssObj.sheets[sheetIdx].rows[i].hidden == false && this.ssObj.sheets[sheetIdx].rows[i].cells) {
- for (var j = 0; j < this.ssObj.sheets[sheetIdx].rows[i].cells.length; j++) {
- if (this.ssObj.sheets[sheetIdx].rows[i].cells[j] && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0] && this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0].id.startsWith("biz_image_in_cell")) {
- let img = document.getElementById(this.ssObj.sheets[sheetIdx].rows[i].cells[j].image[0].id);
- img.style.display = "";
- }
- }
- }
- }
- }
- this.download.ssAutoSave({ action: "removeFilter", sheetIndex: this.getSheetIndex() }, this, true);
- }
- }
- setIncellImageHeightOnFontChange(args) {
- if (args.eventArgs && args.eventArgs.style && args.eventArgs.style.fontSize) {
- let indexes = this.ssObj.biz.getIndexes();
- let sheetIdx = this.getSheetIndex();
- let sheet = this.ssObj.biz.getActiveSheet();
- let freezeRow = this.ssObj.frozenRowCount(sheet);
- let freezeCol = this.ssObj.frozenColCount(sheet);
- let changedValues = [];
- let remainingRowsImglist = [];
- if (sheet.rows[indexes[0]].cells) {
- let currentRowImageslist = [];
- for (var i = indexes[0]; i <= indexes[2]; i++) {
- currentRowImageslist = currentRowImageslist.concat(sheet.rows[i].cells.filter(x => x && x.image).map(x => x && x.image[0]));
- }
- currentRowImageslist.forEach(x => {
- if ((x && x.id && x.id).startsWith("biz_image_in_cell")) {
- let currentrow = Number(x.id.split("_")[5]);
- let currentcol = Number(x.id.split("_")[6]);
- let height = (this.ssObj.sheets[sheetIdx].rows[currentrow].height || 19);
- let cellPstn = ej.spreadsheet.getCellPosition(sheet, [currentrow, currentcol], freezeRow, freezeCol);
- if (document.getElementById(x.id)) {
- (document.getElementById(x.id).style.top = cellPstn.top + "px");
- document.getElementById(x.id).style.height = height + "px";
- }
- let cell = ej.spreadsheet.getCell(currentrow, currentcol, sheet);
- cell.image[0].height = height - 2;
- this.setImageSize("top", cell.image[0]);
- this.setImageSize("left", cell.image[0]);
- changedValues.push({ row: currentrow, cell: currentcol, cellinfo: cell });
- }
- });
- }
- for (let i = indexes[2] + 1; i < sheet.rows.length; i++) {
- let list = sheet.rows[i] && sheet.rows[i].cells && sheet.rows[i].cells.filter(x => x && x.image).map(x => x && x.image[0]);
- (list) && (remainingRowsImglist = remainingRowsImglist.concat(list));
- }
- remainingRowsImglist.forEach(x => {
- if ((x && x.id && x.id).startsWith("biz_image_in_cell")) {
- let row = parseInt(x.id.split("_")[5]);
- let col = parseInt(x.id.split("_")[6]);
- let cell = ej.spreadsheet.getCell(row, col, sheet);
- let cellPstn = ej.spreadsheet.getCellPosition(sheet, [row, col], freezeRow, freezeCol);
- if (document.getElementById(x.id))
- (document.getElementById(x.id).style.top = cellPstn.top + "px");
- cell.image[0].top = cellPstn.top;
- this.setImageSize("top", cell.image[0]);
- this.setImageSize("left", cell.image[0]);
- changedValues.push({ row: row, cell: col, cellinfo: cell });
- }
- });
- this.ribbon.imageInCell = true;
- changedValues.length > 0 && this.download.ssAutoSave({ action: "imageincell", changedValues: changedValues }, this, true);
- }
- }
- setColumnIncellImageSize(range) {
- let sheet = this.ssObj.biz.getActiveSheet();
- let changedValuesArray = [];
- let indexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(range));
- for (var i = 0; i <= sheet.usedRange.rowIndex; i++) {
- for (var j = indexes[1]; j <= sheet.usedRange.colIndex; j++) {
- changedValuesArray = changedValuesArray.concat(this.performImageResize(sheet, i, j));
- }
- }
- return changedValuesArray;
- }
- setRowIncellImageSize(range) {
- let sheet = this.ssObj.biz.getActiveSheet();
- let changedValuesArray = [];
- let indexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(range));
- for (var i = indexes[0]; i <= sheet.usedRange.rowIndex; i++) {
- for (var j = 0; j <= sheet.usedRange.colIndex; j++) {
- changedValuesArray = changedValuesArray.concat(this.performImageResize(sheet, i, j));
- }
- }
- return changedValuesArray;
- }
- performImageResize(sheet, row, col) {
- let changedValuesArray = [];
- let cell = ej.spreadsheet.getCell(row, col, sheet);
- if (cell && cell.image && cell.image.find(x => x.id.startsWith("biz_image_in_cell"))) {
- let imageModel = cell.image.find(x => x.id.startsWith("biz_image_in_cell"));
- let imgIdx = cell.image.indexOf(imageModel);
- let height = (sheet.rows[row].height || 19) - 2;
- let width = (sheet.columns[col].width || 64) - 1;
- let cellPstn = ej.spreadsheet.getCellPosition(sheet, [row, col], sheet.frozenRows, sheet.frozenColumns);
- if (document.getElementById(imageModel.id)) {
- document.getElementById(imageModel.id).style.top = cellPstn.top + "px";
- document.getElementById(imageModel.id).style.left = cellPstn.left + "px";
- document.getElementById(imageModel.id).style.height = height + "px";
- document.getElementById(imageModel.id).style.width = width + "px";
- }
- cell.image[0].top = cellPstn.top;
- cell.image[0].left = cellPstn.left;
- cell.image[0].height = height;
- cell.image[0].width = width;
- this.setImageSize("top", cell.image[0]);
- this.setImageSize("left", cell.image[0]);
- changedValuesArray.push({ row: row, cell: col, cellinfo: cell });
- }
- return changedValuesArray;
- }
- imageRefresh(args) {
- let sheet = this.ssObj.getActiveSheet();
- let idSplit = args.eventArgs.id.split("_");
- let row = args.eventArgs.currentRowIdx;
- let col = args.eventArgs.currentColIdx;
- let cellInfo = ej.spreadsheet.getCell(row, col, sheet);
- let sheetName = this.setSheetNameForInCell(sheet.name);
- let curretImg = cellInfo.image.find(x => x.id == args.eventArgs.id);
- if (cellInfo && cellInfo.image && curretImg) {
- let newImgId;
- if (curretImg.id.includes(sheetName)) {
- for (var i = 0; i < 3; i++)
- idSplit.pop();
- }
- else if (!curretImg.id.includes(sheetName)) {
- if (sheet.pictures) {
- let index = sheet.pictures.findIndex(x => x.imageId == args.eventArgs.id);
- (index != -1) && (sheet.pictures.splice(index, 1));
- }
- }
- newImgId = idSplit.join("_") + "_" + sheetName + "_" + row + "_" + col;
- let ele = document.getElementById(args.eventArgs.id);
- (ele) && (ele.id = newImgId);
- cellInfo.image[0].id = newImgId;
- cellInfo.image[0].left = args.eventArgs.currentLeft;
- cellInfo.image[0].top = args.eventArgs.currentTop;
- cellInfo.image[0].height = parseInt(ele.style.height);
- cellInfo.image[0].width = parseInt(ele.style.width);
- this.setImageSize("top", cellInfo.image[0]);
- this.setImageSize("left", cellInfo.image[0]);
- this.setImageSize("height", cellInfo.image[0]);
- this.setImageSize("width", cellInfo.image[0]);
- let changedValues = [{
- row: args.eventArgs.prevRowIdx, cell: args.eventArgs.prevColIdx,
- cellInfo: ej.spreadsheet.getCell(args.eventArgs.prevRowIdx, args.eventArgs.prevColIdx, sheet)
- }, { row: row, cell: col, cellInfo: cellInfo }];
- this.ribbon.imageInCell = true;
- (changedValues.length > 0) && this.download.ssAutoSave({ action: "imageRefresh", changedValues: changedValues }, this, true);
- }
- }
- clipboardBizImages(args) {
- let sheetName;
- let sheetIdx = this.getSheetIndex();
- let sheet = this.ssObj.biz.getActiveSheet();
- let freezeRow = this.ssObj.frozenRowCount(sheet);
- let freezeCol = this.ssObj.frozenColCount(sheet);
- let changedValues = [];
- let pastedRange;
- if (args.action == "cellDrag") {
- pastedRange = args.pastedCellIdxs;
- }
- else {
- pastedRange = this.ssObj.biz.getIndexes(args.eventArgs.pastedRange.split("!")[1]);
- }
- for (var i = pastedRange[0]; i <= pastedRange[2]; i++) {
- for (var j = pastedRange[1]; j <= pastedRange[3]; j++) {
- let cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- sheetName = this.setSheetNameForInCell(sheet.name);
- if (cellInfo && cellInfo.image && cellInfo.image[0].id.startsWith("biz_image_in_cell_")) {
- let cellPstn = ej.spreadsheet.getCellPosition(sheet, [i, j], freezeRow, freezeCol);
- let img = cellInfo.image[0];
- let height, width;
- height = (this.ssObj.sheets[sheetIdx].rows[i].height || 19) - 1;
- width = (this.ssObj.sheets[sheetIdx].columns[j].width || 64) - 1;
- if (args.eventArgs.copiedInfo.isCut) {
- let ele = document.getElementById(cellInfo.image[0].id);
- img.id = "biz_image_in_cell_" + sheetName + "_" + i + "_" + j;
- ele.id = img.id;
- ele.style.height = height + "px";
- ele.style.width = width + "px";
- ele.style.top = cellPstn.top + "px";
- ele.style.left = cellPstn.left + "px";
- }
- else {
- let prevEle = document.getElementById(cellInfo.image[0].id);
- var div = document.createElement("div");
- div.id = "biz_image_in_cell_" + sheetName + "_" + i + "_" + j;
- div.style.top = cellPstn.top + "px";
- div.style.left = cellPstn.left + "px";
- div.style.height = height + "px";
- div.style.width = width + "px";
- div.style.backgroundImage = "url(" + cellInfo.image[0].src + ")";
- div.classList.add('e-ss-overlay');
- div.classList.add('biz_image_in_cell');
- prevEle.after(div);
- img.id = div.id;
- }
- img.left = cellPstn.left;
- img.top = cellPstn.top;
- img.width = width;
- img.height = height;
- this.setImageSize("top", img);
- this.setImageSize("left", img);
- cellInfo.image[0] = img;
- changedValues.push({ row: i, cell: j, cellinfo: cellInfo });
- this.ribbon.imageInCell = true;
- }
- }
- }
- if (changedValues.length > 0) {
- this.download.ssAutoSave({ action: "imageincell", changedValues: changedValues }, this, true);
- }
- }
- actionInsertImage(args) {
- let sheetIdx = (args.sheetIndex) ? args.sheetIndex : this.getSheetIndex();
- var indexes = (args.indexes) ? args.indexes : this.ssObj.biz.getIndexes();
- let sheet = this.ssObj.biz.getActiveSheet();
- let cellInfo = (args.cellInfo) ? args.cellInfo : ej.spreadsheet.getCell(indexes[0], indexes[1], sheet);
- if (args.origin == "biz") {
- this.ssObj.biz.setCell(indexes[0], indexes[1], sheet, cellInfo);
- this.download.ssAutoSave({ action: "imageincell", changedValues: [{ row: indexes[0], cell: indexes[1], cellinfo: cellInfo }] }, this, true);
- return;
- }
- let sheetName = this.setSheetNameForInCell(sheet.name);
- let img = cellInfo.image.find(x => x.id == args.eventArgs.id);
- let ele = document.getElementById(args.eventArgs.id);
- if (this.ribbon.imageInCell) {
- if (cellInfo.image && cellInfo.image.find(x => x.id.startsWith("biz_image_in_cell"))) {
- let prevImgInCell = cellInfo.image.find(x => x.id.startsWith("biz_image_in_cell"));
- document.getElementById(prevImgInCell.id).remove();
- let prevImgIndex = cellInfo.image.indexOf(prevImgInCell);
- if (~prevImgIndex)
- cellInfo.image.splice(prevImgIndex, 1);
- }
- img.id = "biz_image_in_cell_" + sheetName + "_" + indexes[0] + "_" + indexes[1];
- let height, width;
- height = (this.ssObj.sheets[sheetIdx].rows[indexes[0]].height || 19) - 1;
- ele.style.height = height + "px";
- img.height = height;
- width = (this.ssObj.sheets[sheetIdx].columns[indexes[1]].width || 64) - 1;
- ele.style.width = width + "px";
- img.width = width;
- cellInfo.value = "";
- ele.classList.add("biz_image_in_cell");
- }
- else {
- img.id = "spreadsheet_overlay_picture_" + sheetName + "_" + indexes[0] + "_" + indexes[1];
- }
- this.setImageSize("top", img);
- this.setImageSize("left", img);
- ele.id = img.id;
- cellInfo.image[(cellInfo.image.length) - 1] = img;
- this.download.ssAutoSave({ action: "imageincell", changedValues: [{ row: indexes[0], cell: indexes[1], cellinfo: cellInfo }] }, this, true);
- let args_undoredo = { indexes: indexes, range: this.ssObj.biz.getRange(), cellInfo: cellInfo, action: 'insertimage', origin: 'biz', sheetIndex: sheetIdx };
- (this.ribbon.imageInCell) && this.ssObj.updateUndoRedoCollection({ name: 'bizAction', args: { action: 'bizImageInCell', options: args_undoredo, oldCells: this.oldCellInfo } });
- this.oldCellInfo = {};
- this.ribbon.imageInCell = true;
- this.bizSignalr(args_undoredo);
- setTimeout(() => {
- const index = this.ssObj.undoredoModule.undoCollection.indexOf(this.ssObj.undoredoModule.undoCollection.filter(x => x.name == "bizAction").pop());
- this.ssObj.undoredoModule.undoCollection.splice(index + 1, 1);
- }, 500);
- }
- setImageSize(direction, img) {
- if (img[direction] % 1 != 0) {
- if (parseInt(img[direction].toString().split(".")[1]) < 50) {
- img[direction] = parseInt(img[direction].toString().split(".")[0]);
- }
- else {
- img[direction] = parseInt(img[direction].toString().split(".")[0]) + 1;
- }
- }
- else {
- img[direction] = parseInt(img[direction]);
- }
- }
- resizeImagesOnActionResize(args) {
- let sheet = this.ssObj.biz.getActiveSheet();
- if (args.eventArgs.isCol) {
- if (sheet.rows && sheet.rows.length > 0) {
- let changedValues = [];
- let availableRows = sheet.rows.length;
- for (var i = 0; i < availableRows; i++) {
- let cellInfo = ej.spreadsheet.getCell(i, args.eventArgs.index, sheet);
- if (cellInfo && cellInfo.image && cellInfo.image.length > 0 && cellInfo.image[0].id.startsWith("biz_image_in_cell")) {
- document.getElementById(cellInfo.image[0].id).style.width = args.eventArgs.width;
- cellInfo.image[0].width = parseInt(args.eventArgs.width);
- changedValues.push({ row: i, cell: args.eventArgs.index, cellinfo: cellInfo });
- }
- }
- for (var i = 0; i < availableRows; i++) {
- for (var j = args.eventArgs.index + 1; j < sheet.columns.length; j++) {
- let cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (cellInfo && cellInfo.image && cellInfo.image.length > 0 && cellInfo.image[0].id.startsWith("biz_image_in_cell")) {
- let previousWidth = cellInfo.image[0].left;
- let changedWidth = Number(args.eventArgs.width.split("p")[0]) - Number(args.eventArgs.oldWidth.split("p")[0]);
- let changedWidthWithoutDecimal = parseInt(changedWidth.toString().split(".")[0]);
- if (changedWidth % 1 != 0) {
- if (parseInt(changedWidth.toString().split(".")[1]) > 50) {
- if (Math.sign(changedWidth) === -1) {
- changedWidth = changedWidthWithoutDecimal - 1;
- }
- else if (Math.sign(changedWidth) === 1) {
- changedWidth = changedWidthWithoutDecimal + 1;
- }
- }
- }
- let newWidth = previousWidth + changedWidth;
- if (document.getElementById(cellInfo.image[0].id)) {
- document.getElementById(cellInfo.image[0].id).style.left = newWidth + 'px';
- }
- cellInfo.image[0].left = newWidth;
- changedValues.push({ row: i, cell: j, cellinfo: cellInfo });
- }
- }
- }
- changedValues.length > 0 && this.download.ssAutoSave({ action: "imageincell", changedValues: changedValues }, this, true);
- }
- }
- else {
- let changedValues = [];
- let remainingRowsImglist = [];
- if (sheet.rows[args.eventArgs.index]) {
- if (sheet.rows[args.eventArgs.index].cells) {
- let currentRowImageslist = sheet.rows[args.eventArgs.index].cells.filter(x => x && x.image).map(x => x && x.image[0]);
- currentRowImageslist.forEach(x => {
- if ((x && x.id && x.id).startsWith("biz_image_in_cell")) {
- document.getElementById(x.id).style.height = parseInt(args.eventArgs.height) - 2 + "px";
- let col = parseInt(x.id.split("_")[6]);
- let row = args.eventArgs.index;
- let cell = ej.spreadsheet.getCell(row, col, sheet);
- cell.image[0].height = parseInt(args.eventArgs.height) - 2;
- changedValues.push({ row: row, cell: col, cellinfo: cell });
- }
- });
- }
- }
- for (var i = parseInt(args.eventArgs.index) + 1; i < sheet.rows.length; i++) {
- let list = sheet.rows[i] && sheet.rows[i].cells && sheet.rows[i].cells.filter(x => x && x.image).map(x => x && x.image[0]);
- (list) && (remainingRowsImglist = remainingRowsImglist.concat(list));
- }
- remainingRowsImglist.forEach(x => {
- if ((x && x.id && x.id).startsWith("biz_image_in_cell")) {
- let row = parseInt(x.id.split("_")[5]);
- let col = parseInt(x.id.split("_")[6]);
- let cell = ej.spreadsheet.getCell(row, col, sheet);
- let previousHeight = cell.image[0].top;
- let changedHeight = Number(args.eventArgs.height.split("p")[0]) - Number(args.eventArgs.oldHeight.split("p")[0]);
- let changedHeightWithoutDecimal = parseInt(changedHeight.toString().split(".")[0]);
- if (changedHeight % 1 != 0) {
- if (parseInt(changedHeight.toString().split(".")[1]) > 50) {
- if (Math.sign(changedHeight) === -1) {
- changedHeight = changedHeightWithoutDecimal - 1;
- }
- else if (Math.sign(changedHeight) === 1) {
- changedHeight = changedHeightWithoutDecimal + 1;
- }
- }
- }
- let newHeight = previousHeight + changedHeight;
- if (document.getElementById(x.id)) {
- (document.getElementById(x.id).style.top = newHeight + "px");
- }
- cell.image[0].top = newHeight;
- changedValues.push({ row: row, cell: col, cellinfo: cell });
- }
- });
- changedValues.length > 0 && this.download.ssAutoSave({ action: "imageincell", changedValues: changedValues }, this, true);
- }
- }
- addImageClassToAllImages() {
- let elements = document.querySelectorAll("[id^=biz_image_in_cell]");
- elements.forEach(ele => ele.classList.add("biz_image_in_cell"));
- }
- bizSignalr(args) {
- var onlineStatus = (window.navigator.onLine ? 'on' : 'off') + 'line';
- window.addEventListener('online', () => document.getElementsByClassName('biz-ss-cloudsave')[0].style.display = 'inline-block');
- window.addEventListener('online', () => document.getElementsByClassName("biz-ss-cloudoff")[0].style.display = "none");
- window.addEventListener('offline', () => document.getElementsByClassName('biz-ss-cloudsave')[0].style.display = 'none');
- window.addEventListener('offline', () => document.getElementsByClassName("biz-ss-cloudoff")[0].style.display = "inline-block");
- try {
- Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).
- getConnection().
- invoke("ChangeDoc", Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().FileId, JSON.stringify(args));
- }
- catch (_a) {
- }
- }
- refreshHeight() {
- var rootHeight = this.element.parentElement.parentElement.offsetHeight;
- var rbnHeight = this.ribbonElem.offsetHeight;
- this.element.parentElement.style.height = (rootHeight - rbnHeight) + 'px';
- }
- adjustRowsAndColumnWidth(args) {
- return __awaiter(this, void 0, void 0, function* () {
- var indexes;
- var type;
- var newSize;
- var oldSize;
- var size;
- let spltedrange = this.ssObj.getActiveSheet().selectedRange;
- if (args.indexes != null) {
- indexes = args.indexes;
- }
- else {
- indexes = this.ssObj.biz.getIndexes();
- }
- if (args.undo) {
- let rowstart = args.eventArgs.range[0];
- let colstart = args.eventArgs.range[1];
- let rowend = args.eventArgs.range[2];
- let colend = args.eventArgs.range[3];
- if (args.eventArgs.width) {
- for (let i = colstart; i <= colend; i++)
- yield this.dialogue.setColWidth(args.eventArgs.width[i].width, i);
- }
- if (args.eventArgs.height) {
- for (let j = rowstart; j <= rowend; j++)
- yield this.dialogue.setRowHeight(args.eventArgs.height[j].height, j);
- }
- }
- else if (spltedrange.includes(" ") || (indexes[3] - indexes[1] > 0) || (indexes[2] - indexes[0] > 0)) {
- if (args.eventArgs.width) {
- type = "Column";
- newSize = args.eventArgs.width;
- oldSize = this.ssObj.getActiveSheet().columns;
- size = args.eventArgs.width.replace(/[^0-9]/g, "");
- if (parseInt(size) <= 30) {
- args.eventArgs.width = '30px';
- }
- }
- if (args.eventArgs.height) {
- type = "Row";
- newSize = args.eventArgs.height;
- oldSize = this.ssObj.getActiveSheet().rows;
- size = args.eventArgs.height.replace(/[^0-9]/g, "");
- if (parseInt(size) <= 21) {
- args.eventArgs.height = '21px';
- }
- }
- this.ssObj.updateUndoRedoCollection({ name: 'bizAction', args: { action: 'resize', eventArgs: { index: args.eventArgs.index, newSize: newSize, type: type, sheetIdx: args.eventArgs.sheetIdx, oldSize: oldSize, range: indexes } } });
- var array = spltedrange.split(" ");
- for (let i = 0; i < array.length; i++) {
- var splitedrange = ej.spreadsheet.getIndexesFromAddress(array[i]);
- let rowstart = splitedrange[0];
- let colstart = splitedrange[1];
- let rowend = splitedrange[2];
- let colend = splitedrange[3];
- if (args.eventArgs.width) {
- for (let i = colstart; i <= colend; i++)
- yield this.dialogue.setColWidth(args.eventArgs.width, i);
- }
- if (args.eventArgs.height) {
- for (let j = rowstart; j <= rowend; j++)
- yield this.dialogue.setRowHeight(args.eventArgs.height, j);
- }
- if (!args.indexes) {
- args.origin = "biz";
- args.indexes = indexes;
- this.bizSignalr(args);
- this.autoSave(args);
- }
- }
- this.ribbon.imageInCell = true;
- setTimeout(() => {
- const index = this.ssObj.undoredoModule.undoCollection.indexOf(this.ssObj.undoredoModule.undoCollection.filter(x => x.name == "bizAction").pop());
- this.ssObj.undoredoModule.undoCollection.splice(index + 1, 1);
- }, 500);
- }
- });
- }
- fileNameChange() {
- var tempfilename = $(".biz-ss-filename").val();
- var data = {
- Title: tempfilename,
- Id: this.FileId,
- Type: "File",
- };
- Unibase.Apps.Collaboration.DocumentManager.Instance().renameFileTitle(data);
- }
- renderPopup(callback) {
- Unibase.Apps.Collaboration.Components.Documents.Instance().loadForm(0, this.FileId, 0, callback, this.documentGroup);
- }
- renderMenuBar() {
- let containers = document.body.getElementsByClassName('_bizgaze_popup_container');
- this.container = containers[containers.length - 1];
- this.container.insertBefore(this.util.createElement("div", 'class', 'biz-ss-ribbon'), this.container.firstElementChild);
- this.util.appendChildren('DocumentViewer', 0);
- this.util.appendChildren('biz-ss-ribbon', 0, this.util.createElement("div", 'class', 'biz-ss-sheetlogo'), this.util.createElement("div", 'class', 'biz-ss-tooolbar'), this.util.createElement("div", 'class', 'biz-ss-userdetails e-ribbon e-collapsed'), this.util.createElement("div", 'class', 'biz-ss-username-wrapper'));
- this.util.appendChildren('biz-ss-sheetlogo', 0, this.util.createElement("img", 'class', 'biz-ss-logo'));
- this.util.appendChildren('biz-ss-tooolbar', 0, this.util.createElement("div", 'class', 'biz-ss-fileinfo'), this.util.createElement("div", 'class', 'biz-ss-fileshare-wrapper'), this.util.createElement("div", 'class', 'biz-ss-onlineusers'), this.util.createElement("div", 'class', 'biz-ss-toolbarmenu'));
- this.util.appendChildren('biz-ss-fileshare-wrapper', 0, this.util.createElement("div", 'class', 'biz-ss-fileshare'));
- this.util.appendChildren('biz-ss-onlineusers', 0, this.util.createElement("div", 'class', 'biz-ss-onlineusersintials d-flex flex-row text-white mx-35 pull-right'));
- this.util.appendChildren('biz-ss-fileshare', 0, this.util.createElement("button", 'class', 'biz-ss-fileshare-btn'));
- this.util.appendChildren('biz-ss-fileinfo', 0, this.util.createElement("input", 'class', 'biz-ss-filename'), this.util.createElement('div', 'class', 'biz-ss-starred'), this.util.createElement('div', 'class', 'biz-ss-autosave'));
- this.util.appendChildren('biz-ss-starred', 0, this.util.createElement("span", 'id', 'biz-ss-star'), this.util.createElement("i", 'class', 'fa fa-star-o text-light font-7 biz_ss_star_icon_' + this.FileId));
- this.util.appendChildren('biz-ss-autosave', 0, this.util.createElement("img", 'class', 'biz-ss-saveicon biz-ss-cloudsave'), this.util.createElement("img", 'class', 'biz-ss-saveicon biz-ss-cloudoff'), this.util.createElement("div", 'class', 'biz-ss-cloudloading e-icons'), this.util.createElement('div', 'class', 'biz-ss-saving'));
- this.util.appendChildren('biz-ss-userdetails', 0, this.util.createElement("div", 'class', 'biz-ss-userinitial'));
- this.util.appendChildren('biz-ss-toolbarmenu', 0, this.util.createElement("ul", 'id', 'menu'), this.util.createElement("input", 'class', 'biz-ss-lastedited'));
- document.getElementsByClassName("biz-ss-logo")[0].setAttribute('src', 'imgs/BizgazeSheetsIcon.svg');
- document.getElementsByClassName("biz-ss-cloudsave")[0].setAttribute('src', 'imgs/cloud-computing.svg');
- document.getElementsByClassName("biz-ss-cloudsave")[0].setAttribute('title', 'See document status');
- document.getElementsByClassName("biz-ss-cloudoff")[0].setAttribute('src', 'imgs/cloud-off.svg');
- document.getElementsByClassName("biz-ss-cloudoff")[0].style.display = "none";
- let htmlelement = document.getElementsByClassName('biz-ss-filename')[0];
- this.util.addAttributes(htmlelement, {
- 'value': this.FileName,
- 'type': 'text'
- });
- let attributesforautosave = {
- 'type': 'span'
- };
- this.userInitial = document.getElementsByClassName("biz-ss-userinitial")[0];
- let identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- if (!identity.photoUrl) {
- this.userInitial.textContent += identity.name.trim().slice(0, 1);
- this.userInitial.classList.add('biz-ss-initial-text');
- }
- else {
- this.userInitial.classList.add('biz-ss-initial-img');
- this.userInitial.style.backgroundImage = "url(" + identity.photoUrl + ")";
- }
- if (!this.newUpload) {
- if (this.lastEditedTime != 0) {
- if (this.unibaseusername === this.username) {
- let htmlelementlastedited = document.getElementsByClassName('biz-ss-lastedited')[0];
- this.util.addAttributes(htmlelementlastedited, {
- 'value': 'last edit was made ' + this.lastEditedTime + ' ' + this.timePeriod + ' ago',
- 'type': 'span'
- });
- }
- else {
- let htmlelementlastedited = document.getElementsByClassName('biz-ss-lastedited')[0];
- this.util.addAttributes(htmlelementlastedited, {
- 'value': 'last edit was made ' + this.lastEditedTime + ' ' + this.timePeriod + ' ago by ' + this.username,
- 'type': 'span'
- });
- }
- }
- else {
- if (this.unibaseusername === this.username) {
- let htmlelementlastedited = document.getElementsByClassName('biz-ss-lastedited')[0];
- this.util.addAttributes(htmlelementlastedited, {
- 'value': 'last edit was made seconds ago ',
- 'type': 'span'
- });
- }
- else {
- let htmlelementlastedited = document.getElementsByClassName('biz-ss-lastedited')[0];
- this.util.addAttributes(htmlelementlastedited, {
- 'value': 'last edit was made seconds ago by ' + this.username,
- 'type': 'span'
- });
- }
- }
- }
- let htmlelementforautosave = document.getElementsByClassName('biz-ss-saving')[0];
- this.util.addAttributes(htmlelementforautosave, attributesforautosave);
- document.getElementsByClassName('biz-ss-lastedited')[0].setAttribute('disabled', "");
- document.getElementsByClassName('biz-ss-saving')[0].style.display = 'none';
- document.getElementsByClassName('biz-ss-saving')[0].innerText = 'Saving...';
- document.getElementsByClassName("biz-ss-fileshare-btn")[0].style.backgroundColor = "#049503";
- var shareBtn = new ej.buttons.Button({ cssClass: `e-primary`, content: `Share`, iconCss: 'biz-ss-fileshare-icon icon-ss-lockopen' });
- shareBtn.appendTo(".biz-ss-fileshare-btn");
- document.getElementsByClassName("biz-ss-userinitial")[0].setAttribute("title", identity.name.trim());
- let color = this.util.colorHash(identity.name.trim());
- document.getElementsByClassName("biz-ss-userinitial")[0].style.backgroundColor = color.hex;
- this.ribbonElem = document.body.getElementsByClassName('biz-ss-ribbon')[0];
- }
- editDetails() {
- if (this.FileId != 0) {
- Unibase.Apps.Collaboration.DocumentManager.Instance().lastEdit(this.FileId).then((response) => {
- this.identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- this.unibaseusername = this.identity.name;
- this.lastEditedTime = response.result.Lastedittime;
- this.username = response.result.LastUpdatedByName;
- this.timePeriod = response.result.TimePeriod;
- if (this.unibaseusername === this.username && this.lastEditedTime === 0) {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made seconds ago";
- }
- else if (this.unibaseusername === this.username && this.lastEditedTime !== 0) {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made " + this.lastEditedTime + " " + this.timePeriod + " ago";
- }
- else {
- let element = (document.getElementsByClassName('biz-ss-lastedited')[0]);
- element.value = "last edit was made seconds ago by " + this.username;
- }
- });
- }
- clearInterval(this.intr);
- clearInterval(this.intrhour);
- this.initSetInterval();
- }
- windowKeydown(e) {
- if (e.keyCode === 116)
- (this.fileurl) && (window.location.href = window.origin + "#/documents/" + this.fileurl + "/Excel/0");
- this.ctrl_Shift_S(e);
- }
- keyDown(e) {
- let sheet = this.ssObj.biz.getActiveSheet();
- let indexes = this.ssObj.biz.getIndexes();
- let editDiv = document.getElementById("DocumentViewer_edit");
- this.lastKeyEvent = e;
- this.cellRowStart = indexes[0];
- this.cellColStart = indexes[1];
- this.cellRowEnd = indexes[2];
- this.cellColEnd = indexes[3];
- let sheetIdx = this.getSheetIndex();
- let availableRows = sheet.rows.length;
- let availableCols = sheet.columns.length;
- let indexesToInitiateFormula = [];
- let prevFormulaIndexes = [];
- let cellInfo = ej.spreadsheet.getCell(this.cellRowStart, this.cellColStart, sheet);
- let evtobj = window.event ? event : e;
- if (document.getElementById("DocumentViewer_text_align"))
- var textAlign = document.getElementById("DocumentViewer_text_align").ej2_instances[0];
- if (document.getElementById("DocumentViewer_vertical_align"))
- var verticalAlign = document.getElementById("DocumentViewer_vertical_align").ej2_instances[0];
- let popup = document.body.querySelector('#' + this.ssObj.element.id + '_ac_popup');
- if (editDiv && editDiv.textContent) {
- if (this.ssObj.isEdit && editDiv.textContent.startsWith("=")) {
- this.isFormula = true;
- if (!popup) {
- if (!evtobj.ctrlKey && !evtobj.shiftKey) {
- if (e.keyCode == 37) {
- if (this.prevFormulaRange) {
- this.setFormlaActiveCell(this.prevFormulaRange);
- prevFormulaIndexes = ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange);
- if (prevFormulaIndexes[3] == 0)
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1);
- else
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1]) + (prevFormulaIndexes[0] + 1);
- }
- else {
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- if (prevFormulaIndexes[3] >= 0) {
- let formulaRange = "";
- if (prevFormulaIndexes[3] == 0)
- formulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1);
- else
- formulaRange = this.generateHeaderText(prevFormulaIndexes[1]) + (prevFormulaIndexes[0] + 1);
- this.prevFormulaRange = formulaRange;
- }
- }
- this.formulaActiveCell = this.prevFormulaRange;
- }
- else if (e.keyCode == 39) {
- if (this.prevFormulaRange) {
- this.setFormlaActiveCell(this.prevFormulaRange);
- prevFormulaIndexes = ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange);
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 2) + (prevFormulaIndexes[0] + 1);
- }
- else {
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- let formulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 2) + (prevFormulaIndexes[0] + 1);
- this.prevFormulaRange = formulaRange;
- }
- this.formulaActiveCell = this.prevFormulaRange;
- }
- else if (e.keyCode == 38) {
- if (this.prevFormulaRange) {
- this.setFormlaActiveCell(this.prevFormulaRange);
- prevFormulaIndexes = ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange);
- if (prevFormulaIndexes[2] == 0)
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1);
- else
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0]);
- }
- else {
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- let formulaRange = "";
- if (prevFormulaIndexes[2] == 0)
- formulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1);
- else
- formulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0]);
- this.prevFormulaRange = formulaRange;
- }
- this.formulaActiveCell = this.prevFormulaRange;
- }
- else if (e.keyCode == 40) {
- if (this.prevFormulaRange) {
- this.setFormlaActiveCell(this.prevFormulaRange);
- prevFormulaIndexes = ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange);
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 2);
- }
- else {
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- let formulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 2);
- this.prevFormulaRange = formulaRange;
- }
- this.formulaActiveCell = this.prevFormulaRange;
- }
- }
- if ((!evtobj.ctrlKey && evtobj.shiftKey)) {
- if (e.keyCode == 40) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- if (this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) || this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[0] + 1))
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[2] + 2);
- else
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 2) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[2] + 1);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- this.prevFormulaRange = this.formulaActiveCell + ":" + this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 2);
- }
- }
- else if (e.keyCode == 39) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- if (this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) || this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[2] + 1))
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 2) + (prevFormulaIndexes[2] + 1);
- else
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 2) + (prevFormulaIndexes[0] + 1) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[2] + 1);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- this.prevFormulaRange = this.formulaActiveCell + ":" + this.generateHeaderText(this.cellColEnd + 2) + (this.cellRowEnd + 1);
- }
- }
- else if (e.keyCode == 38) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- if ((this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) || this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[0] + 1)) && (prevFormulaIndexes[2] - prevFormulaIndexes[0] > 0))
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[2]);
- else
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0]) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[2] + 1);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- this.prevFormulaRange = this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart) + ":" + this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 1);
- }
- }
- else if (e.keyCode == 37) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- if (this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) || this.formulaActiveCell == this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[2] + 1))
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1] + 1) + (prevFormulaIndexes[0] + 1) + ":" + this.generateHeaderText(prevFormulaIndexes[3]) + (prevFormulaIndexes[2] + 1);
- else
- this.prevFormulaRange = this.generateHeaderText(prevFormulaIndexes[1]) + (prevFormulaIndexes[0] + 1) + ":" + this.generateHeaderText(prevFormulaIndexes[3] + 1) + (prevFormulaIndexes[2] + 1);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- this.prevFormulaRange = this.generateHeaderText(this.cellColStart) + (this.cellRowStart + 1) + ":" + this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 1);
- }
- }
- }
- if ((evtobj.ctrlKey && evtobj.shiftKey)) {
- let newIndexes;
- let activeCellIndexes;
- if (e.keyCode == 40) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- activeCellIndexes = ej.spreadsheet.getIndexesFromAddress(this.formulaActiveCell);
- newIndexes = this.swapRange([activeCellIndexes[0] + 1, activeCellIndexes[1] + 1, indexesToInitiateFormula[1], indexesToInitiateFormula[0]]);
- this.prevFormulaRange = this.generateHeaderText(newIndexes[1]) + (newIndexes[0]) + ":" + this.generateHeaderText(newIndexes[3]) + (newIndexes[2]);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- let args = {
- evtobj: evtobj, indexes: indexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- let formulaRange = this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1) + ":" + this.generateHeaderText(indexesToInitiateFormula[0]) + (indexesToInitiateFormula[1]);
- this.prevFormulaRange = formulaRange;
- }
- }
- else if (e.keyCode == 39) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- activeCellIndexes = ej.spreadsheet.getIndexesFromAddress(this.formulaActiveCell);
- newIndexes = this.swapRange([activeCellIndexes[0] + 1, activeCellIndexes[1] + 1, indexesToInitiateFormula[1], indexesToInitiateFormula[0]]);
- this.prevFormulaRange = this.generateHeaderText(newIndexes[1]) + (newIndexes[0]) + ":" + this.generateHeaderText(newIndexes[3]) + (newIndexes[2]);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- let formulaRange = this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1) + ":" + this.generateHeaderText(indexesToInitiateFormula[0]) + (indexesToInitiateFormula[1]);
- this.prevFormulaRange = formulaRange;
- }
- }
- else if (e.keyCode == 38) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- activeCellIndexes = ej.spreadsheet.getIndexesFromAddress(this.formulaActiveCell);
- newIndexes = this.swapRange([activeCellIndexes[0] + 1, activeCellIndexes[1] + 1, indexesToInitiateFormula[1], indexesToInitiateFormula[0]]);
- this.prevFormulaRange = this.generateHeaderText(newIndexes[1]) + (newIndexes[0]) + ":" + this.generateHeaderText(newIndexes[3]) + (newIndexes[2]);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- if (prevFormulaIndexes[0] > 0) {
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- let formulaRange = this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1) + ":" + this.generateHeaderText(indexesToInitiateFormula[0]) + (indexesToInitiateFormula[1]);
- this.prevFormulaRange = formulaRange;
- }
- }
- }
- else if (e.keyCode == 37) {
- if (this.prevFormulaRange) {
- prevFormulaIndexes = this.swapRange(ej.spreadsheet.getIndexesFromAddress(this.prevFormulaRange));
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- activeCellIndexes = ej.spreadsheet.getIndexesFromAddress(this.formulaActiveCell);
- newIndexes = this.swapRange([activeCellIndexes[0] + 1, activeCellIndexes[1] + 1, indexesToInitiateFormula[1], indexesToInitiateFormula[0]]);
- this.prevFormulaRange = this.generateHeaderText(newIndexes[1]) + (newIndexes[0]) + ":" + this.generateHeaderText(newIndexes[3]) + (newIndexes[2]);
- }
- else {
- this.formulaActiveCell = sheet.activeCell;
- prevFormulaIndexes = this.ssObj.biz.getIndexes();
- if (prevFormulaIndexes[2] > 0) {
- let args = {
- evtobj: evtobj, indexes: prevFormulaIndexes, activeCell: this.formulaActiveCell, availableRows: availableRows,
- availableCols: availableCols
- };
- indexesToInitiateFormula = this.getIndexesOnCtrlShifArrows(args);
- let formulaRange = this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1) + ":" + this.generateHeaderText(indexesToInitiateFormula[0]) + (indexesToInitiateFormula[1]);
- this.prevFormulaRange = formulaRange;
- }
- }
- }
- }
- if ((e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40) && this.isFormula) {
- if (editDiv.textContent.includes("(")) {
- let formula = editDiv.textContent.split("(");
- editDiv.textContent = formula[0] + "(" + this.prevFormulaRange;
- }
- else
- editDiv.textContent = "=" + this.prevFormulaRange;
- let col = { formulaSheetIdx: sheetIdx, name: "initiateFormulaReference", range: this.prevFormulaRange };
- this.ssObj.selectionModule.initiateFormulaSelection(col);
- setTimeout(() => {
- let range = document.createRange();
- var el = this.ssObj.element.querySelector('#' + this.ssObj.element.id + '_edit');
- ;
- var selection = window.getSelection();
- range = document.createRange();
- selection.removeAllRanges();
- range.selectNodeContents(el);
- range.collapse(false);
- selection.addRange(range);
- el.focus();
- }, 0);
- }
- }
- }
- else {
- this.isFormula = false;
- }
- }
- else {
- this.isFormula = false;
- }
- if (evtobj.ctrlKey && evtobj.shiftKey && !this.isFormula && !this.ssObj.isEdit) {
- if (evtobj.keyCode == 76) {
- e.preventDefault();
- e.stopImmediatePropagation();
- textAlign.trigger('select', { item: textAlign.items[0] });
- }
- if (evtobj.keyCode == 69) {
- e.preventDefault();
- e.stopImmediatePropagation();
- textAlign.trigger('select', { item: textAlign.items[1] });
- }
- if (evtobj.keyCode == 82) {
- e.preventDefault();
- textAlign.trigger('select', { item: textAlign.items[2] });
- }
- if (evtobj.keyCode == 84) {
- e.preventDefault();
- e.stopImmediatePropagation();
- verticalAlign.trigger('select', { item: verticalAlign.items[0] });
- }
- if (evtobj.keyCode == 77) {
- e.preventDefault();
- verticalAlign.trigger('select', { item: verticalAlign.items[1] });
- }
- if (evtobj.keyCode == 66) {
- e.preventDefault();
- e.stopImmediatePropagation();
- verticalAlign.trigger('select', { item: verticalAlign.items[2] });
- }
- }
- if (e.keyCode == 113) {
- if (this.ssObj.isEdit)
- this.f2Edit = true;
- }
- if (e.keyCode == 113 && e.shiftKey) {
- e.preventDefault();
- this.formatpainter.insertNote();
- }
- if (this.ssObj.isEdit) {
- if (!this.isFormula && !this.f2Edit && !evtobj.shiftKey && !evtobj.ctrlKey && (e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40)) {
- var val = document.getElementsByClassName("e-spreadsheet-edit")[0].innerText;
- if (cellInfo == null) {
- cellInfo = {};
- }
- cellInfo["value"] = val;
- this.ssObj.biz.setCell(this.cellRowStart, this.cellColStart, sheet, cellInfo);
- this.ssObj.endEdit();
- this.f2Edit = false;
- }
- }
- if (!evtobj.shiftKey && evtobj.ctrlKey && (e.keyCode == 68 || e.keyCode == 82 || e.keyCode == 13)) {
- e.preventDefault();
- let args = {
- origin: 'biz', action: 'shortcuts', range: indexes, e: e, evtobj: evtobj, sheet: sheet, sheetIndex: this.getSheetIndex()
- };
- this.ssObj.updateUndoRedoCollection({ name: 'bizAction', args: { action: 'shortcuts', options: args, oldCells: this.getCellsFromIndexes(args.range) } });
- this.shortcuts(args);
- Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().bizSignalr(args);
- this.download.ssAutoSave({ action: 'shortcuts' }, this, true);
- }
- this.clearFindReplace();
- }
- viewOnlyKeyDown(e) {
- let sheet = this.ssObj.biz.getActiveSheet();
- let indexes = this.ssObj.biz.getIndexes();
- let availableRows = sheet.rows.length;
- let availableCols = sheet.columns.length;
- let evtobj = window.event ? event : e;
- let activeCell = sheet.activeCell;
- let sheetIdx = this.getSheetIndex();
- let selectedIndex = [];
- let fullscreenDialog = document.getElementById("menubar-fullscreen-container");
- if (evtobj.ctrlKey && evtobj.shiftKey && !this.isFormula && !this.ssObj.isEdit) {
- let keyPressArgs = {
- evtobj: evtobj, indexes: indexes, activeCell: activeCell, availableCols: availableCols,
- availableRows: availableRows
- };
- selectedIndex = this.getIndexesOnCtrlShifArrows(keyPressArgs);
- }
- if (fullscreenDialog && e.keyCode == 27)
- this.dialogue.hideSsMenubarFullscreenDialog();
- if (evtobj.ctrlKey && e.keyCode == 65 && !this.ssObj.isEdit)
- this.ctrlA_Function();
- if (e.keyCode == 122) {
- e.preventDefault();
- this.openFullscreen(this.container);
- }
- if (evtobj.keyCode == 37 || evtobj.keyCode == 39 || evtobj.keyCode == 38 || evtobj.keyCode == 40) {
- this.ssObj.selectRange(this.ssObj.sheets[sheetIdx].activeCell + ":" + this.generateHeaderText(selectedIndex[0]) + (selectedIndex[1]));
- }
- this.ctrl_Shift_S(e);
- }
- ctrl_Shift_S(e) {
- if (e.keyCode == 83 && ((e.ctrlKey && !e.shiftKey) || (e.ctrlKey && e.shiftKey))) {
- e.preventDefault();
- e.stopImmediatePropagation();
- }
- }
- ctrlA_Function() {
- if (!this.isCtrlA) {
- this.isCtrlA = true;
- for (var i = this.cellRowStart; i <= this.cellRowEnd; i++) {
- for (var j = this.cellColStart; j <= this.cellColEnd; j++)
- this.checksForCellsWithValues([i, j]);
- }
- if ((this.selectedIndexes[0] !== this.cellRowStart || this.selectedIndexes[1] !== this.cellColStart || this.selectedIndexes[2] !== this.cellRowEnd || this.selectedIndexes[3] !== this.cellColEnd)) {
- this.ssObj.selectRange(this.generateHeaderText(this.selectedIndexes[1] + 1) + (this.selectedIndexes[0] + 1) + ":" + this.generateHeaderText(this.selectedIndexes[3] + 1) + (this.selectedIndexes[2] + 1));
- this.isCtrlA = true;
- }
- else
- this.ctrlA_Function();
- this.checkedIndexes = [];
- this.selectedIndexes = [null, null, null, null];
- }
- else {
- this.isCtrlA = false;
- var elem = document.body.querySelector('.e-selectall');
- var pos = elem.getBoundingClientRect();
- this.ssObj.selectionModule.mouseDownHandler({ target: elem, shiftKey: false, ctrlKey: false, type: 'mousedown', clientY: pos.top, clientX: pos.left });
- this.checkedIndexes = [];
- this.selectedIndexes = [null, null, null, null];
- }
- }
- getIndexesOnCtrlShifArrows(args) {
- let nextCellInfo;
- let cellInfo;
- let selectedIndex = [];
- let sheet = this.ssObj.biz.getActiveSheet();
- this.cellRowStart = args.indexes[0];
- this.cellColStart = args.indexes[1];
- this.cellRowEnd = args.indexes[2];
- this.cellColEnd = args.indexes[3];
- if (args.evtobj.keyCode == 40) {
- args.evtobj.preventDefault();
- args.evtobj.stopImmediatePropagation();
- if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd + 1, this.cellColStart, sheet);
- for (var i = this.cellRowEnd + 1; i < 10000000; i++) {
- for (var j = this.cellColStart; j <= this.cellColStart; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (j == this.cellColStart) {
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo)) || (i >= args.availableRows || j >= args.availableCols))) {
- selectedIndex.push(this.cellColEnd + 1, i, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColEnd + 1, i + 1, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- }
- }
- }
- }
- else if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart + 1, this.cellColStart, sheet);
- for (var i = this.cellRowStart + 1; i < 10000000; i++) {
- for (var j = this.cellColStart; j <= this.cellColStart; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo)) || (i >= args.availableRows || j >= args.availableCols))) {
- selectedIndex.push(this.cellColEnd + 1, i, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColEnd + 1, i + 1, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- }
- }
- }
- else if (args.activeCell === this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart + 1, this.cellColEnd, sheet);
- for (var i = this.cellRowStart + 1; i < 10000000; i++) {
- for (var j = this.cellColEnd; j <= this.cellColEnd; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo)) || (i >= args.availableRows || j >= args.availableCols))) {
- selectedIndex.push(this.cellColStart + 1, i, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i + 1, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- }
- }
- }
- else {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd + 1, this.cellColEnd, sheet);
- for (let i = this.cellRowEnd + 1; i < 10000000; i++) {
- for (let j = this.cellColEnd; j <= this.cellColEnd; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (j == this.cellColEnd) {
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i + 1, i, j, this.cellRowEnd, this.cellColEnd);
- i = 10000000;
- }
- }
- }
- }
- }
- }
- else if (args.evtobj.keyCode == 38) {
- args.evtobj.preventDefault();
- args.evtobj.stopImmediatePropagation();
- if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd - 1, this.cellColStart, sheet);
- for (let i = this.cellRowEnd - 1; i < 1000000000; i--) {
- for (let j = this.cellColStart; j <= this.cellColStart; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (j == this.cellColStart) {
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColEnd + 1, i + 2, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColEnd + 1, i + 1, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if (i == -1) {
- selectedIndex.push(this.cellColEnd + 1, 1);
- i = 1000000001;
- }
- }
- }
- }
- }
- else if (args.activeCell == this.generateHeaderText(this.cellColStart + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart - 1, this.cellColStart, sheet);
- for (let i = this.cellRowStart - 1; i < 1000000000; i--) {
- for (let j = this.cellColStart; j <= this.cellColStart; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (j == this.cellColStart) {
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColEnd + 1, i + 2, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColEnd + 1, i + 1, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if (i == -1) {
- selectedIndex.push(this.cellColEnd + 1, 1);
- i = 1000000001;
- }
- }
- }
- }
- }
- else if (args.activeCell == this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart - 1, this.cellColEnd, sheet);
- for (let i = this.cellRowStart - 1; i < 1000000000; i--) {
- for (let j = this.cellColEnd; j <= this.cellColEnd; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (j == this.cellColEnd) {
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i + 2, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i + 1, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if (i == -1) {
- selectedIndex.push(this.cellColStart + 1, 1);
- i = 1000000001;
- }
- }
- }
- }
- }
- else {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd - 1, this.cellColEnd, sheet);
- for (let i = this.cellRowEnd - 1; i < 1000000000; i--) {
- for (let j = this.cellColEnd; j <= this.cellColEnd; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (j == this.cellColEnd) {
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i + 2, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(this.cellColStart + 1, i + 1, i, j, this.cellRowStart, this.cellColEnd);
- i = 1000000001;
- }
- else if (i == -1) {
- selectedIndex.push(this.cellColStart + 1, 1);
- i = 1000000001;
- }
- }
- }
- }
- }
- }
- else if (args.evtobj.keyCode == 39) {
- args.evtobj.preventDefault();
- args.evtobj.stopImmediatePropagation();
- if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart, this.cellColEnd + 1, sheet);
- for (let i = this.cellRowStart; i <= this.cellRowStart; i++) {
- for (let j = this.cellColEnd + 1; j < 1000000000 + 1; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j, this.cellRowEnd + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowEnd + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- }
- }
- }
- else if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd, this.cellColEnd + 1, sheet);
- for (let i = this.cellRowEnd; i <= this.cellRowEnd; i++) {
- for (let j = this.cellColEnd + 1; j < 1000000000 + 1; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j, this.cellRowStart + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowStart + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- }
- }
- }
- else if (args.activeCell === this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd, this.cellColStart + 1, sheet);
- for (let i = this.cellRowEnd; i <= this.cellRowEnd; i++) {
- for (let j = this.cellColStart + 1; j < 1000000000 + 1; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j, this.cellRowStart + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowStart + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- }
- }
- }
- else {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart, this.cellColStart + 1, sheet);
- for (let i = this.cellRowStart; i <= this.cellRowStart; i++) {
- for (let j = this.cellColStart + 1; j < 1000000000 + 1; j++) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j, this.cellRowEnd + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowEnd + 1, this.cellRowStart, this.cellColStart, i, j);
- j = 1000000001;
- }
- }
- }
- }
- }
- else if (args.evtobj.keyCode == 37) {
- args.evtobj.preventDefault();
- args.evtobj.stopImmediatePropagation();
- if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowStart + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart, this.cellColEnd - 1, sheet);
- for (let i = this.cellRowStart; i <= this.cellRowStart; i++) {
- for (let j = this.cellColEnd - 1; j < 1000000000; j--) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 2, this.cellRowEnd + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowEnd + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if (j == -1) {
- selectedIndex.push(1, this.cellRowEnd + 1);
- j = 1000000001;
- }
- }
- }
- }
- else if (args.activeCell === this.generateHeaderText(this.cellColStart + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd, this.cellColEnd - 1, sheet);
- for (let i = this.cellRowEnd; i <= this.cellRowEnd; i++) {
- for (let j = this.cellColEnd - 1; j < 1000000000; j--) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 2, this.cellRowStart + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowStart + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if (j == -1) {
- selectedIndex.push(1, this.cellRowStart + 1);
- j = 1000000001;
- }
- }
- }
- }
- else if (args.activeCell === this.generateHeaderText(this.cellColEnd + 1) + (this.cellRowEnd + 1)) {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowEnd, this.cellColStart - 1, sheet);
- for (let i = this.cellRowEnd; i <= this.cellRowEnd; i++) {
- for (let j = this.cellColStart - 1; j < 1000000000; j--) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 2, this.cellRowStart + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowStart + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if (j == -1) {
- selectedIndex.push(1, this.cellRowStart + 1);
- j = 1000000001;
- }
- }
- }
- }
- else {
- nextCellInfo = ej.spreadsheet.getCell(this.cellRowStart, this.cellColStart - 1, sheet);
- for (let i = this.cellRowStart; i <= this.cellRowStart; i++) {
- for (let j = this.cellColStart - 1; j < 1000000000; j--) {
- cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (((this.checkCellObjHasValue(nextCellInfo)) && !(this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 2, this.cellRowEnd + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if ((!(this.checkCellObjHasValue(nextCellInfo)) && (this.checkCellObjHasValue(cellInfo))) || (i >= args.availableRows || j >= args.availableCols)) {
- selectedIndex.push(j + 1, this.cellRowEnd + 1, i, j = -1 ? 0 : j, this.cellRowStart, this.cellColStart + 1);
- j = 1000000001;
- }
- else if (j == -1) {
- selectedIndex.push(1, this.cellRowEnd + 1);
- j = 1000000001;
- }
- }
- }
- }
- }
- return selectedIndex;
- }
- checksForCellsWithValues(indexes) {
- if (this.checkedIndexes.findIndex((x) => x[0] == indexes[0] && x[1] == indexes[1]) === -1) {
- this.checkedIndexes.push(indexes);
- let sheet = this.ssObj.getActiveSheet();
- let cellInfoDown = ej.spreadsheet.getCell(indexes[0] + 1, indexes[1], sheet);
- let cellInfoUp = ej.spreadsheet.getCell(indexes[0] - 1, indexes[1], sheet);
- let cellInfoLeft = ej.spreadsheet.getCell(indexes[0], indexes[1] - 1, sheet);
- let cellInfoRight = ej.spreadsheet.getCell(indexes[0], indexes[1] + 1, sheet);
- if (this.selectedIndexes[0] == null || this.selectedIndexes[2] == null) {
- this.selectedIndexes[0] = indexes[0];
- this.selectedIndexes[2] = indexes[0];
- }
- if (this.selectedIndexes[1] == null || this.selectedIndexes[3] == null) {
- this.selectedIndexes[1] = indexes[1];
- this.selectedIndexes[3] = indexes[1];
- }
- if (this.selectedIndexes[0] > indexes[0])
- this.selectedIndexes[0] = indexes[0];
- if (this.selectedIndexes[2] < indexes[0])
- this.selectedIndexes[2] = indexes[0];
- if (this.selectedIndexes[1] > indexes[1])
- this.selectedIndexes[1] = indexes[1];
- if (this.selectedIndexes[3] < indexes[1])
- this.selectedIndexes[3] = indexes[1];
- if (this.checkCellObjHasValue(cellInfoDown))
- this.checksForCellsWithValues([indexes[0] + 1, indexes[1]]);
- if (this.checkCellObjHasValue(cellInfoUp))
- this.checksForCellsWithValues([indexes[0] - 1, indexes[1]]);
- if (this.checkCellObjHasValue(cellInfoLeft))
- this.checksForCellsWithValues([indexes[0], indexes[1] - 1]);
- if (this.checkCellObjHasValue(cellInfoRight))
- this.checksForCellsWithValues([indexes[0], indexes[1] + 1]);
- }
- }
- setFormlaActiveCell(prevFormula) {
- if (prevFormula.includes(":")) {
- let singeRange = prevFormula.split(":")[0];
- this.formulaActiveCell = singeRange;
- }
- else
- this.formulaActiveCell = prevFormula;
- }
- keyUp(e) {
- if (e.keyCode == 113) {
- if (this.ssObj.isEdit)
- this.f2Edit = true;
- }
- }
- bodyDblClick(e) {
- let importDialog = document.getElementsByClassName("biz-ss-import-dialog");
- if (this.ssObj.isEdit)
- this.f2Edit = true;
- if (importDialog.length > 0) {
- if (e.target.classList.contains("copyto_folder")) {
- debugger;
- let folderid = Number(e.target.id.split("_")[2]);
- let foldername = e.target.firstElementChild.textContent.trim();
- Unibase.Apps.Collaboration.Components.Sheets.Ribbon.Instance().getFolderItems(folderid, foldername, true);
- }
- }
- }
- shortcuts(args) {
- var range = args.range;
- this.cellRowStart = range[0];
- this.cellColStart = range[1];
- this.cellRowEnd = range[2];
- this.cellColEnd = range[3];
- var cellInfo = ej.spreadsheet.getCell(this.cellRowStart, this.cellColStart, args.sheet);
- if (args.evtobj.ctrlKey && args.e.keyCode == 13 && !args.evtobj.shiftKey) {
- args.e.preventDefault();
- args.e.stopImmediatePropagation();
- args.e.stopPropagation();
- for (var i = this.cellRowStart; i <= this.cellRowEnd; i++) {
- for (var j = this.cellColStart; j <= this.cellColEnd; j++)
- this.ssObj.biz.setCell(i, j, args.sheet, cellInfo);
- }
- }
- }
- scroll(selectedIndex) {
- let sheet = this.ssObj.getActiveSheet();
- let freezeRow = this.ssObj.frozenRowCount(sheet);
- let freezeCol = this.ssObj.frozenColCount(sheet);
- var cellPosition = ej.spreadsheet.getCellPosition(sheet, [selectedIndex[2], selectedIndex[3]], freezeRow, freezeCol);
- let verticalElem = this.ssObj.element.querySelector('.e-main-panel');
- if (!(cellPosition.top > verticalElem.scrollTop && cellPosition.top < verticalElem.scrollTop + verticalElem.offsetHeight) ||
- verticalElem.offsetHeight + verticalElem.scrollTop < ej.spreadsheet.getCellPosition(this.ssObj.getActiveSheet(), [selectedIndex[2], selectedIndex[3]], freezeRow, freezeCol).top) {
- verticalElem.scrollTop = cellPosition.top - verticalElem.offsetHeight + 20;
- }
- cellPosition = ej.spreadsheet.getCellPosition(sheet, [selectedIndex[4], selectedIndex[5]], freezeRow, freezeCol);
- let horizontalElem = this.ssObj.getScrollElement();
- if (!(cellPosition.left > horizontalElem.scrollLeft && cellPosition.left < horizontalElem.scrollLeft + horizontalElem.offsetWidth) || horizontalElem.offsetWidth + horizontalElem.scrollLeft < ej.spreadsheet.getCellPosition(this.ssObj.getActiveSheet(), [selectedIndex[4], selectedIndex[5]], freezeRow, freezeCol).left) {
- horizontalElem.scrollLeft = cellPosition.left - horizontalElem.offsetWidth + 20;
- }
- }
- openFullscreen(elem) {
- if (elem.requestFullscreen) {
- elem.requestFullscreen();
- }
- else if (elem.webkitRequestFullscreen) {
- elem.webkitRequestFullscreen();
- }
- else if (elem.msRequestFullscreen) {
- elem.msRequestFullscreen();
- }
- }
- setHeightOnFullScreenChange() {
- let sheetPannelElement = document.getElementById("DocumentViewer_sheet_panel");
- var menubarHeight = this.element.parentElement.previousElementSibling.offsetHeight;
- var footerHeight = this.element.parentElement.nextElementSibling.offsetHeight;
- var toolbarHeight = sheetPannelElement.previousElementSibling.previousElementSibling.offsetHeight;
- var sheetTabPannelHeight = sheetPannelElement.nextElementSibling.offsetHeight;
- var formulaPannelHeight = sheetPannelElement.previousElementSibling.offsetHeight;
- var totalHeight = menubarHeight + footerHeight + formulaPannelHeight + sheetTabPannelHeight + toolbarHeight;
- this.element.parentElement.style.height = (window.innerHeight - menubarHeight - footerHeight) + 'px';
- sheetPannelElement.style.height = (window.innerHeight - totalHeight) + 'px';
- }
- setViewonly() {
- this.ssObj["allowEditing"] = false;
- this.ssObj["allowResizing"] = false;
- this.ssObj["enableContextMenu"] = false;
- this.ssObj["allowAutoFill"] = false;
- document.getElementsByClassName("biz-ss-fileshare-icon")[0].classList.remove("icon-ss-lockopen");
- document.getElementsByClassName("biz-ss-fileshare-icon")[0].classList.add("icon-ss-lockclose");
- this.ribbon.ssMenubarObj.enableItems(["Import", "Make A Copy", "Edit", "Insert", "Format", "Formulas",
- "Data", "Freeze Panes", "Freeze Rows", "Freeze Columns", "Tools"], false);
- document.getElementById("DocumentViewer_sheet_tab_panel").firstElementChild.setAttribute("disabled", "true");
- document.getElementById("DocumentViewer_ribbon").classList.add("biz-ss-toolbar-wrapper");
- document.getElementById("biz-ss-viewonly-btn").addEventListener("click", () => {
- if (!(document.getElementById("viewonly-container"))) {
- this.viewOnlyDialog = new ej.popups.Dialog({
- header: "",
- content: `<div id='viewonly-container'>
- <p>you can only view this document. To make changes, ask the owner for edit access</p>
- </div>`,
- width: '240px',
- height: '135px',
- buttons: [{
- click: this.processAccessDailog.bind(this),
- buttonModel: { content: 'Request Edit Access', isPrimary: true }
- }],
- position: { X: 12, Y: 95 },
- cssClass: "biz-ss-viewonly-dialog",
- });
- this.viewOnlyDialog.appendTo('#dialog');
- }
- });
- }
- getElem() {
- var div = document.createElement('button');
- div.setAttribute("id", "biz-ss-viewonly-btn");
- let button = new ej.buttons.Button();
- button.appendTo(div);
- div.innerHTML = 'View Only';
- return div;
- }
- initialLoad() {
- let getRibbonItemsFn = this.ssObj.ribbonModule.getRibbonItems.bind(this.ssObj.ribbonModule);
- this.ssObj.ribbonModule.getRibbonItems = () => {
- let items = getRibbonItemsFn();
- let home = items[0].content;
- let item = { template: this.getElem(), cssClass: 'biz-ss-viewonly-wrapper', id: this.ssObj.element.id + '_viewonly', tooltipText: "View Only" };
- home.splice(items[0].content.length, 0, item);
- return items;
- };
- }
- performBizUndoRedo(args, isForce) {
- let undoredoModule = this.ssObj.undoredoModule;
- let data;
- if (!isForce) {
- data = args.isUndo ? undoredoModule.undoCollection[undoredoModule.undoCollection.length - 1] : undoredoModule.redoCollection[undoredoModule.redoCollection.length - 1];
- }
- else {
- data = args.isUndo ? undoredoModule.undoCollection.pop() : undoredoModule.redoCollection.pop();
- }
- if (data && data.action == "resize") {
- var k = data;
- data = [];
- data.args = k;
- }
- if (!(data && data.args)) {
- return;
- }
- switch (data.args.action) {
- case 'autofill':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.setCellObjects(data.args.options.fillRange, oldCells);
- }
- else {
- this.autofill.applyAutofill(data.args.options, data.args.direction);
- }
- break;
- case 'formatpaint':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.setCellObjects(data.args.options.destIndexes, oldCells);
- }
- else {
- this.formatpainter.applyFormatPaint(data.args.options.srcRange, data.args.options.destRange, data.args.options.srcSheetIndex);
- }
- break;
- case 'trim':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.setCellObjects(data.args.range, oldCells);
- }
- else {
- this.ribbon.processTrim(data.args.range);
- }
- break;
- case 'removeDuplicates':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.setCellObjects(data.args.options.indexes, oldCells);
- }
- else {
- this.dialogue.removeDuplicate(data.args.options.range, data.args.options.header, data.args.options.colSelected);
- }
- break;
- case 'splittext':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.setCellObjects(data.args.range, oldCells, data.args.stValues);
- }
- else {
- this.formatpainter.applySplitText(data.args.range, data.args.stValues);
- }
- break;
- case 'shiftcells':
- if (args.isUndo) {
- let dragCells = JSON.parse(JSON.stringify(data.args.dragCells));
- let dropCells = JSON.parse(JSON.stringify(data.args.dropCells));
- this.setCellObjects(data.args.options.ranges, dragCells);
- this.setCellObjects(data.args.options.dropRange, dropCells);
- }
- else {
- let dragCells = JSON.parse(JSON.stringify(data.args.dragCells));
- this.setCellObjects(data.args.options.ranges, []);
- this.setCellObjects(data.args.options.dropRange, dragCells);
- }
- break;
- case 'deleteshiftup':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.formatpainter.applyInsertShiftDown(data.args.range, data);
- this.setCellObjects(data.args.indexes, oldCells);
- }
- else {
- this.formatpainter.applyDeleteShiftUp(data.args.range, data);
- }
- break;
- case 'deleteshiftleft':
- if (args.isUndo) {
- let oldCells = JSON.parse(JSON.stringify(data.args.oldCells));
- this.formatpainter.applyInsertShiftRight(data.args.range);
- this.setCellObjects(data.args.indexes, oldCells);
- }
- else {
- this.formatpainter.applyDeleteShiftLeft(data.args.range);
- }
- break;
- case 'insertshiftdown':
- if (args.isUndo) {
- this.formatpainter.applyDeleteShiftUp(data.args.range, data);
- }
- else {
- this.formatpainter.applyInsertShiftDown(data.args.range, data);
- }
- break;
- case 'insertshiftright':
- if (args.isUndo) {
- this.formatpainter.applyDeleteShiftLeft(data.args.range);
- }
- else {
- this.formatpainter.applyInsertShiftRight(data.args.range);
- }
- break;
- case 'shortcuts':
- if (args.isUndo) {
- let oldCells = [...data.args.oldCells];
- this.setCellObjects(data.args.options.range, oldCells);
- }
- else {
- this.shortcuts(data.args.options);
- }
- break;
- case 'bizImageInCell':
- if (args.isUndo) {
- let oldCells = data.args.oldCells;
- oldCells ? "" : oldCells = {};
- let idxs = data.args.options.indexes;
- this.setCellObjects(idxs, [oldCells]);
- this.download.ssAutoSave({ action: "imageincell", changedValues: [{ row: idxs[0], cell: idxs[1], cellinfo: oldCells }] }, this, true);
- }
- else {
- this.actionInsertImage(data.args.options);
- }
- break;
- case 'resize':
- if (args.isUndo) {
- let oldData;
- if (data.args.eventArgs.type === "Column") {
- oldData = { args: { undo: true, eventArgs: { index: data.args.eventArgs.index, width: data.args.eventArgs.oldSize, sheetIdx: data.args.eventArgs.sheetIdx, oldWidth: data.args.eventArgs.newSize, range: data.args.eventArgs.range }, action: 'resize', name: 'actionComplete' } };
- }
- if (data.args.eventArgs.type === "Row") {
- oldData = { args: { undo: true, eventArgs: { index: data.args.eventArgs.index, height: data.args.eventArgs.oldSize, sheetIdx: data.args.eventArgs.sheetIdx, oldHeight: data.args.eventArgs.newSize, range: data.args.eventArgs.range }, action: 'resize', name: 'actionComplete' } };
- }
- this.adjustRowsAndColumnWidth(oldData.args);
- }
- else {
- this.adjustRowsAndColumnWidth(data.args);
- }
- break;
- case 'spell':
- if (args.isUndo) {
- let oldCells = [...data.args.oldCells];
- this.setCellObjects(data.args.options.indexes, oldCells);
- }
- else {
- this.adjustRowsAndColumnWidth(data.args);
- }
- break;
- }
- let args1 = { origin: 'biz', action: 'undoredo', sheetIndex: this.getSheetIndex(), isUndo: args.isUndo };
- !isForce && Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().bizSignalr(args1);
- }
- addFormatsToToolbar() {
- let getRibbonItemsFn = this.ssObj.ribbonModule.getRibbonItems.bind(this.ssObj.ribbonModule);
- this.ssObj.ribbonModule.getRibbonItems = () => {
- let items = getRibbonItemsFn();
- let home = items[0].content;
- let item = [{ prefixIcon: "icon-ss-currency", cssClass: 'biz-ss-currencyformat', id: this.ssObj.element.id + '_currencyformat', tooltipText: "Format as currency" },
- { prefixIcon: "icon-ss-percentage", cssClass: 'biz-ss-percentageformat', id: this.ssObj.element.id + '_percentageformat', tooltipText: "Format as percentage" },
- { template: this.ribbon.getFormulaBtnDdb(), id: this.ssObj.element.id + '_sumformula', tooltipText: "Sum Function", }];
- home.splice(8, 0, item[0], item[1]);
- home.splice(items[0].content.length - 1, 0, item[2]);
- let sortingBtn = home.find(x => x.id == "DocumentViewer_sorting").template.ej2_instances[0];
- sortingBtn.addEventListener('select', this.sortingBtnSelect.bind(this));
- sortingBtn.addEventListener('beforeItemRender', this.sortingBtnBfRender.bind(this));
- let sort = items[0].content.find(x => x.id == "DocumentViewer_sorting");
- sort.template.firstElementChild.classList.remove('e-sort-filter-icon');
- sort.template.firstElementChild.classList.add('biz-sort-filter-icon');
- return items;
- };
- }
- sortingBtnBfRender(args) {
- if (args.item.text === "Filter") {
- if (this.ssObj.filterModule.filterCollection.has(this.getSheetIndex())) {
- var child = args.element.firstElementChild;
- args.element.innerHTML = child.outerHTML + "Remove Filter";
- args.element.firstElementChild.classList.remove("e-filter-apply");
- args.element.firstElementChild.classList.add("e-filter-clear");
- }
- }
- }
- sortingBtnBeforeOpen(args) {
- if (this.ssObj.filterModule.filterCollection.has(this.getSheetIndex())) {
- (args.element.lastElementChild.classList.contains("e-disabled")) && args.element.lastElementChild.classList.remove("e-disabled");
- }
- else {
- !(args.element.lastElementChild.classList.contains("e-disabled")) && args.element.lastElementChild.classList.add("e-disabled");
- }
- }
- sortingBtnSelect(args) {
- if (this.ssObj.filterCollection) {
- if (args.item.text === "Filter") {
- setTimeout(() => {
- if (!this.ssObj.filterModule.filterCollection.has(this.getSheetIndex())) {
- this.sortingBtn = document.getElementById("DocumentViewer_sorting");
- this.sortingBtn.firstElementChild.style.color = "";
- }
- }, 500);
- }
- }
- }
- processAccessDailog() {
- this.viewOnlyDialog.hide();
- this.viewOnlyDialog.destroy();
- this.renderAccessDailog();
- }
- renderAccessDailog() {
- this.requestAccessObj = new ej.popups.Dialog({
- header: "Ask the owner to access for edit",
- content: `<div id='requestaccess-container'>
- <textarea id="requestaccess-textarea"> </textarea>
- </div>`,
- width: '400px',
- buttons: [{
- click: this.hideRequestAccess.bind(this),
- buttonModel: { content: 'cancel' }
- },
- {
- click: this.hideRequestAccess.bind(this),
- buttonModel: { content: 'send', isPrimary: true }
- }],
- cssClass: "biz-ss-requestaccess-dialog",
- target: this.container,
- isModal: true,
- });
- this.requestAccessObj.appendTo('#dialog');
- var textareaObj = new ej.inputs.TextBox({
- placeholder: 'Enter your message',
- floatLabelType: 'Auto',
- rows: 4,
- });
- textareaObj.appendTo('#requestaccess-textarea');
- textareaObj.element.setAttribute("rows", "4");
- }
- hideRequestAccess() {
- this.requestAccessObj.hide();
- this.requestAccessObj.destroy();
- }
- lettersToNumber(letters) {
- let base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', i, j, result = 0;
- for (i = 0, j = letters.length - 1; i < letters.length; i += 1, j -= 1) {
- result += Math.pow(base.length, j) * (base.indexOf(letters[i]) + 1);
- }
- return result;
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new Base();
- }
- return this.instance;
- }
- }
- Sheets.Base = Base;
- })(Sheets = Components.Sheets || (Components.Sheets = {}));
- })(Components = Collaboration.Components || (Collaboration.Components = {}));
- })(Collaboration = Apps.Collaboration || (Apps.Collaboration = {}));
- })(Apps = Unibase.Apps || (Unibase.Apps = {}));
- })(Unibase || (Unibase = {}));
|