@pie-element/extended-text-entry 11.5.5-next.17 → 11.5.5-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/annotation/annotation-editor.jsx"],"names":["style","theme","textContainer","padding","backgroundColor","border","borderRadius","overflowY","lineHeight","whiteSpace","overflowWrap","margin","userSelect","labelsContainer","width","wrapper","position","overflowX","display","commentContainer","paddingTop","spacing","unit","marginBottom","marginTop","annotation","cursor","annotationLabel","top","left","fontSize","typography","fontStyle","fontWeight","color","labelHover","zIndex","highlight","hover","sideAnnotationHover","borderRightColor","sideAnnotation","marginLeft","wordBreak","palette","common","white","right","content","height","pointerEvents","borderWidth","AnnotationEditor","props","textRef","labelsRef","offsetLeft","offsetWidth","Array","from","children","forEach","label","spans","dataset","annId","spanOffset","offsetTop","offsetParent","scrollTop","event","annotations","classes","selectionDetails","state","target","id","annotationId","selectedElems","labelElem","annotationIndex","findIndex","isSideLabel","hasAttribute","classList","add","setState","anchorEl","openedMenu","openedEditor","elem","remove","length","selection","window","getSelection","detail","rangeCount","selectedRange","getRangeAt","selectedText","toString","isSelectionInside","contains","commonAncestorContainer","isCollapsed","onChange","parentRef","removeChild","splice","handleClose","elems","disabled","type","className","onclick","handleClick","onmouseover","handleHover","onmouseout","handleCancelHover","firstSpan","document","createElement","innerHTML","freeform","appendChild","start","end","Date","getTime","join","createDOMAnnotation","newAnnotation","text","updatedAnnotation","oldType","oldLabel","updateLabel","createNewAnnotation","push","newLabel","span","domStart","domEnd","range","createRange","setStart","node","offset","setEnd","adjustAnnotationsPosition","addEventListener","removeEventListener","comment","customKeys","disabledMath","keypadMode","maxHeight","onCommentChange","predefinedAnnotations","anchorOffset","topOffset","minHeight","r","clearSelection","handleSelection","__html","prompt","math","controlledKeypadMode","video","audio","deleteAnnotation","editAnnotation","addAnnotation","handleMenuClick","updateAnnotation","changeAnnotationType","React","Component","PropTypes","string","array","func","isRequired","number","bool","object"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAUA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAACC,KAAD;AAAA,SAAY;AACxBC,IAAAA,aAAa,EAAE;AACbC,MAAAA,OAAO,EAAE,sBADI;AAEbC,MAAAA,eAAe,EAAE,qBAFJ;AAGbC,MAAAA,MAAM,EAAE,gBAHK;AAIbC,MAAAA,YAAY,EAAE,KAJD;AAKbC,MAAAA,SAAS,EAAE,QALE;AAMbC,MAAAA,UAAU,EAAE,MANC;AAObC,MAAAA,UAAU,EAAE,UAPC;AAQbC,MAAAA,YAAY,EAAE,YARD;AASb,aAAO;AACLC,QAAAA,MAAM,EAAE;AADH,OATM;AAYb,4BAAsB;AACpBC,QAAAA,UAAU,EAAE,MADQ;AAEpB,+BAAuB,MAFH;AAGpB,4BAAoB,MAHA;AAIpB,2BAAmB;AAJC;AAZT,KADS;AAoBxBC,IAAAA,eAAe,EAAE;AACfC,MAAAA,KAAK,EAAE;AADQ,KApBO;AAuBxBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,QAAQ,EAAE,UADH;AAEPC,MAAAA,SAAS,EAAE,QAFJ;AAGPC,MAAAA,OAAO,EAAE;AAHF,KAvBe;AA4BxBC,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,UAAU,EAAEnB,KAAK,CAACoB,OAAN,CAAcC,IAAd,GAAqB,CADjB;AAEhBC,MAAAA,YAAY,EAAEtB,KAAK,CAACoB,OAAN,CAAcC,IAAd,GAAqB,CAFnB;AAGhBE,MAAAA,SAAS,EAAEvB,KAAK,CAACoB,OAAN,CAAcC,IAAd,GAAqB,CAHhB;AAIhBR,MAAAA,KAAK,EAAE;AAJS,KA5BM;AAkCxBW,IAAAA,UAAU,EAAE;AACVT,MAAAA,QAAQ,EAAE,UADA;AAEVU,MAAAA,MAAM,EAAE,SAFE;AAIV,oBAAc;AACZtB,QAAAA,eAAe,EAAE;AADL,OAJJ;AAQV,oBAAc;AACZA,QAAAA,eAAe,EAAE;AADL;AARJ,KAlCY;AA8CxBuB,IAAAA,eAAe,EAAE;AACfvB,MAAAA,eAAe,EAAE,oBADF;AAEfD,MAAAA,OAAO,EAAE,KAFM;AAGfa,MAAAA,QAAQ,EAAE,UAHK;AAIfJ,MAAAA,UAAU,EAAE,MAJG;AAKfH,MAAAA,UAAU,EAAE,QALG;AAMfmB,MAAAA,GAAG,EAAE,OANU;AAOfC,MAAAA,IAAI,EAAE,MAPS;AAQfC,MAAAA,QAAQ,EAAE7B,KAAK,CAAC8B,UAAN,CAAiBD,QAAjB,GAA4B,CARvB;AASfE,MAAAA,SAAS,EAAE,QATI;AAUfC,MAAAA,UAAU,EAAE,QAVG;AAWfzB,MAAAA,UAAU,EAAE,KAXG;AAYf,6BAAuB,MAZR;AAaf,0BAAoB,MAbL;AAcf,yBAAmB,MAdJ;AAgBf,oBAAc;AACZ0B,QAAAA,KAAK,EAAE;AADK,OAhBC;AAoBf,oBAAc;AACZA,QAAAA,KAAK,EAAE;AADK;AApBC,KA9CO;AAsExBC,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAE,EADE;AAGV,oBAAc;AACZF,QAAAA,KAAK,EAAE;AADK,OAHJ;AAOV,oBAAc;AACZA,QAAAA,KAAK,EAAE;AADK;AAPJ,KAtEY;AAiFxBG,IAAAA,SAAS,EAAE;AACTD,MAAAA,MAAM,EAAE;AADC,KAjFa;AAoFxBE,IAAAA,KAAK,EAAE;AACLF,MAAAA,MAAM,EAAE,EADH;AAGL,oBAAc;AACZhC,QAAAA,eAAe,EAAE;AADL,OAHT;AAOL,oBAAc;AACZA,QAAAA,eAAe,EAAE;AADL;AAPT,KApFiB;AA+FxBmC,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,MAAM,EAAE,EADW;AAGnB,oBAAc;AACZhC,QAAAA,eAAe,EAAE,+BADL;AAEZ,oBAAY;AACVoC,UAAAA,gBAAgB,EAAE;AADR;AAFA,OAHK;AAUnB,oBAAc;AACZpC,QAAAA,eAAe,EAAE,+BADL;AAEZ,oBAAY;AACVoC,UAAAA,gBAAgB,EAAE;AADR;AAFA;AAVK,KA/FG;AAgHxBC,IAAAA,cAAc,EAAE;AACdzB,MAAAA,QAAQ,EAAE,UADI;AAEdb,MAAAA,OAAO,EAAEF,KAAK,CAACoB,OAAN,CAAcC,IAAd,GAAqB,CAFhB;AAGdhB,MAAAA,YAAY,EAAE,KAHA;AAIdoC,MAAAA,UAAU,EAAEzC,KAAK,CAACoB,OAAN,CAAcC,IAJZ;AAKdR,MAAAA,KAAK,EAAE,OALO;AAMdL,MAAAA,UAAU,EAAE,UANE;AAOdkC,MAAAA,SAAS,EAAE,YAPG;AAQdtC,MAAAA,MAAM,sBAAeJ,KAAK,CAAC2C,OAAN,CAAcC,MAAd,CAAqBC,KAApC,CARQ;AASdhB,MAAAA,QAAQ,EAAE7B,KAAK,CAAC8B,UAAN,CAAiBD,QATb;AAUdE,MAAAA,SAAS,EAAE,QAVG;AAWdC,MAAAA,UAAU,EAAE,QAXE;AAad,kBAAY;AACVjB,QAAAA,QAAQ,EAAE,UADA;AAEV+B,QAAAA,KAAK,EAAE,MAFG;AAGVnB,QAAAA,GAAG,EAAE,KAHK;AAIVvB,QAAAA,MAAM,EAAE,mBAJE;AAKV2C,QAAAA,OAAO,EAAE,IALC;AAMVC,QAAAA,MAAM,EAAE,CANE;AAOVnC,QAAAA,KAAK,EAAE,CAPG;AAQVoC,QAAAA,aAAa,EAAE,MARL;AASVC,QAAAA,WAAW,EAAE;AATH,OAbE;AAyBd,oBAAc;AACZ/C,QAAAA,eAAe,EAAE,oBADL;AAEZ,oBAAY;AACVoC,UAAAA,gBAAgB,EAAE;AADR;AAFA,OAzBA;AAgCd,oBAAc;AACZpC,QAAAA,eAAe,EAAE,oBADL;AAEZ,oBAAY;AACVoC,UAAAA,gBAAgB,EAAE;AADR;AAFA;AAhCA;AAhHQ,GAAZ;AAAA,CAAd;;IAyJMY,gB;;;;;AAkBJ,4BAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,kHAwCS,YAAM;AAChC,UAAI,MAAKC,OAAL,IAAgB,MAAKC,SAAzB,EAAoC;AAClC,YAAM1B,IAAI,GAAG,MAAKyB,OAAL,CAAaE,UAAb,GAA0B,MAAKF,OAAL,CAAaG,WAAvC,GAAqD,CAAlE;AAEAC,QAAAA,KAAK,CAACC,IAAN,CAAW,MAAKJ,SAAL,CAAeK,QAA1B,EAAoCC,OAApC,CAA4C,UAACC,KAAD,EAAW;AACrD,cAAMC,KAAK,GAAG,4CAAsBD,KAAK,CAACE,OAAN,CAAcC,KAApC,CAAd;AACA,cAAMC,UAAU,GAAGH,KAAK,CAAC,CAAD,CAAL,CAASI,SAAT,GAAqBJ,KAAK,CAAC,CAAD,CAAL,CAASI,SAA9B,GAA0CJ,KAAK,CAAC,CAAD,CAAL,CAASK,YAAT,CAAsBD,SAAnF;AACA,cAAMvC,GAAG,GAAGsC,UAAU,GAAG,MAAKZ,OAAL,CAAae,SAA1B,GAAsC,CAAlD;AAEAP,UAAAA,KAAK,CAAC9D,KAAN,CAAY4B,GAAZ,aAAqBA,GAArB;AACAkC,UAAAA,KAAK,CAAC9D,KAAN,CAAY6B,IAAZ,aAAsBA,IAAtB;AACD,SAPD;AAQD;AACF,KArDkB;AAAA,oGAuDL,UAACyC,KAAD,EAAW;AACvB,wBAAiC,MAAKjB,KAAtC;AAAA,UAAQkB,WAAR,eAAQA,WAAR;AAAA,UAAqBC,OAArB,eAAqBA,OAArB;AACA,UAAQC,gBAAR,GAA6B,MAAKC,KAAlC,CAAQD,gBAAR;;AAEA,UAAIA,gBAAJ,EAAsB;AACpB;AACA;AACD;;AAED,kCAAsBH,KAAK,CAACK,MAAN,CAAaX,OAAnC;AAAA,UAAQY,EAAR,yBAAQA,EAAR;AAAA,UAAYX,KAAZ,yBAAYA,KAAZ;AACA,UAAMY,YAAY,GAAGD,EAAE,IAAIX,KAA3B;AACA,UAAMa,aAAa,GAAG,4CAAsBD,YAAtB,CAAtB;AACA,UAAME,SAAS,GAAG,sCAAgBF,YAAhB,CAAlB;AACA,UAAMG,eAAe,GAAGT,WAAW,CAACU,SAAZ,CAAsB,UAACxD,UAAD;AAAA,eAAgBA,UAAU,CAACmD,EAAX,KAAkBC,YAAlC;AAAA,OAAtB,CAAxB;AACA,UAAMK,WAAW,GAAGH,SAAS,CAACI,YAAV,CAAuB,eAAvB,CAApB;;AAEA,UAAID,WAAJ,EAAiB;AACfH,QAAAA,SAAS,CAACK,SAAV,CAAoBC,GAApB,CAAwBb,OAAO,CAACnC,SAAhC;AACD;;AAED,YAAKiD,QAAL,CAAc;AACZC,QAAAA,QAAQ,EAAET,aAAa,CAAC,CAAD,CADX;AAEZU,QAAAA,UAAU,EAAE,CAAC,CAACZ,EAAF,IAAS,CAAC,CAACX,KAAF,IAAW,CAACiB,WAFrB;AAEmC;AAC/CO,QAAAA,YAAY,EAAE,CAAC,CAACxB,KAAF,IAAWiB,WAHb;AAG0B;AACtCJ,QAAAA,aAAa,EAAbA,aAJY;AAKZC,QAAAA,SAAS,EAATA,SALY;AAMZC,QAAAA,eAAe,EAAfA,eANY;AAOZvD,QAAAA,UAAU,EAAE8C,WAAW,CAACS,eAAD,CAPX;AAQZP,QAAAA,gBAAgB,EAAE;AARN,OAAd;AAUD,KArFkB;AAAA,oGAuFL,UAACH,KAAD,EAAW;AACvB,UAAQE,OAAR,GAAoB,MAAKnB,KAAzB,CAAQmB,OAAR;AACA,mCAAsBF,KAAK,CAACK,MAAN,CAAaX,OAAnC;AAAA,UAAQY,EAAR,0BAAQA,EAAR;AAAA,UAAYX,KAAZ,0BAAYA,KAAZ;AACA,UAAMY,YAAY,GAAGD,EAAE,IAAIX,KAA3B;AACA,UAAMa,aAAa,GAAG,4CAAsBD,YAAtB,CAAtB;AACA,UAAME,SAAS,GAAG,sCAAgBF,YAAhB,CAAlB;AACA,UAAMK,WAAW,GAAGH,SAAS,CAACI,YAAV,CAAuB,eAAvB,CAApB;AAEAL,MAAAA,aAAa,CAACjB,OAAd,CAAsB,UAAC6B,IAAD;AAAA,eAAUA,IAAI,CAACN,SAAL,CAAeC,GAAf,CAAmBb,OAAO,CAAClC,KAA3B,CAAV;AAAA,OAAtB;AACAyC,MAAAA,SAAS,CAACK,SAAV,CAAoBC,GAApB,CAAwBH,WAAW,GAAGV,OAAO,CAACjC,mBAAX,GAAiCiC,OAAO,CAACrC,UAA5E;AACD,KAjGkB;AAAA,0GAmGC,UAACmC,KAAD,EAAW;AAC7B,UAAQE,OAAR,GAAoB,MAAKnB,KAAzB,CAAQmB,OAAR;AACA,mCAAsBF,KAAK,CAACK,MAAN,CAAaX,OAAnC;AAAA,UAAQY,EAAR,0BAAQA,EAAR;AAAA,UAAYX,KAAZ,0BAAYA,KAAZ;AACA,UAAMY,YAAY,GAAGD,EAAE,IAAIX,KAA3B;AACA,UAAMa,aAAa,GAAG,4CAAsBD,YAAtB,CAAtB;AACA,UAAME,SAAS,GAAG,sCAAgBF,YAAhB,CAAlB;AACA,UAAMK,WAAW,GAAGH,SAAS,CAACI,YAAV,CAAuB,eAAvB,CAApB;AAEAL,MAAAA,aAAa,CAACjB,OAAd,CAAsB,UAAC6B,IAAD;AAAA,eAAUA,IAAI,CAACN,SAAL,CAAeO,MAAf,CAAsBnB,OAAO,CAAClC,KAA9B,CAAV;AAAA,OAAtB;AACAyC,MAAAA,SAAS,CAACK,SAAV,CAAoBO,MAApB,CAA2BT,WAAW,GAAGV,OAAO,CAACjC,mBAAX,GAAiCiC,OAAO,CAACrC,UAA/E;AACD,KA7GkB;AAAA,oGA+GL,UAACmC,KAAD,EAAW;AACvB,UAAQE,OAAR,GAAoB,MAAKnB,KAAzB,CAAQmB,OAAR;AACA,wBAAqC,MAAKE,KAA1C;AAAA,UAAQI,aAAR,eAAQA,aAAR;AAAA,UAAuBC,SAAvB,eAAuBA,SAAvB;;AAEA,UAAID,aAAa,CAACc,MAAd,IAAwB,CAACd,aAAa,CAAC,CAAD,CAAb,CAAiBK,YAAjB,CAA8B,SAA9B,CAA7B,EAAuE;AACrE,kDAAoBL,aAApB,EAAmC,MAAKxB,OAAxC;AACD;;AAED,UAAIyB,SAAJ,EAAe;AACbA,QAAAA,SAAS,CAACK,SAAV,CAAoBO,MAApB,CAA2BnB,OAAO,CAACnC,SAAnC;AACD;;AAED,YAAKiD,QAAL,CAAc;AACZC,QAAAA,QAAQ,EAAE,IADE;AAEZC,QAAAA,UAAU,EAAE,KAFA;AAGZC,QAAAA,YAAY,EAAE,KAHF;AAIZX,QAAAA,aAAa,EAAE,EAJH;AAKZC,QAAAA,SAAS,EAAE,IALC;AAMZN,QAAAA,gBAAgB,EAAE,IANN;AAOZO,QAAAA,eAAe,EAAE,IAPL;AAQZvD,QAAAA,UAAU,EAAE;AARA,OAAd;;AAWA;AACD,KAvIkB;AAAA,wGAyID,UAAC6C,KAAD,EAAW;AAC3B,UAAMuB,SAAS,GAAGC,MAAM,CAACC,YAAP,EAAlB,CAD2B,CAG3B;;AACA,UAAIzB,KAAK,CAAC0B,MAAN,GAAe,CAAnB,EAAsB;AACpB;AACA;AACD;;AAED,UAAIH,SAAS,IAAIA,SAAS,CAACI,UAAV,GAAuB,CAAxC,EAA2C;AACzC,YAAMC,aAAa,GAAGL,SAAS,CAACM,UAAV,CAAqB,CAArB,CAAtB;AACA,YAAMC,YAAY,GAAGF,aAAa,CAACG,QAAd,EAArB;;AACA,YAAMC,iBAAiB,GAAG,MAAKhD,OAAL,CAAaiD,QAAb,CAAsBL,aAAa,CAACM,uBAApC,CAA1B;;AAEA,YAAI,CAACX,SAAS,CAACY,WAAX,IAA0BL,YAAY,KAAK,EAA3C,IAAiDE,iBAArD,EAAwE;AACtE,cAAM7B,gBAAgB,GAAG,sCAAgByB,aAAhB,EAA+B,MAAK5C,OAApC,CAAzB;AACA,cAAMwB,aAAa,GAAG,gCAAUoB,aAAV,CAAtB;;AAEA,gBAAKZ,QAAL,CAAc;AACZC,YAAAA,QAAQ,EAAET,aAAa,CAAC,CAAD,CADX;AAEZU,YAAAA,UAAU,EAAE,IAFA;AAGZV,YAAAA,aAAa,EAAbA,aAHY;AAIZL,YAAAA,gBAAgB,EAAhBA;AAJY,WAAd;AAMD;AACF;AACF,KAnKkB;AAAA,yGAqKA,YAAM;AACvB,yBAAkC,MAAKpB,KAAvC;AAAA,UAAQkB,WAAR,gBAAQA,WAAR;AAAA,UAAqBmC,QAArB,gBAAqBA,QAArB;AACA,yBAAkE,MAAKhC,KAAvE;AAAA,UAAQI,aAAR,gBAAQA,aAAR;AAAA,UAAuBC,SAAvB,gBAAuBA,SAAvB;AAAA,UAAkCC,eAAlC,gBAAkCA,eAAlC;AAAA,UAAmDvD,UAAnD,gBAAmDA,UAAnD;AACA,UAAMkF,SAAS,GAAG,kCAAYlF,UAAU,CAACqC,KAAvB,IAAgC,MAAKP,SAArC,GAAiDuB,aAAa,CAAC,CAAD,CAAhF;AAEA6B,MAAAA,SAAS,CAACC,WAAV,CAAsB7B,SAAtB;AACA,gDAAoBD,aAApB,EAAmC,MAAKxB,OAAxC;AACAiB,MAAAA,WAAW,CAACsC,MAAZ,CAAmB7B,eAAnB,EAAoC,CAApC;AAEA0B,MAAAA,QAAQ,CAACnC,WAAD,CAAR;;AACA,YAAKuC,WAAL;AACD,KAhLkB;AAAA,4GAkLG,UAACC,KAAD,EAAQtF,UAAR,EAAuB;AAC3C,yBAA8B,MAAK4B,KAAnC;AAAA,UAAQmB,OAAR,gBAAQA,OAAR;AAAA,UAAiBwC,QAAjB,gBAAiBA,QAAjB;AACA,UAAQpC,EAAR,GAA4BnD,UAA5B,CAAQmD,EAAR;AAAA,UAAYd,KAAZ,GAA4BrC,UAA5B,CAAYqC,KAAZ;AAAA,UAAmBmD,IAAnB,GAA4BxF,UAA5B,CAAmBwF,IAAnB;AAEA,OAACF,KAAK,IAAI,EAAV,EAAclD,OAAd,CAAsB,UAAC6B,IAAD,EAAU;AAC9BA,QAAAA,IAAI,CAAC1B,OAAL,CAAaY,EAAb,GAAkBA,EAAlB;AACAc,QAAAA,IAAI,CAACwB,SAAL,GAAiB,4BAAW1C,OAAO,CAAC/C,UAAnB,EAA+BwF,IAA/B,CAAjB;AACAvB,QAAAA,IAAI,CAACyB,OAAL,GAAe,CAACH,QAAD,IAAa,MAAKI,WAAjC;AACA1B,QAAAA,IAAI,CAAC2B,WAAL,GAAmB,MAAKC,WAAxB;AACA5B,QAAAA,IAAI,CAAC6B,UAAL,GAAkB,MAAKC,iBAAvB;AACD,OAND;AAQA,UAAMC,SAAS,GAAIV,KAAK,IAAIA,KAAK,CAAC,CAAD,CAAf,IAAuB,EAAzC;AACA,UAAMhC,SAAS,GAAG2C,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAlB;AAEA5C,MAAAA,SAAS,CAACf,OAAV,CAAkBC,KAAlB,GAA0BW,EAA1B;AACAG,MAAAA,SAAS,CAAC6C,SAAV,GAAsB9D,KAAtB;AACAiB,MAAAA,SAAS,CAACoC,OAAV,GAAoB,CAACH,QAAD,IAAa,MAAKI,WAAtC;AACArC,MAAAA,SAAS,CAACsC,WAAV,GAAwB,MAAKC,WAA7B;AACAvC,MAAAA,SAAS,CAACwC,UAAV,GAAuB,MAAKC,iBAA5B;;AAEA,UAAI,kCAAY1D,KAAZ,CAAJ,EAAwB;AACtB,YAAMI,UAAU,GAAGuD,SAAS,CAACtD,SAAV,GAAsBsD,SAAS,CAACtD,SAAhC,GAA4CsD,SAAS,CAACrD,YAAV,CAAuBD,SAAtF;AACA,YAAMvC,GAAG,GAAGsC,UAAU,GAAG,MAAKZ,OAAL,CAAae,SAAtC;AACA,YAAMxC,IAAI,GAAG,MAAKyB,OAAL,CAAaE,UAAb,GAA0B,MAAKF,OAAL,CAAaG,WAAvC,GAAqD,CAAlE;AAEAsB,QAAAA,SAAS,CAACf,OAAV,CAAkB6D,QAAlB,GAA6B,IAA7B;AACA9C,QAAAA,SAAS,CAACmC,SAAV,GAAsB,4BAAW1C,OAAO,CAAC/B,cAAnB,EAAmCwE,IAAnC,CAAtB;AACAlC,QAAAA,SAAS,CAAC/E,KAAV,CAAgB4B,GAAhB,aAAyBA,GAAzB;AACAmD,QAAAA,SAAS,CAAC/E,KAAV,CAAgB6B,IAAhB,aAA0BA,IAA1B;;AAEA,cAAK0B,SAAL,CAAeuE,WAAf,CAA2B/C,SAA3B;AACD,OAXD,MAWO;AACLA,QAAAA,SAAS,CAACmC,SAAV,GAAsB,4BAAW1C,OAAO,CAAC7C,eAAnB,EAAoCsF,IAApC,CAAtB;AACAQ,QAAAA,SAAS,CAACK,WAAV,CAAsB/C,SAAtB;AACD;AACF,KAtNkB;AAAA,4GAwNG,UAACjB,KAAD,EAAQmD,IAAR,EAAiB;AACrC,yBAA4C,MAAKvC,KAAjD;AAAA,UAAQI,aAAR,gBAAQA,aAAR;AAAA,UAAuBL,gBAAvB,gBAAuBA,gBAAvB;;AACA,UAAMhD,UAAU;AACdmD,QAAAA,EAAE,EAAE,CAACH,gBAAgB,CAACsD,KAAlB,EAAyBtD,gBAAgB,CAACuD,GAA1C,EAA+C,IAAIC,IAAJ,GAAWC,OAAX,EAA/C,EAAqEC,IAArE,CAA0E,GAA1E,CADU;AAEdrE,QAAAA,KAAK,EAALA,KAFc;AAGdmD,QAAAA,IAAI,EAAJA;AAHc,SAIXxC,gBAJW,CAAhB;;AAOA,YAAK2D,mBAAL,CAAyBtD,aAAzB,EAAwCrD,UAAxC;;AAEA,aAAOA,UAAP;AACD,KApOkB;AAAA,wGAsOD,UAAC4G,aAAD,EAAmB;AACnC,yBAAkC,MAAKhF,KAAvC;AAAA,UAAQkB,WAAR,gBAAQA,WAAR;AAAA,UAAqBmC,QAArB,gBAAqBA,QAArB;AACA,yBAAwC,MAAKhC,KAA7C;AAAA,UAAQjD,UAAR,gBAAQA,UAAR;AAAA,UAAoBuD,eAApB,gBAAoBA,eAApB;AACA,UAAQiC,IAAR,GAA8BoB,aAA9B,CAAQpB,IAAR;AAAA,UAAoBnD,KAApB,GAA8BuE,aAA9B,CAAcC,IAAd;;AAEA,UAAI7G,UAAJ,EAAgB;AACd,YAAM8G,iBAAiB,mCAAQ9G,UAAR;AAAoBqC,UAAAA,KAAK,EAALA,KAApB;AAA2BmD,UAAAA,IAAI,EAAJA;AAA3B,UAAvB;;AACA,YAAcuB,OAAd,GAA2C/G,UAA3C,CAAQwF,IAAR;AAAA,YAA8BwB,QAA9B,GAA2ChH,UAA3C,CAAuBqC,KAAvB;;AAEA,cAAK4E,WAAL,CAAiBD,QAAjB,EAA2BF,iBAA3B,EAA8CtB,IAAI,KAAKuB,OAAT,IAAoBA,OAAlE;;AACAjE,QAAAA,WAAW,CAACsC,MAAZ,CAAmB7B,eAAnB,EAAoC,CAApC,EAAuCuD,iBAAvC;AACD,OAND,MAMO;AACL,YAAMF,cAAa,GAAG,MAAKM,mBAAL,CAAyB7E,KAAzB,EAAgCmD,IAAhC,CAAtB;;AAEA1C,QAAAA,WAAW,CAACqE,IAAZ,CAAiBP,cAAjB;AACD;;AAED3B,MAAAA,QAAQ,CAACnC,WAAD,CAAR;;AACA,YAAKuC,WAAL;AACD,KAzPkB;AAAA,uGA2PF,YAAM;AACrB,YAAKxB,QAAL,CAAc;AACZE,QAAAA,UAAU,EAAE,KADA;AAEZC,QAAAA,YAAY,EAAE;AAFF,OAAd;AAID,KAhQkB;AAAA,sGAkQH,UAACwB,IAAD,EAAU;AACxB,yBAAkC,MAAK5D,KAAvC;AAAA,UAAQkB,WAAR,gBAAQA,WAAR;AAAA,UAAqBmC,QAArB,gBAAqBA,QAArB;;AACA,UAAMjF,UAAU,GAAG,MAAKkH,mBAAL,CAAyB,EAAzB,EAA6B1B,IAA7B,CAAnB;;AACA,UAAMlC,SAAS,GAAG,sCAAgBtD,UAAU,CAACmD,EAA3B,CAAlB;AAEAL,MAAAA,WAAW,CAACqE,IAAZ,CAAiBnH,UAAjB;;AAEA,YAAK6D,QAAL,CAAc;AACZE,QAAAA,UAAU,EAAE,KADA;AAEZC,QAAAA,YAAY,EAAE,IAFF;AAGZT,QAAAA,eAAe,EAAET,WAAW,CAACqB,MAAZ,GAAqB,CAH1B;AAIZnE,QAAAA,UAAU,EAAVA,UAJY;AAKZsD,QAAAA,SAAS,EAATA;AALY,OAAd;;AAQA2B,MAAAA,QAAQ,CAACnC,WAAD,CAAR;AACD,KAlRkB;AAAA,oGAoRL,UAACkE,QAAD,EAAWhH,UAAX,EAAuB+G,OAAvB,EAAmC;AAC/C,yBAAqC,MAAK9D,KAA1C;AAAA,UAAQI,aAAR,gBAAQA,aAAR;AAAA,UAAuBC,SAAvB,gBAAuBA,SAAvB;AACA,UAAQjB,KAAR,GAAwBrC,UAAxB,CAAQqC,KAAR;AAAA,UAAemD,IAAf,GAAwBxF,UAAxB,CAAewF,IAAf;;AAEA,UAAK,kCAAYnD,KAAZ,KAAsB,kCAAY2E,QAAZ,CAAvB,IAAkD,CAAC,kCAAY3E,KAAZ,CAAD,IAAuB,CAAC,kCAAY2E,QAAZ,CAA9E,EAAsG;AACpG1D,QAAAA,SAAS,CAAC6C,SAAV,GAAsB9D,KAAtB;;AAEA,YAAI0E,OAAJ,EAAa;AACXzD,UAAAA,SAAS,CAACK,SAAV,CAAoBO,MAApB,CAA2B6C,OAA3B;AACAzD,UAAAA,SAAS,CAACK,SAAV,CAAoBC,GAApB,CAAwB4B,IAAxB;AAEAnC,UAAAA,aAAa,CAACjB,OAAd,CAAsB,UAAC6B,IAAD,EAAU;AAC9BA,YAAAA,IAAI,CAACN,SAAL,CAAeO,MAAf,CAAsB6C,OAAtB;AACA9C,YAAAA,IAAI,CAACN,SAAL,CAAeC,GAAf,CAAmB4B,IAAnB;AACD,WAHD;AAID;AACF,OAZD,MAYO,IAAI,kCAAYnD,KAAZ,KAAsB,CAAC,kCAAY2E,QAAZ,CAA3B,EAAkD;AACvD3D,QAAAA,aAAa,CAAC,CAAD,CAAb,CAAiB8B,WAAjB,CAA6B7B,SAA7B;;AACA,cAAKqD,mBAAL,CAAyBtD,aAAzB,EAAwCrD,UAAxC;AACD,OAHM,MAGA,IAAI,CAAC,kCAAYqC,KAAZ,CAAD,IAAuB,kCAAY2E,QAAZ,CAA3B,EAAkD;AACvD,cAAKlF,SAAL,CAAeqD,WAAf,CAA2B7B,SAA3B;;AACA,cAAKqD,mBAAL,CAAyBtD,aAAzB,EAAwCrD,UAAxC;AACD;AACF,KA3SkB;AAAA,6GA6SI,UAACoH,QAAD,EAAc;AACnC,yBAAkC,MAAKxF,KAAvC;AAAA,UAAQkB,WAAR,gBAAQA,WAAR;AAAA,UAAqBmC,QAArB,gBAAqBA,QAArB;AACA,yBAA2C,MAAKhC,KAAhD;AAAA,UAAQM,eAAR,gBAAQA,eAAR;AAAA,UAAyBF,aAAzB,gBAAyBA,aAAzB;AACA,kCAA2CP,WAAW,CAACS,eAAD,CAAtD;AAAA,UAAcwD,OAAd,yBAAQvB,IAAR;AAAA,UAA8BwB,QAA9B,yBAAuB3E,KAAvB;AACA,UAAMmD,IAAI,GAAGuB,OAAO,KAAK,UAAZ,GAAyB,UAAzB,GAAsC,UAAnD;;AACA,UAAMD,iBAAiB,mCAAQhE,WAAW,CAACS,eAAD,CAAnB;AAAsCiC,QAAAA,IAAI,EAAJA,IAAtC;AAA4CnD,QAAAA,KAAK,EAAE+E;AAAnD,QAAvB;;AAEA/D,MAAAA,aAAa,CAACjB,OAAd,CAAsB,UAACiF,IAAD,EAAU;AAC9BA,QAAAA,IAAI,CAAC1D,SAAL,CAAeO,MAAf,CAAsB6C,OAAtB;AACAM,QAAAA,IAAI,CAAC1D,SAAL,CAAeC,GAAf,CAAmB4B,IAAnB;AACD,OAHD;;AAKA,YAAKyB,WAAL,CAAiBD,QAAjB,EAA2BF,iBAA3B,EAA8CC,OAA9C;;AACAjE,MAAAA,WAAW,CAACsC,MAAZ,CAAmB7B,eAAnB,EAAoC,CAApC,EAAuCuD,iBAAvC;AAEA7B,MAAAA,QAAQ,CAACnC,WAAD,CAAR;;AACA,YAAKuC,WAAL;AACD,KA9TkB;AAAA,yGAgUA,UAAC2B,QAAD,EAAWI,QAAX,EAAwB;AACzC,yBAAkC,MAAKxF,KAAvC;AAAA,UAAQkB,WAAR,gBAAQA,WAAR;AAAA,UAAqBmC,QAArB,gBAAqBA,QAArB;AACA,UAAQ1B,eAAR,GAA4B,MAAKN,KAAjC,CAAQM,eAAR;;AACA,UAAMuD,iBAAiB,mCAAQhE,WAAW,CAACS,eAAD,CAAnB;AAAsClB,QAAAA,KAAK,EAAE+E;AAA7C,QAAvB;;AAEA,YAAKH,WAAL,CAAiBD,QAAjB,EAA2BF,iBAA3B;;AACAhE,MAAAA,WAAW,CAACsC,MAAZ,CAAmB7B,eAAnB,EAAoC,CAApC,EAAuCuD,iBAAvC;AAEA7B,MAAAA,QAAQ,CAACnC,WAAD,CAAR;AACD,KAzUkB;AAEjB,UAAKG,KAAL,GAAa;AACXa,MAAAA,QAAQ,EAAE,IADC;AAEXC,MAAAA,UAAU,EAAE,KAFD;AAGXC,MAAAA,YAAY,EAAE,KAHH;AAIXX,MAAAA,aAAa,EAAE,EAJJ;AAKXC,MAAAA,SAAS,EAAE,IALA;AAMXN,MAAAA,gBAAgB,EAAE,IANP;AAOXhD,MAAAA,UAAU,EAAE,IAPD;AAQXuD,MAAAA,eAAe,EAAE;AARN,KAAb;AAFiB;AAYlB;;;;WAED,6BAAoB;AAAA;;AAClB,yBAA8B,KAAK3B,KAAnC;AAAA,UAAQkB,WAAR,gBAAQA,WAAR;AAAA,UAAqB+D,IAArB,gBAAqBA,IAArB;;AAEA,UAAIA,IAAJ,EAAU;AACR/D,QAAAA,WAAW,CAACV,OAAZ,CAAoB,UAACpC,UAAD,EAAgB;AAClC,6BAA2B,kCAAYA,UAAU,CAACsG,KAAvB,EAA8BtG,UAAU,CAACuG,GAAzC,EAA8C,MAAI,CAAC1E,OAAnD,CAA3B;AAAA;AAAA,cAAOyF,QAAP;AAAA,cAAiBC,MAAjB;;AAEA,cAAID,QAAQ,IAAIC,MAAhB,EAAwB;AACtB,gBAAMC,KAAK,GAAGvB,QAAQ,CAACwB,WAAT,EAAd;AAEAD,YAAAA,KAAK,CAACE,QAAN,CAAeJ,QAAQ,CAACK,IAAxB,EAA8BL,QAAQ,CAACM,MAAvC;AACAJ,YAAAA,KAAK,CAACK,MAAN,CAAaN,MAAM,CAACI,IAApB,EAA0BJ,MAAM,CAACK,MAAjC;AAEA,gBAAMtF,KAAK,GAAG,gCAAUkF,KAAV,CAAd;;AAEA,YAAA,MAAI,CAACb,mBAAL,CAAyBrE,KAAzB,EAAgCtC,UAAhC;AACD;AACF,SAbD;AAcD;;AAED,UAAI,KAAK6B,OAAT,EAAkB;AAChB,aAAKiG,yBAAL;AACA,aAAKjG,OAAL,CAAakG,gBAAb,CAA8B,QAA9B,EAAwC,KAAKD,yBAA7C;AACD;AACF;;;WAqSD,gCAAuB;AACrB,WAAKjG,OAAL,CAAamG,mBAAb,CAAiC,QAAjC,EAA2C,KAAKF,yBAAhD;AACD;;;WAED,kBAAS;AAAA;;AACP,yBAaI,KAAKlG,KAbT;AAAA,UACEmB,OADF,gBACEA,OADF;AAAA,UAEEkF,OAFF,gBAEEA,OAFF;AAAA,UAGEC,UAHF,gBAGEA,UAHF;AAAA,UAIE3C,QAJF,gBAIEA,QAJF;AAAA,UAKE4C,YALF,gBAKEA,YALF;AAAA,UAMEC,UANF,gBAMEA,UANF;AAAA,UAOE5G,MAPF,gBAOEA,MAPF;AAAA,UAQEnC,KARF,gBAQEA,KARF;AAAA,UASEgJ,SATF,gBASEA,SATF;AAAA,UAUEC,eAVF,gBAUEA,eAVF;AAAA,UAWEC,qBAXF,gBAWEA,qBAXF;AAAA,UAYE1B,IAZF,gBAYEA,IAZF;AAcA,yBAA6E,KAAK5D,KAAlF;AAAA,UAAQa,QAAR,gBAAQA,QAAR;AAAA,UAAkB9D,UAAlB,gBAAkBA,UAAlB;AAAA,UAA8B+D,UAA9B,gBAA8BA,UAA9B;AAAA,UAA0CC,YAA1C,gBAA0CA,YAA1C;AAAA,UAAwDhB,gBAAxD,gBAAwDA,gBAAxD;AAEA,UAAMwF,YAAY,GAAG1E,QAAQ,KAAKA,QAAQ,CAACpB,SAAT,GAAqBoB,QAAQ,CAACpB,SAA9B,GAA0CoB,QAAQ,CAACnB,YAAT,CAAsBD,SAArE,CAA7B;AACA,UAAM+F,SAAS,GAAG,KAAK5G,OAAL,IAAgB2G,YAAhB,GAA+BA,YAAY,GAAG,KAAK3G,OAAL,CAAae,SAA5B,GAAwC,CAAvE,GAA2E,CAA7F;AAEA,0BACE,0DACE;AAAK,QAAA,SAAS,EAAEG,OAAO,CAACzD;AAAxB,sBACE;AACE,QAAA,SAAS,EAAEyD,OAAO,CAACtE,aADrB;AAEE,QAAA,KAAK,EAAE;AAAEY,UAAAA,KAAK,EAAEA,KAAK,GAAG,EAAjB;AAAqBqJ,UAAAA,SAAS,EAAElH,MAAhC;AAAwC6G,UAAAA,SAAS,EAAEA;AAAnD,SAFT;AAGE,QAAA,GAAG,EAAE,aAACM,CAAD;AAAA,iBAAQ,MAAI,CAAC9G,OAAL,GAAe8G,CAAvB;AAAA,SAHP;AAIE,QAAA,WAAW,EAAE,CAACpD,QAAD,GAAYqD,+BAAZ,GAA6B,YAAM,CAAE,CAJpD;AAKE,QAAA,SAAS,EAAE,CAACrD,QAAD,GAAY,KAAKsD,eAAjB,GAAmC,YAAM,CAAE,CALxD;AAME,QAAA,uBAAuB,EAAE;AAAEC,UAAAA,MAAM,EAAEjC;AAAV;AAN3B,QADF,eASE;AAAK,QAAA,SAAS,EAAE9D,OAAO,CAAC3D,eAAxB;AAAyC,QAAA,GAAG,EAAE,aAACuJ,CAAD;AAAA,iBAAQ,MAAI,CAAC7G,SAAL,GAAiB6G,CAAzB;AAAA;AAA9C,QATF,CADF,eAaE,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE,SAAvB;AAAkC,QAAA,SAAS,EAAE5F,OAAO,CAACrD;AAArD,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAEqD,OAAO,CAACgG,MADrB;AAEE,QAAA,MAAM,EAAEd,OAAO,IAAI,EAFrB;AAGE,QAAA,QAAQ,EAAEK,eAHZ;AAIE,QAAA,KAAK,EAAEjJ,KAAK,IAAI,CAACA,KAAK,GAAG,GAAT,EAAcuF,QAAd,EAJlB;AAKE,QAAA,QAAQ,EAAEW,QALZ;AAME,QAAA,WAAW,EAAE;AACXyD,UAAAA,IAAI,EAAE;AACJzD,YAAAA,QAAQ,EAAE4C,YADN;AAEJD,YAAAA,UAAU,EAAEA,UAFR;AAGJE,YAAAA,UAAU,EAAEA,UAHR;AAIJa,YAAAA,oBAAoB,EAAE;AAJlB,WADK;AAOXC,UAAAA,KAAK,EAAE;AACL3D,YAAAA,QAAQ,EAAE;AADL,WAPI;AAUX4D,UAAAA,KAAK,EAAE;AACL5D,YAAAA,QAAQ,EAAE;AADL;AAVI;AANf,QADF,CAbF,eAqCE,gCAAC,0BAAD;AACE,QAAA,QAAQ,EAAEzB,QADZ;AAEE,QAAA,IAAI,EAAEC,UAAU,IAAI,CAACwB,QAFvB;AAGE,QAAA,WAAW,EAAEgD,qBAHf;AAIE,QAAA,eAAe,EAAE,CAAC,CAACvF,gBAJrB;AAKE,QAAA,OAAO,EAAE,KAAKqC,WALhB;AAME,QAAA,QAAQ,EAAE,KAAK+D,gBANjB;AAOE,QAAA,MAAM,EAAE,KAAKC,cAPf;AAQE,QAAA,OAAO,EAAE,KAAKC,aARhB;AASE,QAAA,UAAU,EAAE,KAAKC;AATnB,QArCF,eAiDE,gCAAC,0BAAD;AACE,QAAA,QAAQ,EAAE,KAAK1H,OADjB;AAEE,QAAA,IAAI,EAAEmC,YAAY,IAAI,CAACuB,QAFzB;AAGE,QAAA,MAAM,EAAEkD,SAHV;AAIE,QAAA,KAAK,EAAGzI,UAAU,IAAIA,UAAU,CAACqC,KAA1B,IAAoC,EAJ7C;AAKE,QAAA,IAAI,EAAErC,UAAU,IAAIA,UAAU,CAACwF,IALjC;AAME,QAAA,OAAO,EAAE,KAAKH,WANhB;AAOE,QAAA,QAAQ,EAAE,KAAK+D,gBAPjB;AAQE,QAAA,MAAM,EAAE,KAAKI,gBARf;AASE,QAAA,YAAY,EAAE,KAAKC;AATrB,QAjDF,CADF;AA+DD;;;EApb4BC,kBAAMC,S;;iCAA/BhI,gB,eACe;AACjBkF,EAAAA,IAAI,EAAE+C,sBAAUC,MADC;AAEjB5B,EAAAA,OAAO,EAAE2B,sBAAUC,MAFF;AAGjB/G,EAAAA,WAAW,EAAE8G,sBAAUE,KAHN;AAIjBvB,EAAAA,qBAAqB,EAAEqB,sBAAUE,KAJhB;AAKjB7E,EAAAA,QAAQ,EAAE2E,sBAAUG,IAAV,CAAeC,UALR;AAMjB1B,EAAAA,eAAe,EAAEsB,sBAAUG,IAAV,CAAeC,UANf;AAOjB3K,EAAAA,KAAK,EAAEuK,sBAAUK,MAPA;AAQjBzI,EAAAA,MAAM,EAAEoI,sBAAUK,MARD;AASjB5B,EAAAA,SAAS,EAAEuB,sBAAUC,MATJ;AAUjBtE,EAAAA,QAAQ,EAAEqE,sBAAUM,IAVH;AAWjB/B,EAAAA,YAAY,EAAEyB,sBAAUM,IAXP;AAYjBhC,EAAAA,UAAU,EAAE0B,sBAAUE,KAZL;AAajB1B,EAAAA,UAAU,EAAEwB,sBAAUC,MAbL;AAcjB9G,EAAAA,OAAO,EAAE6G,sBAAUO,MAAV,CAAiBH;AAdT,C;;eAsbN,wBAAWzL,KAAX,EAAkBoD,gBAAlB,C","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange,\n} from './annotation-utils';\nimport FreeformEditor from './freeform-editor';\nimport AnnotationMenu from './annotation-menu';\n\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\n\nconst style = (theme) => ({\n textContainer: {\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0,\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n },\n },\n labelsContainer: {\n width: '230px',\n },\n wrapper: {\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex',\n },\n commentContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n },\n annotation: {\n position: 'relative',\n cursor: 'pointer',\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.5)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.4)',\n },\n },\n annotationLabel: {\n backgroundColor: 'rgb(242, 242, 242)',\n padding: '2px',\n position: 'absolute',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n top: '-10px',\n left: '-2px',\n fontSize: theme.typography.fontSize - 2,\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: '6px',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n\n '&.positive': {\n color: 'rgb(0, 128, 0)',\n },\n\n '&.negative': {\n color: 'rgb(204, 0, 136)',\n },\n },\n labelHover: {\n zIndex: 20,\n\n '&.positive': {\n color: 'rgb(0, 77, 0)',\n },\n\n '&.negative': {\n color: 'rgb(153, 0, 102)',\n },\n },\n highlight: {\n zIndex: 10,\n },\n hover: {\n zIndex: 20,\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.7)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.55)',\n },\n },\n sideAnnotationHover: {\n zIndex: 20,\n\n '&.negative': {\n backgroundColor: 'rgb(255, 179, 230) !important',\n '&:before': {\n borderRightColor: 'rgb(255, 179, 230) !important',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(128, 255, 128) !important',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153) !important',\n },\n },\n },\n sideAnnotation: {\n position: 'absolute',\n padding: theme.spacing.unit / 2,\n borderRadius: '4px',\n marginLeft: theme.spacing.unit ,\n width: '180px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n border: `2px solid ${theme.palette.common.white}`,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n\n '&:before': {\n position: 'absolute',\n right: '100%',\n top: '5px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n },\n\n '&.negative': {\n backgroundColor: 'rgb(255, 204, 238)',\n '&:before': {\n borderRightColor: 'rgb(255, 204, 238)',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(153, 255, 153)',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153)',\n },\n },\n },\n});\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null,\n };\n }\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach((annotation) => {\n const [domStart, domEnd] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n }\n\n adjustAnnotationsPosition = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach((label) => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick = (event) => {\n const { annotations, classes } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex((annotation) => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.classList.add(classes.highlight);\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || (!!annId && !isSideLabel), // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null,\n });\n };\n\n handleHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.add(classes.hover));\n labelElem.classList.add(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleCancelHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.remove(classes.hover));\n labelElem.classList.remove(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleClose = (event) => {\n const { classes } = this.props;\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.classList.remove(classes.highlight);\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null,\n });\n\n clearSelection();\n };\n\n handleSelection = (event) => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails,\n });\n }\n }\n };\n\n deleteAnnotation = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation = (elems, annotation) => {\n const { classes, disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach((elem) => {\n elem.dataset.id = id;\n elem.className = classNames(classes.annotation, type);\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = (elems && elems[0]) || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = label;\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = classNames(classes.sideAnnotation, type);\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = classNames(classes.annotationLabel, type);\n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails,\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick = (newAnnotation) => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true,\n });\n };\n\n addAnnotation = (type) => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem,\n });\n\n onChange(annotations);\n };\n\n updateLabel = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if ((isSideLabel(label) && isSideLabel(oldLabel)) || (!isSideLabel(label) && !isSideLabel(oldLabel))) {\n labelElem.innerHTML = label;\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach((elem) => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach((span) => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n }\n\n render() {\n const {\n classes,\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text,\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? anchorOffset - this.textRef.scrollTop - 8 : 0;\n\n return (\n <div>\n <div className={classes.wrapper}>\n <div\n className={classes.textContainer}\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={(r) => (this.textRef = r)}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <div className={classes.labelsContainer} ref={(r) => (this.labelsRef = r)} />\n </div>\n\n <InputContainer label={'Comment'} className={classes.commentContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={comment || ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n }}\n />\n </InputContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={(annotation && annotation.label) || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(style)(AnnotationEditor);\n"],"file":"annotation-editor.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/annotation/annotation-editor.jsx"],"names":["style","theme","textContainer","padding","backgroundColor","border","borderRadius","overflowY","lineHeight","whiteSpace","overflowWrap","margin","userSelect","labelsContainer","width","wrapper","position","overflowX","display","commentContainer","paddingTop","spacing","unit","marginBottom","marginTop","annotation","cursor","annotationLabel","top","left","fontSize","typography","fontStyle","fontWeight","color","labelHover","zIndex","highlight","hover","sideAnnotationHover","borderRightColor","sideAnnotation","marginLeft","wordBreak","palette","common","white","right","content","height","pointerEvents","borderWidth","AnnotationEditor","props","textRef","labelsRef","offsetLeft","offsetWidth","Array","from","children","forEach","label","spans","dataset","annId","spanOffset","offsetTop","offsetParent","scrollTop","event","annotations","classes","selectionDetails","state","target","id","annotationId","selectedElems","labelElem","annotationIndex","findIndex","isSideLabel","hasAttribute","classList","add","setState","anchorEl","openedMenu","openedEditor","elem","remove","length","selection","window","getSelection","detail","rangeCount","selectedRange","getRangeAt","selectedText","toString","isSelectionInside","contains","commonAncestorContainer","isCollapsed","onChange","parentRef","removeChild","splice","handleClose","elems","disabled","type","className","onclick","handleClick","onmouseover","handleHover","onmouseout","handleCancelHover","firstSpan","document","createElement","innerHTML","freeform","appendChild","start","end","Date","getTime","join","createDOMAnnotation","newAnnotation","text","updatedAnnotation","oldType","oldLabel","updateLabel","createNewAnnotation","push","newLabel","span","domStart","domEnd","range","createRange","setStart","node","offset","setEnd","adjustAnnotationsPosition","addEventListener","removeEventListener","comment","customKeys","disabledMath","keypadMode","maxHeight","onCommentChange","predefinedAnnotations","anchorOffset","topOffset","minHeight","r","clearSelection","handleSelection","__html","prompt","math","controlledKeypadMode","video","audio","textAlign","deleteAnnotation","editAnnotation","addAnnotation","handleMenuClick","updateAnnotation","changeAnnotationType","React","Component","PropTypes","string","array","func","isRequired","number","bool","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange,\n} from './annotation-utils';\nimport FreeformEditor from './freeform-editor';\nimport AnnotationMenu from './annotation-menu';\n\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\n\nconst style = (theme) => ({\n textContainer: {\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0,\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n },\n },\n labelsContainer: {\n width: '230px',\n },\n wrapper: {\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex',\n },\n commentContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n },\n annotation: {\n position: 'relative',\n cursor: 'pointer',\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.5)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.4)',\n },\n },\n annotationLabel: {\n backgroundColor: 'rgb(242, 242, 242)',\n padding: '2px',\n position: 'absolute',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n top: '-10px',\n left: '-2px',\n fontSize: theme.typography.fontSize - 2,\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: '6px',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n\n '&.positive': {\n color: 'rgb(0, 128, 0)',\n },\n\n '&.negative': {\n color: 'rgb(204, 0, 136)',\n },\n },\n labelHover: {\n zIndex: 20,\n\n '&.positive': {\n color: 'rgb(0, 77, 0)',\n },\n\n '&.negative': {\n color: 'rgb(153, 0, 102)',\n },\n },\n highlight: {\n zIndex: 10,\n },\n hover: {\n zIndex: 20,\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.7)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.55)',\n },\n },\n sideAnnotationHover: {\n zIndex: 20,\n\n '&.negative': {\n backgroundColor: 'rgb(255, 179, 230) !important',\n '&:before': {\n borderRightColor: 'rgb(255, 179, 230) !important',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(128, 255, 128) !important',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153) !important',\n },\n },\n },\n sideAnnotation: {\n position: 'absolute',\n padding: theme.spacing.unit / 2,\n borderRadius: '4px',\n marginLeft: theme.spacing.unit ,\n width: '180px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n border: `2px solid ${theme.palette.common.white}`,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n\n '&:before': {\n position: 'absolute',\n right: '100%',\n top: '5px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n },\n\n '&.negative': {\n backgroundColor: 'rgb(255, 204, 238)',\n '&:before': {\n borderRightColor: 'rgb(255, 204, 238)',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(153, 255, 153)',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153)',\n },\n },\n },\n});\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null,\n };\n }\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach((annotation) => {\n const [domStart, domEnd] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n }\n\n adjustAnnotationsPosition = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach((label) => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick = (event) => {\n const { annotations, classes } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex((annotation) => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.classList.add(classes.highlight);\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || (!!annId && !isSideLabel), // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null,\n });\n };\n\n handleHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.add(classes.hover));\n labelElem.classList.add(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleCancelHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.remove(classes.hover));\n labelElem.classList.remove(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleClose = (event) => {\n const { classes } = this.props;\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.classList.remove(classes.highlight);\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null,\n });\n\n clearSelection();\n };\n\n handleSelection = (event) => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails,\n });\n }\n }\n };\n\n deleteAnnotation = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation = (elems, annotation) => {\n const { classes, disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach((elem) => {\n elem.dataset.id = id;\n elem.className = classNames(classes.annotation, type);\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = (elems && elems[0]) || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = label;\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = classNames(classes.sideAnnotation, type);\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = classNames(classes.annotationLabel, type);\n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails,\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick = (newAnnotation) => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true,\n });\n };\n\n addAnnotation = (type) => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem,\n });\n\n onChange(annotations);\n };\n\n updateLabel = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if ((isSideLabel(label) && isSideLabel(oldLabel)) || (!isSideLabel(label) && !isSideLabel(oldLabel))) {\n labelElem.innerHTML = label;\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach((elem) => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach((span) => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n }\n\n render() {\n const {\n classes,\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text,\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? anchorOffset - this.textRef.scrollTop - 8 : 0;\n\n return (\n <div>\n <div className={classes.wrapper}>\n <div\n className={classes.textContainer}\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={(r) => (this.textRef = r)}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <div className={classes.labelsContainer} ref={(r) => (this.labelsRef = r)} />\n </div>\n\n <InputContainer label={'Comment'} className={classes.commentContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={comment || ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n }\n }}\n />\n </InputContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={(annotation && annotation.label) || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(style)(AnnotationEditor);\n"],"file":"annotation-editor.js"}
|
package/lib/main.js
CHANGED
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["log","style","theme","main","backgroundColor","color","background","text","prompt","width","marginBottom","spacing","unit","fontSize","teacherInstructions","editor","borderRadius","srOnly","position","left","top","height","overflow","Main","props","onValueChange","onCommentChange","model","classes","session","onAnnotationsChange","animationsDisabled","annotatorMode","customKeys","dimensions","disabled","disabledAnnotator","equationEditor","extraCSSRules","feedback","mathInput","playersToolbarPosition","predefinedAnnotations","spanishInput","specialInput","spellCheckEnabled","annotations","comment","value","maxHeight","toolbarOpts","teacherInstructionsDiv","languageCharactersProps","push","language","ref","containerRef","hidden","visible","collapsible","changeSessionComment","changeSessionValue","toString","math","keypadMode","controlledKeypadMode","video","audio","table","React","Component","PropTypes","func","isRequired","object","shape","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\n\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { color, Feedback, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\n\nimport AnnotationEditor from './annotation/annotation-editor';\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst style = (theme) => ({\n main: {\n backgroundColor: color.background(),\n color: color.text(),\n },\n prompt: {\n width: '100%',\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n fontSize: 'inherit',\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n editor: {\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n onValueChange: PropTypes.func.isRequired,\n onAnnotationsChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n model: PropTypes.object,\n classes: PropTypes.object.isRequired,\n session: PropTypes.shape({\n value: PropTypes.string,\n annotations: PropTypes.array,\n comment: PropTypes.string,\n }).isRequired,\n };\n\n changeSessionValue = debounce(this.props.onValueChange, 1500);\n\n changeSessionComment = debounce(this.props.onCommentChange, 1500);\n\n render() {\n const { model, classes, session, onAnnotationsChange } = this.props;\n const {\n animationsDisabled,\n annotatorMode,\n customKeys,\n dimensions,\n disabled,\n disabledAnnotator,\n equationEditor,\n extraCSSRules,\n feedback,\n mathInput,\n playersToolbarPosition,\n predefinedAnnotations,\n prompt,\n spanishInput,\n specialInput,\n spellCheckEnabled,\n teacherInstructions,\n } = model;\n const { annotations, comment, value } = session;\n const { width, height } = dimensions || {};\n const maxHeight = '40vh';\n const toolbarOpts = { position: playersToolbarPosition === 'top' ? 'top' : 'bottom' };\n\n log('[render] disabled? ', disabled);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const languageCharactersProps = [];\n\n if (spanishInput) {\n languageCharactersProps.push({ language: 'spanish' });\n }\n\n if (specialInput) {\n languageCharactersProps.push({ language: 'special' });\n }\n\n return (\n <UiLayout\n extraCSSRules={extraCSSRules}\n className={classes.main}\n ref={(ref) => {\n this.containerRef = ref;\n }}\n >\n <h2 className={classes.srOnly}>Constructed Response Question</h2>\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className={classes.collapsible}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && (\n <Typography component={'span'} className={classes.prompt}>\n <PreviewPrompt defaultClassName=\"prompt\" prompt={model.prompt} />\n </Typography>\n )}\n\n {annotatorMode ? (\n <AnnotationEditor\n text={value || ''}\n annotations={annotations || []}\n comment={comment || ''}\n predefinedAnnotations={predefinedAnnotations || []}\n onChange={onAnnotationsChange}\n onCommentChange={this.changeSessionComment}\n width={width}\n height={height}\n maxHeight={maxHeight}\n disabled={disabledAnnotator}\n disabledMath={!mathInput}\n customKeys={customKeys}\n keypadMode={equationEditor}\n />\n ) : (\n <EditableHtml\n className={classnames(classes.editor, 'response-area-editor')}\n onChange={this.changeSessionValue}\n markup={value || ''}\n maxWidth={width && width.toString()}\n minWidth={'100px'}\n minHeight={height && height.toString()}\n maxHeight={maxHeight}\n disabled={disabled}\n highlightShape={true}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n charactersLimit={50000}\n autoWidthToolbar\n pluginProps={{\n math: {\n disabled: !mathInput,\n customKeys: this.props.model.customKeys,\n keypadMode: this.props.model.equationEditor,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n table: {\n disabled: true,\n },\n }}\n languageCharactersProps={languageCharactersProps}\n />\n )}\n\n {feedback && <Feedback correctness=\"correct\" feedback={feedback} />}\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(style)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["log","style","theme","main","backgroundColor","color","background","text","prompt","width","marginBottom","spacing","unit","fontSize","teacherInstructions","editor","borderRadius","srOnly","position","left","top","height","overflow","Main","props","onValueChange","onCommentChange","model","classes","session","onAnnotationsChange","animationsDisabled","annotatorMode","customKeys","dimensions","disabled","disabledAnnotator","equationEditor","extraCSSRules","feedback","mathInput","playersToolbarPosition","predefinedAnnotations","spanishInput","specialInput","spellCheckEnabled","annotations","comment","value","maxHeight","toolbarOpts","teacherInstructionsDiv","languageCharactersProps","push","language","ref","containerRef","hidden","visible","collapsible","changeSessionComment","changeSessionValue","toString","math","keypadMode","controlledKeypadMode","video","audio","table","textAlign","React","Component","PropTypes","func","isRequired","object","shape","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\n\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { color, Feedback, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\n\nimport AnnotationEditor from './annotation/annotation-editor';\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst style = (theme) => ({\n main: {\n backgroundColor: color.background(),\n color: color.text(),\n },\n prompt: {\n width: '100%',\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n fontSize: 'inherit',\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n editor: {\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n onValueChange: PropTypes.func.isRequired,\n onAnnotationsChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n model: PropTypes.object,\n classes: PropTypes.object.isRequired,\n session: PropTypes.shape({\n value: PropTypes.string,\n annotations: PropTypes.array,\n comment: PropTypes.string,\n }).isRequired,\n };\n\n changeSessionValue = debounce(this.props.onValueChange, 1500);\n\n changeSessionComment = debounce(this.props.onCommentChange, 1500);\n\n render() {\n const { model, classes, session, onAnnotationsChange } = this.props;\n const {\n animationsDisabled,\n annotatorMode,\n customKeys,\n dimensions,\n disabled,\n disabledAnnotator,\n equationEditor,\n extraCSSRules,\n feedback,\n mathInput,\n playersToolbarPosition,\n predefinedAnnotations,\n prompt,\n spanishInput,\n specialInput,\n spellCheckEnabled,\n teacherInstructions,\n } = model;\n const { annotations, comment, value } = session;\n const { width, height } = dimensions || {};\n const maxHeight = '40vh';\n const toolbarOpts = { position: playersToolbarPosition === 'top' ? 'top' : 'bottom' };\n\n log('[render] disabled? ', disabled);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const languageCharactersProps = [];\n\n if (spanishInput) {\n languageCharactersProps.push({ language: 'spanish' });\n }\n\n if (specialInput) {\n languageCharactersProps.push({ language: 'special' });\n }\n\n return (\n <UiLayout\n extraCSSRules={extraCSSRules}\n className={classes.main}\n ref={(ref) => {\n this.containerRef = ref;\n }}\n >\n <h2 className={classes.srOnly}>Constructed Response Question</h2>\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className={classes.collapsible}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && (\n <Typography component={'span'} className={classes.prompt}>\n <PreviewPrompt defaultClassName=\"prompt\" prompt={model.prompt} />\n </Typography>\n )}\n\n {annotatorMode ? (\n <AnnotationEditor\n text={value || ''}\n annotations={annotations || []}\n comment={comment || ''}\n predefinedAnnotations={predefinedAnnotations || []}\n onChange={onAnnotationsChange}\n onCommentChange={this.changeSessionComment}\n width={width}\n height={height}\n maxHeight={maxHeight}\n disabled={disabledAnnotator}\n disabledMath={!mathInput}\n customKeys={customKeys}\n keypadMode={equationEditor}\n />\n ) : (\n <EditableHtml\n className={classnames(classes.editor, 'response-area-editor')}\n onChange={this.changeSessionValue}\n markup={value || ''}\n maxWidth={width && width.toString()}\n minWidth={'100px'}\n minHeight={height && height.toString()}\n maxHeight={maxHeight}\n disabled={disabled}\n highlightShape={true}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n charactersLimit={50000}\n autoWidthToolbar\n pluginProps={{\n math: {\n disabled: !mathInput,\n customKeys: this.props.model.customKeys,\n keypadMode: this.props.model.equationEditor,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n table: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n }\n }}\n languageCharactersProps={languageCharactersProps}\n />\n )}\n\n {feedback && <Feedback correctness=\"correct\" feedback={feedback} />}\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(style)(Main);\n"],"file":"main.js"}
|
package/module/element.js
CHANGED
|
@@ -12695,6 +12695,9 @@ class AnnotationEditor extends React$2.Component {
|
|
|
12695
12695
|
},
|
|
12696
12696
|
audio: {
|
|
12697
12697
|
disabled: true
|
|
12698
|
+
},
|
|
12699
|
+
textAlign: {
|
|
12700
|
+
disabled: true
|
|
12698
12701
|
}
|
|
12699
12702
|
},
|
|
12700
12703
|
__self: this,
|
|
@@ -12715,7 +12718,7 @@ class AnnotationEditor extends React$2.Component {
|
|
|
12715
12718
|
__self: this,
|
|
12716
12719
|
__source: {
|
|
12717
12720
|
fileName: _jsxFileName$1,
|
|
12718
|
-
lineNumber:
|
|
12721
|
+
lineNumber: 589
|
|
12719
12722
|
}
|
|
12720
12723
|
}), React$2.createElement(FreeformEditor$1, {
|
|
12721
12724
|
anchorEl: this.textRef,
|
|
@@ -12730,7 +12733,7 @@ class AnnotationEditor extends React$2.Component {
|
|
|
12730
12733
|
__self: this,
|
|
12731
12734
|
__source: {
|
|
12732
12735
|
fileName: _jsxFileName$1,
|
|
12733
|
-
lineNumber:
|
|
12736
|
+
lineNumber: 601
|
|
12734
12737
|
}
|
|
12735
12738
|
}));
|
|
12736
12739
|
}
|
|
@@ -12933,6 +12936,9 @@ class Main extends React$1.Component {
|
|
|
12933
12936
|
},
|
|
12934
12937
|
table: {
|
|
12935
12938
|
disabled: true
|
|
12939
|
+
},
|
|
12940
|
+
textAlign: {
|
|
12941
|
+
disabled: true
|
|
12936
12942
|
}
|
|
12937
12943
|
},
|
|
12938
12944
|
languageCharactersProps: languageCharactersProps,
|
|
@@ -12947,7 +12953,7 @@ class Main extends React$1.Component {
|
|
|
12947
12953
|
__self: this,
|
|
12948
12954
|
__source: {
|
|
12949
12955
|
fileName: _jsxFileName,
|
|
12950
|
-
lineNumber:
|
|
12956
|
+
lineNumber: 191
|
|
12951
12957
|
}
|
|
12952
12958
|
}));
|
|
12953
12959
|
}
|
package/module/print.js
CHANGED
|
@@ -12695,6 +12695,9 @@ class AnnotationEditor extends React$2.Component {
|
|
|
12695
12695
|
},
|
|
12696
12696
|
audio: {
|
|
12697
12697
|
disabled: true
|
|
12698
|
+
},
|
|
12699
|
+
textAlign: {
|
|
12700
|
+
disabled: true
|
|
12698
12701
|
}
|
|
12699
12702
|
},
|
|
12700
12703
|
__self: this,
|
|
@@ -12715,7 +12718,7 @@ class AnnotationEditor extends React$2.Component {
|
|
|
12715
12718
|
__self: this,
|
|
12716
12719
|
__source: {
|
|
12717
12720
|
fileName: _jsxFileName$1,
|
|
12718
|
-
lineNumber:
|
|
12721
|
+
lineNumber: 589
|
|
12719
12722
|
}
|
|
12720
12723
|
}), React$2.createElement(FreeformEditor$1, {
|
|
12721
12724
|
anchorEl: this.textRef,
|
|
@@ -12730,7 +12733,7 @@ class AnnotationEditor extends React$2.Component {
|
|
|
12730
12733
|
__self: this,
|
|
12731
12734
|
__source: {
|
|
12732
12735
|
fileName: _jsxFileName$1,
|
|
12733
|
-
lineNumber:
|
|
12736
|
+
lineNumber: 601
|
|
12734
12737
|
}
|
|
12735
12738
|
}));
|
|
12736
12739
|
}
|
|
@@ -12933,6 +12936,9 @@ class Main extends React$1.Component {
|
|
|
12933
12936
|
},
|
|
12934
12937
|
table: {
|
|
12935
12938
|
disabled: true
|
|
12939
|
+
},
|
|
12940
|
+
textAlign: {
|
|
12941
|
+
disabled: true
|
|
12936
12942
|
}
|
|
12937
12943
|
},
|
|
12938
12944
|
languageCharactersProps: languageCharactersProps,
|
|
@@ -12947,7 +12953,7 @@ class Main extends React$1.Component {
|
|
|
12947
12953
|
__self: this,
|
|
12948
12954
|
__source: {
|
|
12949
12955
|
fileName: _jsxFileName,
|
|
12950
|
-
lineNumber:
|
|
12956
|
+
lineNumber: 191
|
|
12951
12957
|
}
|
|
12952
12958
|
}));
|
|
12953
12959
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/extended-text-entry",
|
|
3
|
-
"version": "11.5.5-next.
|
|
3
|
+
"version": "11.5.5-next.20+913a166e5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"react": "^16.8.1",
|
|
21
21
|
"react-dom": "^16.8.1"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "913a166e582d8f856c019e0911f4389412071525",
|
|
24
24
|
"scripts": {
|
|
25
25
|
"postpublish": "../../scripts/postpublish"
|
|
26
26
|
},
|