@telia-ace/ace-chat-flamingo 1.1.123-rc.11 → 1.1.123-rc.12

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.
Files changed (3) hide show
  1. package/index.js +1 -1
  2. package/index.mjs +7 -10
  3. package/package.json +3 -3
package/index.js CHANGED
@@ -842,7 +842,7 @@ ${n}</tr>
842
842
  `}tablecell(n){const e=this.parser.parseInline(n.tokens),t=n.header?"th":"td";return(n.align?`<${t} align="${n.align}">`:`<${t}>`)+e+`</${t}>
843
843
  `}strong({tokens:n}){return`<strong>${this.parser.parseInline(n)}</strong>`}em({tokens:n}){return`<em>${this.parser.parseInline(n)}</em>`}codespan({text:n}){return`<code>${ge(n,!0)}</code>`}br(n){return"<br>"}del({tokens:n}){return`<del>${this.parser.parseInline(n)}</del>`}link({href:n,title:e,tokens:t}){const i=this.parser.parseInline(t),s=ko(n);if(s===null)return i;n=s;let r='<a href="'+n+'"';return e&&(r+=' title="'+ge(e)+'"'),r+=">"+i+"</a>",r}image({href:n,title:e,text:t,tokens:i}){i&&(t=this.parser.parseInline(i,this.parser.textRenderer));const s=ko(n);if(s===null)return ge(t);n=s;let r=`<img src="${n}" alt="${t}"`;return e&&(r+=` title="${ge(e)}"`),r+=">",r}text(n){return"tokens"in n&&n.tokens?this.parser.parseInline(n.tokens):"escaped"in n&&n.escaped?n.text:ge(n.text)}},Cs=class{strong({text:n}){return n}em({text:n}){return n}codespan({text:n}){return n}del({text:n}){return n}html({text:n}){return n}text({text:n}){return n}link({text:n}){return""+n}image({text:n}){return""+n}br(){return""}},Ae=class Xi{constructor(e){_(this,"options");_(this,"renderer");_(this,"textRenderer");this.options=e||nt,this.options.renderer=this.options.renderer||new Xt,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Cs}static parse(e,t){return new Xi(t).parse(e)}static parseInline(e,t){return new Xi(t).parseInline(e)}parse(e,t=!0){var s,r;let i="";for(let o=0;o<e.length;o++){const a=e[o];if((r=(s=this.options.extensions)==null?void 0:s.renderers)!=null&&r[a.type]){const l=a,u=this.options.extensions.renderers[l.type].call({parser:this},l);if(u!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(l.type)){i+=u||"";continue}}const c=a;switch(c.type){case"space":{i+=this.renderer.space(c);continue}case"hr":{i+=this.renderer.hr(c);continue}case"heading":{i+=this.renderer.heading(c);continue}case"code":{i+=this.renderer.code(c);continue}case"table":{i+=this.renderer.table(c);continue}case"blockquote":{i+=this.renderer.blockquote(c);continue}case"list":{i+=this.renderer.list(c);continue}case"html":{i+=this.renderer.html(c);continue}case"paragraph":{i+=this.renderer.paragraph(c);continue}case"text":{let l=c,u=this.renderer.text(l);for(;o+1<e.length&&e[o+1].type==="text";)l=e[++o],u+=`
