1define("LinkDecorator/helpers",["Types/object","Types/entity","LinkDecorator/interface","Feature/feature","Controls/markup","require","exports","Types/di"],(function(e,r,t,n,i,o,a,c){var u,s,l,d,f,p,g,m,v,h,b,y,k;return Object.defineProperty(a,"__esModule",{value:!0}),u=function(e,r,t,n){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getHyperlinkClassname=r.getDecorationProps=void 0;const i="decoration-type",o="decoration-data",a="link-title",c="link-description",u="link-cover",s="link-new-tab",l="link-action",d="link-loaded-data",f="link-supported-size-types",p=[o,i,"data-decoration-type",a,c,u,s,f];r.getDecorationProps=(e,r)=>{var g,m;const v=null!==(g=t.JSONML.getAttributes(e))&&void 0!==g?g:{},{[a]:h,[c]:b,[u]:y,[s]:k,[l]:L,[d]:A,[f]:_}=v,O=(e=>{const r=t.JSONML.getAttribute(e,i);if(r===n.IDecorationType.HYPERLINK||!r)return n.IDecorationType.MEDIUM;else return r})(e),E=(e=>{var r;try{return null!==(r=JSON.parse(t.JSONML.getAttribute(e,o)))&&void 0!==r?r:{}}catch(e){return{}}})(e),S={...v,decorationType:O,...k?{newTab:"true"===k}:{},..._?{supportedSizeTypes:JSON.parse(_)}:{},...L?{action:JSON.parse(L)}:{},...A?{loadedData:JSON.parse(A)}:{},...null!==(m=null==r?void 0:r.linkAttributes)&&void 0!==m?m:{}};if(h||b||y||Object.keys(E).length)S.decorationData={...E,...h?{title:h}:{},...b?{description:b}:{},...y?{cover:JSON.parse(y)}:{}};const{visiblelinkheading:N,visibleLinkHeading:P}=v;if(null!=N?N:void 0!==P)S.visibleLinkHeading=null!=N?N:P;return p.forEach((e=>delete S[e])),S};return r.getHyperlinkClassname=e=>{const r=t.JSONML.getAttribute(e,"class"),n=t.JSONML.getAttribute(e,"style");if(!r&&!n)return"MarkupDecorator__hyperlink"},r}(0,{},r,t),s=function(e,r,t){"use strict";return Object.defineProperty(r,"__esModule",{value:!0}),r.isXlFragmentEnabled=r.XL_FRAGMENT_FEATURE=void 0,r.XL_FRAGMENT_FEATURE="link-xl-fragment",r.isXlFragmentEnabled=function(){const[e]=t.Feature.get([r.XL_FRAGMENT_FEATURE]);return Boolean(e)},r}(0,{},n),l=s,d=function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.resolveLinkComponent=void 0;return r.resolveLinkComponent=(e,r)=>{if(r.decorationType===t.IDecorationType.HYPERLINK)return e;return["span",{class:t.inlineDecorationTypes.includes(r.decorationType)?"LinkDecorator__wrap-inline":"LinkDecorator__wrap"},["component:LinkDecorator/view:Link",r]]},r}(0,{},t),f=function(e,r,t,n,i,o){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.needDecorate=r.isLink=void 0;const a=["richEditor_Base_color","richEditor_Base_background"],c=["text-decoration: line-through","text-decoration: underline"];r.isLink=e=>"a"===o.JSONML.getNodeName(e);let u=[];return r.needDecorate=(e,s)=>{if(!s)(0,n.clearNeedDecorateGlobals)();return!((e,r)=>{if(!r)u=[];const t=Boolean(o.JSONML.getAttribute(e,"no-decorate")),n="pre"===o.JSONML.getNodeName(e),a=u.some((e=>(0,i.isEqual)(e,r)));if(t||n||a)return u.push(e),!0;else return!1})(e,s)&&!(e=>{const r=a.some((r=>{var t;return null===(t=o.JSONML.getAttribute(e,"class"))||void 0===t?void 0:t.includes(r)})),t=c.some((r=>{var t;return null===(t=o.JSONML.getAttribute(e,"style"))||void 0===t?void 0:t.includes(r)}));return r||t})(s)&&((e=>{const n=o.JSONML.getAttribute(e,"decoration-type");return(0,r.isLink)(e)&&t.nonTextDecorationTypes.includes(n)})(e)||(0,n.needDecorate)(e,s))},r}(0,{},t,i,e,r),p=f,g=function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.isHashLink=r.prepareHref=r.fixProtocol=r.isVideoLink=r.frameServices=void 0;const t=/((?:[A-Za-z]{3,9}):\/\/)|((?:mailto|tel):)/gi,n=/https:\/\/([\w\.-]+\.)?dzen.ru\/(embed|video\/watch)\/([0-9a-zA-Z\/%\-?=]+)/,i=/https:\/\/([\w\.-]+\.)?(vk.com|vkvideo.ru)\/(video-|clip-)([0-9a-zA-Z\/%\-?=&_]+)/,o=/https:\/\/([\w\.-]+\.)?rutube.ru\/(video|live\/video|play\/embed)\/([0-9a-zA-Z\/%\-?=&_]+)/;r.frameServices={figma:{regex:/https:\/\/([\w\.-]+\.)?figma.com\/(file|proto)\/([0-9a-zA-Z\/%\-?=]+)/,href:"https://www.figma.com/embed?embed_host=astra&url=",hideUi:"%26hide-ui%3D1"},youtube:{regex:/^(?:https?:\/\/)?(?:((www)|m)\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=|shorts\/))((\w|-){11}
1)(?:\S+)?.*$/,href:"https://www.youtube.com/embed/"},rutube:{regex:o,href:"https://rutube.ru/embed/"},vkvideo:{regex:i,href:"https://vkvideo.ru/video_ext.php"}};r.isVideoLink=e=>{if("string"!=typeof e)return!1;const t=Boolean(null==e?void 0:e.match(r.frameServices.youtube.regex)),a=Boolean(null==e?void 0:e.match(n)),c=Boolean(null==e?void 0:e.match(i)),u=Boolean(null==e?void 0:e.match(o));return t||a||c||u};r.fixProtocol=e=>{if(!e||(0,r.isHashLink)(e))return e;else return-1===e.search(t)?`https://${e}`:e};r.prepareHref=e=>{let t="";const n=e.match(r.frameServices.figma.regex),i=e.match(r.frameServices.youtube.regex),o=e.match(r.frameServices.vkvideo.regex),a=new URL(e);if(n)t=`${r.frameServices.figma.href}${n}${r.frameServices.figma.hideUi}`;else if(i){const n=(e=>e.replace(/&/g,"&").match(r.frameServices.youtube.regex)?RegExp.$3:"")(e),i=((e,r)=>{const t=e.match(r);return t?t[1]:""})(e,/\?(?:t|start)=([0-9]+)/i);t=`${r.frameServices.youtube.href}${n}${i?"?start="+i:""}`}else if(e.match(r.frameServices.rutube.regex)){const e=a.pathname.match(/[a-f0-9]{32}/),n=a.searchParams.get("p");t=`${r.frameServices.rutube.href}${e}${n?`?p=${n}`:""}`}else if(o){const[e,n]=null==o?void 0:o[4].split("_");t=`${r.frameServices.vkvideo.href}?oid=-${e}&id=${n}`}else t=e;return(0,r.fixProtocol)(t)};return r.isHashLink=e=>{var r;return Boolean(null===(r=null==e?void 0:e.startsWith)||void 0===r?void 0:r.call(e,"#"))},r}(0,{}),m=g,v=function(e,r,t,n){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getFragmentAnchors=r.getAnchorId=r.findElementByHref=r.isAnchorLink=r.isCurrentAnchorLink=r.getPreviewerUrl=r.getPreviewerIcon=r.getSimpleDecorationTypes=r.isDecorationTypeSupported=r.ANCHOR_END_KEY=r.ANCHOR_KEY=void 0;const i="/previewer",o=["http","//"];r.ANCHOR_KEY="anchorStart",r.ANCHOR_END_KEY="anchorEnd";r.isDecorationTypeSupported=(e,t)=>{var n;if(!e||!Array.isArray(e))return!0;const i=(0,r.getSimpleDecorationTypes)(e),o=null!==(n=null==t?void 0:t.type)&&void 0!==n?n:t;return i.includes(o)};r.getSimpleDecorationTypes=e=>e.map((e=>{if("string"==typeof e)return e;else return e.type}));r.getPreviewerIcon=(e,r)=>{const i=(0,n.resolve)("LinkDecorator/helpers:getPreviewerUrl");if(!e||!r||!i)return e;if(e.type===t.IIconType.IMAGE)return{...e,url:i(e.url,r,r)};if(e.type===t.IIconType.IMG)return{...e,value:i(e.value,r,r)};else return e};r.getPreviewerUrl=(e,r,t)=>{if(!e||!r||!t)return e;const n=e.startsWith("data:image"),a=o.some((r=>e.startsWith(r))),c=e.startsWith(i);if(n||a||c)return e;else return`${i}/m/${r}/${t}${e}`};r.isCurrentAnchorLink=e=>{if(!(0,r.isAnchorLink)(e))return!1;const t=(0,r.findElementByHref)(e);return Boolean(t)};r.isAnchorLink=e=>{try{const t=new URL(e),n=(0,r.getAnchorId)(e);return t.origin===location.origin&&t.pathname===location.pathname&&Boolean(n)}catch(e){return!1}};r.findElementByHref=e=>{const t=`widget_${(0,r.getAnchorId)(e)}`;return document.querySelector(`[data-name=${t}]`)};r.getAnchorId=e=>{var t;const n=new URL(e);return null===(t=null==n?void 0:n.searchParams)||void 0===t?void 0:t.get(r.ANCHOR_KEY)};return r.getFragmentAnchors=e=>{try{const t=new URL(e).searchParams,n=t.get(r.ANCHOR_KEY);if(!n)return null;const i=t.get(r.ANCHOR_END_KEY);return i?{start:n,end:i}:{start:n}}catch(e){return null}},r}(0,{},t,c),h=v,b=v,y=function(e,r,t,n,i,o,a,c,u){"use strict";function s(e,d,f,p=c.resolveLinkComponent){if((0,o.needDecorate)(e,d)){if("string"==typeof e)return((e,r,o,a)=>{const[c,u]=(0,i.parseLinks)(e,true);if(!u)return e;const d="true"===n.JSONML.getAttribute(r,l);if(d)return a(e,{href:e,decorationType:t.IDecorationType.HYPERLINK});return c.map((e=>s(e,[n.JSONML.getNodeName(r),{},e],o,a)))})(e,d,f,p);const o=(0,a.getDecorationProps)(e,f),{href:c}=o,[u,g]=(0,i.parseFolderLinks)([c],!1,!1);if(!(0,r.isSafeLink)(c)&&!g)return c;else return p(e,o)}if((0,o.isLink)(e)){const r=t.IDecorationType.HYPERLINK,i=(0,a.getDecorationProps)(e),{newTab:o,href:c}=null!=i?i:{},s=n.JSONML.getAttribute(e,"target");if(!1===o)n.JSONML.setAttribute(e,"target","_self");else if(!s&&!(0,u.isHashLink)(c))n.JSONML.setAttribute(e,"target","_blank");const l=(0,a.getHyperlinkClassname)(e);if(l)n.JSONML.setAttribute(e,"class",l);return p(e,{...i,decorationType:r})}return e}
1Object.defineProperty(r,"__esModule",{value:!0}),r.linkDecorate=r.isSafeLink=void 0;const l="data-richeditor-unlinked";return r.isSafeLink=e=>{if(!e||e.length<=1)return!1;const r=new RegExp(i.linkParseRegExp).exec(e);return!!r&&r[0]===e},r.linkDecorate=s,r}(0,{},t,r,i,f,u,d,g),k=y,a.ANCHOR_END_KEY=a.ANCHOR_KEY=a.getFragmentAnchors=a.getAnchorId=a.findElementByHref=a.isCurrentAnchorLink=a.isAnchorLink=a.getPreviewerIcon=a.getSimpleDecorationTypes=a.isDecorationTypeSupported=a.frameServices=a.isHashLink=a.fixProtocol=a.isVideoLink=a.prepareHref=a.XL_FRAGMENT_FEATURE=a.isXlFragmentEnabled=a.needDecorate=a.isSafeLink=a.linkDecorate=void 0,Object.defineProperty(a,"linkDecorate",{enumerable:!0,get:function(){return k.linkDecorate}}),Object.defineProperty(a,"isSafeLink",{enumerable:!0,get:function(){return k.isSafeLink}}),Object.defineProperty(a,"needDecorate",{enumerable:!0,get:function(){return p.needDecorate}}),Object.defineProperty(a,"isXlFragmentEnabled",{enumerable:!0,get:function(){return l.isXlFragmentEnabled}}),Object.defineProperty(a,"XL_FRAGMENT_FEATURE",{enumerable:!0,get:function(){return l.XL_FRAGMENT_FEATURE}}),Object.defineProperty(a,"prepareHref",{enumerable:!0,get:function(){return m.prepareHref}}),Object.defineProperty(a,"isVideoLink",{enumerable:!0,get:function(){return m.isVideoLink}}),Object.defineProperty(a,"fixProtocol",{enumerable:!0,get:function(){return m.fixProtocol}}),Object.defineProperty(a,"isHashLink",{enumerable:!0,get:function(){return m.isHashLink}}),Object.defineProperty(a,"frameServices",{enumerable:!0,get:function(){return m.frameServices}}),Object.defineProperty(a,"isDecorationTypeSupported",{enumerable:!0,get:function(){return h.isDecorationTypeSupported}}),Object.defineProperty(a,"getSimpleDecorationTypes",{enumerable:!0,get:function(){return h.getSimpleDecorationTypes}}),Object.defineProperty(a,"getPreviewerIcon",{enumerable:!0,get:function(){return h.getPreviewerIcon}}),Object.defineProperty(a,"isAnchorLink",{enumerable:!0,get:function(){return h.isAnchorLink}}),Object.defineProperty(a,"isCurrentAnchorLink",{enumerable:!0,get:function(){return h.isCurrentAnchorLink}}),Object.defineProperty(a,"findElementByHref",{enumerable:!0,get:function(){return h.findElementByHref}}),Object.defineProperty(a,"getAnchorId",{enumerable:!0,get:function(){return h.getAnchorId}}),Object.defineProperty(a,"getFragmentAnchors",{enumerable:!0,get:function(){return h.getFragmentAnchors}}),Object.defineProperty(a,"ANCHOR_KEY",{enumerable:!0,get:function(){return h.ANCHOR_KEY}}),Object.defineProperty(a,"ANCHOR_END_KEY",{enumerable:!0,get:function(){return h.ANCHOR_END_KEY}}),(0,c.register)("LinkDecorator/helpers:getPreviewerUrl",b.getPreviewerUrl,{instantiate:!1}),a}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.