844
844
  `+this.renderer.text(l);t?i+=this.renderer.paragraph({type:"paragraph",raw:u,text:u,tokens:[{type:"text",raw:u,text:u,escaped:!0}]}):i+=u;continue}default:{const l='Token with "'+c.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return i}parseInline(e,t=this.renderer){var s,r;let i="";for(let o=0;o<e.length;o++){const a=e[o];if((r=(s=this.options.extensions)==null?void 0:s.renderers)!=null&&r[a.type]){const l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){i+=l||"";continue}}const c=a;switch(c.type){case"escape":{i+=t.text(c);break}case"html":{i+=t.html(c);break}case"link":{i+=t.link(c);break}case"image":{i+=t.image(c);break}case"strong":{i+=t.strong(c);break}case"em":{i+=t.em(c);break}case"codespan":{i+=t.codespan(c);break}case"br":{i+=t.br(c);break}case"del":{i+=t.del(c);break}case"text":{i+=t.text(c);break}default:{const l='Token with "'+c.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return i}},Oi,Sn=(Oi=class{constructor(n){_(this,"options");_(this,"block");this.options=n||nt}preprocess(n){return n}postprocess(n){return n}processAllTokens(n){return n}provideLexer(){return this.block?_e.lex:_e.lexInline}provideParser(){return this.block?Ae.parse:Ae.parseInline}},_(Oi,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"])),Oi),Ad=class{constructor(...n){_(this,"defaults",vs());_(this,"options",this.setOptions);_(this,"parse",this.parseMarkdown(!0));_(this,"parseInline",this.parseMarkdown(!1));_(this,"Parser",Ae);_(this,"Renderer",Xt);_(this,"TextRenderer",Cs);_(this,"Lexer",_e);_(this,"Tokenizer",Hn);_(this,"Hooks",Sn);this.use(...n)}walkTokens(n,e){var i,s;let t=[];for(const r of n)switch(t=t.concat(e.call(this,r)),r.type){case"table":{const o=r;for(const a of o.header)t=t.concat(this.walkTokens(a.tokens,e));for(const a of o.rows)for(const c of a)t=t.concat(this.walkTokens(c.tokens,e));break}case"list":{const o=r;t=t.concat(this.walkTokens(o.items,e));break}default:{const o=r;(s=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&s[o.type]?this.defaults.extensions.childTokens[o.type].forEach(a=>{const c=o[a].flat(1/0);t=t.concat(this.walkTokens(c,e))}):o.tokens&&(t=t.concat(this.walkTokens(o.tokens,e)))}}return t}use(...n){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(t=>{const i={...t};if(i.async=this.defaults.async||i.async||!1,t.extensions&&(t.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){const r=e.renderers[s.name];r?e.renderers[s.name]=function(...o){let a=s.renderer.apply(this,o);return a===!1&&(a=r.apply(this,o)),a}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const r=e[s.level];r?r.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),i.extensions=e),t.renderer){const s=this.defaults.renderer||new Xt(this.defaults);for(const r in t.renderer){if(!(r in s))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;const o=r,a=t.renderer[o],c=s[o];s[o]=(...l)=>{let u=a.apply(s,l);return u===!1&&(u=c.apply(s,l)),u||""}}i.renderer=s}if(t.tokenizer){const s=this.defaults.tokenizer||new Hn(this.defaults);for(const r in t.tokenizer){if(!(r in s))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;const o=r,a=t.tokenizer[o],c=s[o];s[o]=(...l)=>{let u=a.apply(s,l);return u===!1&&(u=c.apply(s,l)),u}}i.tokenizer=s}if(t.hooks){const s=this.defaults.hooks||new Sn;for(const r in t.hooks){if(!(r in s))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;const o=r,a=t.hooks[o],c=s[o];Sn.passThroughHooks.has(r)?s[o]=l=>{if(this.defaults.async)return Promise.resolve(a.call(s,l)).then(p=>c.call(s,p));const u=a.call(s,l);return c.call(s,u)}:s[o]=(...l)=>{let u=a.apply(s,l);return u===!1&&(u=c.apply(s,l)),u}}i.hooks=s}if(t.walkTokens){const s=this.defaults.walkTokens,r=t.walkTokens;i.walkTokens=function(o){let a=[];return a.push(r.call(this,o)),s&&(a=a.concat(s.call(this,o))),a}}this.defaults={...this.defaults,...i}}),this}setOptions(n){return this.defaults={...this.defaults,...n},this}lexer(n,e){return _e.lex(n,e??this.defaults)}parser(n,e){return Ae.parse(n,e??this.defaults)}parseMarkdown(n){return(t,i)=>{const s={...i},r={...this.defaults,...s},o=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&s.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));r.hooks&&(r.hooks.options=r,r.hooks.block=n);const a=r.hooks?r.hooks.provideLexer():n?_e.lex:_e.lexInline,c=r.hooks?r.hooks.provideParser():n?Ae.parse:Ae.parseInline;if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(t):t).then(l=>a(l,r)).then(l=>r.hooks?r.hooks.processAllTokens(l):l).then(l=>r.walkTokens?Promise.all(this.walkTokens(l,r.walkTokens)).then(()=>l):l).then(l=>c(l,r)).then(l=>r.hooks?r.hooks.postprocess(l):l).catch(o);try{r.hooks&&(t=r.hooks.preprocess(t));let l=a(t,r);r.hooks&&(l=r.hooks.processAllTokens(l)),r.walkTokens&&this.walkTokens(l,r.walkTokens);let u=c(l,r);return r.hooks&&(u=r.hooks.postprocess(u)),u}catch(l){return o(l)}}}onError(n,e){return t=>{if(t.message+=`
845
- Please report this to https://github.com/markedjs/marked.`,n){const i="<p>An error occurred:</p><pre>"+ge(t.message+"",!0)+"</pre>";return e?Promise.resolve(i):i}if(e)return Promise.reject(t);throw t}}},et=new Ad;function S(n,e){return et.parse(n,e)}S.options=S.setOptions=function(n){return et.setOptions(n),S.defaults=et.defaults,Na(S.defaults),S};S.getDefaults=vs;S.defaults=nt;S.use=function(...n){return et.use(...n),S.defaults=et.defaults,Na(S.defaults),S};S.walkTokens=function(n,e){return et.walkTokens(n,e)};S.parseInline=et.parseInline;S.Parser=Ae;S.parser=Ae.parse;S.Renderer=Xt;S.TextRenderer=Cs;S.Lexer=_e;S.lexer=_e.lex;S.Tokenizer=Hn;S.Hooks=Sn;S.parse=S;S.options;S.setOptions;S.use;S.walkTokens;S.parseInline;Ae.parse;_e.lex;var Td=Object.defineProperty,Ga=(n,e,t,i)=>{for(var s=void 0,r=n.length-1,o;r>=0;r--)(o=n[r])&&(s=o(e,t,s)||s);return s&&Td(e,t,s),s};const Za=new Xt;Za.link=function({href:n,title:e,text:t}){return e??(e=t),`<a target="_blank" href="${n}" title="${e}">${t}</a>`};S.use({renderer:Za});const Hs=class Hs extends A{constructor(){super(...arguments),this.showLightbox=!1,this.imageUrl="",this.altText="",this.scrollRef=me(),this.contentRef=me(),this.autoScroll=!0,this.buffer="",this.pointer=0,this.imageRegexp=new RegExp(/!\[[^[]*\([^)]*\)/gm)}handleAutoscroll(){this.addEventListener("wheel",()=>{this.autoScroll=!1},{passive:!0}),this.addEventListener("click",()=>{this.autoScroll=!1})}handleLightboxClose(){this.addEventListener("action",e=>{e.detail.key==="close-lightbox"&&(this.showLightbox=!1)})}handleLightboxOpen(){this.contentRef.value.addEventListener("click",e=>{e.target.tagName==="IMG"&&(this.showLightbox=!0,this.imageUrl=e.target.src,this.altText=e.target.alt)})}includesImage(e){return this.imageRegexp.test(e)}getLastChunk(){const e=this.message.content.length-this.pointer;return e===0?"":(this.pointer=this.message.content.length,this.message.content.slice(-e))}firstUpdated(){this.handleAutoscroll(),this.handleLightboxOpen(),this.handleLightboxClose()}updated(){var s,r;const e=this.getLastChunk();if(!e)return;this.buffer+=e;const t=Ma.sanitize(S.parse(this.buffer),{ADD_ATTR:["target"]});if(this.includesImage(this.buffer))(s=this.contentRef.value)==null||s.appendChild(document.createElement("div")),this.buffer="";else if(this.buffer.includes("!["))return;const i=(r=this.contentRef.value)==null?void 0:r.querySelector("div:last-of-type");i.innerHTML=Ni(t),this.applyCodeStyles(i),this.autoScroll&&this.scrollRef.value.scrollIntoView()}applyCodeStyles(e){if(!e)return;e.querySelectorAll("code").forEach(i=>{i.style.whiteSpace="pre-wrap"})}render(){return y`
845
+ Please report this to https://github.com/markedjs/marked.`,n){const i="<p>An error occurred:</p><pre>"+ge(t.message+"",!0)+"</pre>";return e?Promise.resolve(i):i}if(e)return Promise.reject(t);throw t}}},et=new Ad;function S(n,e){return et.parse(n,e)}S.options=S.setOptions=function(n){return et.setOptions(n),S.defaults=et.defaults,Na(S.defaults),S};S.getDefaults=vs;S.defaults=nt;S.use=function(...n){return et.use(...n),S.defaults=et.defaults,Na(S.defaults),S};S.walkTokens=function(n,e){return et.walkTokens(n,e)};S.parseInline=et.parseInline;S.Parser=Ae;S.parser=Ae.parse;S.Renderer=Xt;S.TextRenderer=Cs;S.Lexer=_e;S.lexer=_e.lex;S.Tokenizer=Hn;S.Hooks=Sn;S.parse=S;S.options;S.setOptions;S.use;S.walkTokens;S.parseInline;Ae.parse;_e.lex;var Td=Object.defineProperty,Ga=(n,e,t,i)=>{for(var s=void 0,r=n.length-1,o;r>=0;r--)(o=n[r])&&(s=o(e,t,s)||s);return s&&Td(e,t,s),s};const Za=new Xt;Za.link=function({href:n,title:e,text:t}){return e??(e=t),`<a target="_blank" href="${n}" title="${e}">${t}</a>`};S.use({renderer:Za});const Hs=class Hs extends A{constructor(){super(...arguments),this.showLightbox=!1,this.imageUrl="",this.altText="",this.scrollRef=me(),this.contentRef=me(),this.autoScroll=!0,this.buffer="",this.pointer=0,this.imageRegexp=new RegExp(/!\[[^[]*\([^)]*\)/gm)}handleAutoscroll(){this.addEventListener("wheel",()=>{this.autoScroll=!1},{passive:!0}),this.addEventListener("click",()=>{this.autoScroll=!1})}handleLightboxClose(){this.addEventListener("action",e=>{e.detail.key==="close-lightbox"&&(this.showLightbox=!1)})}handleLightboxOpen(){this.contentRef.value.addEventListener("click",e=>{e.target.tagName==="IMG"&&(this.showLightbox=!0,this.imageUrl=e.target.src,this.altText=e.target.alt)})}includesImage(e){return this.imageRegexp.test(e)}getLastChunk(){const e=this.message.content.length-this.pointer;return e===0?"":(this.pointer=this.message.content.length,this.message.content.slice(-e))}firstUpdated(){this.handleAutoscroll(),this.handleLightboxOpen(),this.handleLightboxClose()}updated(){var o,a;const e=this.getLastChunk();if(!e)return;if(this.buffer+=e,this.includesImage(this.buffer))(o=this.contentRef.value)==null||o.appendChild(document.createElement("div")),this.buffer="";else if(this.buffer.includes("!["))return;const t=S.parse(this.buffer),i=Ni(t),s=Ma.sanitize(i,{ADD_ATTR:["target"]}),r=(a=this.contentRef.value)==null?void 0:a.querySelector("div:last-of-type");r&&(r.innerHTML=s,this.applyCodeStyles(r)),this.autoScroll&&this.scrollRef.value.scrollIntoView()}applyCodeStyles(e){if(!e)return;e.querySelectorAll("code").forEach(i=>{i.style.whiteSpace="pre-wrap"})}render(){return y`
846
846
  <div class="message-type-markdown" ${ve(this.contentRef)}>
847
847
  <div></div>
848
848
  </div>
package/index.mjs CHANGED
@@ -6948,21 +6948,18 @@ const Hs = class Hs extends A {
6948
6948
  }
6949
6949
  // Run on every update of an observed value
6950
6950
  updated() {
6951
- var s, r;
6951
+ var o, a;
6952
6952
  const e = this.getLastChunk();
6953
6953
  if (!e) return;
6954
- this.buffer += e;
6955
- const t = Ma.sanitize(
6956
- S.parse(this.buffer),
6957
- { ADD_ATTR: ["target"] }
6958
- );
6959
- if (this.includesImage(this.buffer))
6960
- (s = this.contentRef.value) == null || s.appendChild(document.createElement("div")), this.buffer = "";
6954
+ if (this.buffer += e, this.includesImage(this.buffer))
6955
+ (o = this.contentRef.value) == null || o.appendChild(document.createElement("div")), this.buffer = "";
6961
6956
  else if (this.buffer.includes("![")) return;
6962
- const i = (r = this.contentRef.value) == null ? void 0 : r.querySelector(
6957
+ const t = S.parse(this.buffer), i = Ni(t), s = Ma.sanitize(i, {
6958
+ ADD_ATTR: ["target"]
6959
+ }), r = (a = this.contentRef.value) == null ? void 0 : a.querySelector(
6963
6960
  "div:last-of-type"
6964
6961
  );
6965
- i.innerHTML = Ni(t), this.applyCodeStyles(i), this.autoScroll && this.scrollRef.value.scrollIntoView();
6962
+ r && (r.innerHTML = s, this.applyCodeStyles(r)), this.autoScroll && this.scrollRef.value.scrollIntoView();
6966
6963
  }
6967
6964
  // Apply white-space: pre-wrap to <code> elements
6968
6965
  applyCodeStyles(e) {
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@telia-ace/ace-chat-flamingo",
3
- "version": "1.1.123-rc.11",
3
+ "version": "1.1.123-rc.12",
4
4
  "dependencies": {
5
- "@telia-ace/widget-core-flamingo": "1.1.123-rc.11",
6
- "@telia-ace/widget-conversation-flamingo": "1.1.123-rc.11",
5
+ "@telia-ace/widget-core-flamingo": "1.1.123-rc.12",
6
+ "@telia-ace/widget-conversation-flamingo": "1.1.123-rc.12",
7
7
  "rxjs": "^7.8.2",
8
8
  "lit": "^3.0.2",
9
9
  "@teliads/icons": "^8.4.0",