This commit is contained in:
github-actions[bot] 2023-12-28 17:55:58 +00:00
parent 5caf50b240
commit df70c7553e
182 changed files with 1113 additions and 712 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4013],{61460:(e,t,s)=>{s.d(t,{Z:()=>v});var a=s(67294),i=s(86010),r=s(58207),l=s(87524),n=s(39960),c=s(95999),o=s(16550),m=s(48596);function d(e){const{pathname:t}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var g=s(85893);function h(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("aside",{className:"col col--3",children:(0,g.jsxs)("nav",{className:(0,i.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,g.jsx)("div",{className:(0,i.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,g.jsx)("ul",{className:(0,i.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,g.jsx)("li",{className:u.sidebarItem,children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var b=s(13102);function p(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,g.jsx)("li",{className:"menu__list-item",children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function j(e){return(0,g.jsx)(b.Zo,{component:p,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,g.jsx)(j,{sidebar:t}):(0,g.jsx)(h,{sidebar:t}):null}function v(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,g.jsx)(r.Z,{...l,children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsxs)("div",{className:"row",children:[(0,g.jsx)(x,{sidebar:t}),(0,g.jsx)("main",{className:(0,i.Z)("col",{"col--7":n,"col--9 col--offset-1":!n}),itemScope:!0,itemType:"https://schema.org/Blog",children:a}),s&&(0,g.jsx)("div",{className:"col col--2",children:s})]})})})}},24524:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(67294);var a=s(86010),i=s(35155),r=s(10833),l=s(35281),n=s(61460),c=s(26090),o=s(90197),m=s(92503),d=s(85893);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.M)();return(0,d.jsxs)(r.FG,{className:(0,a.Z)(l.k.wrapper.blogPages,l.k.page.blogTagsListPage),children:[(0,d.jsx)(r.d,{title:u}),(0,d.jsx)(o.Z,{tag:"blog_tags_list"}),(0,d.jsxs)(n.Z,{sidebar:s,children:[(0,d.jsx)(m.Z,{as:"h1",children:u}),(0,d.jsx)(c.Z,{tags:t})]})]})}},13008:(e,t,s)=>{s.d(t,{Z:()=>n});s(67294);var a=s(86010),i=s(39960);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(85893);function n(e){let{permalink:t,label:s,count:n}=e;return(0,l.jsxs)(i.Z,{href:t,className:(0,a.Z)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},26090:(e,t,s)=>{s.d(t,{Z:()=>o});s(67294);var a=s(35155),i=s(13008),r=s(92503);const l={tag:"tag_Nnez"};var n=s(85893);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.Z,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.Z,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const s=(0,a.P)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},35155:(e,t,s)=>{s.d(t,{M:()=>i,P:()=>r});var a=s(95999);const i=()=>(0,a.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4013],{61460:(e,t,s)=>{s.d(t,{Z:()=>v});var a=s(67294),i=s(36905),r=s(80647),l=s(87524),n=s(39960),c=s(95999),o=s(16550),m=s(48596);function d(e){const{pathname:t}=(0,o.TH)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,m.Mg)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var g=s(85893);function h(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("aside",{className:"col col--3",children:(0,g.jsxs)("nav",{className:(0,i.Z)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,g.jsx)("div",{className:(0,i.Z)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,g.jsx)("ul",{className:(0,i.Z)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,g.jsx)("li",{className:u.sidebarItem,children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var b=s(13102);function p(e){let{sidebar:t}=e;const s=d(t.items);return(0,g.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,g.jsx)("li",{className:"menu__list-item",children:(0,g.jsx)(n.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function j(e){return(0,g.jsx)(b.Zo,{component:p,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.i)();return t?.items.length?"mobile"===s?(0,g.jsx)(j,{sidebar:t}):(0,g.jsx)(h,{sidebar:t}):null}function v(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,g.jsx)(r.Z,{...l,children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsxs)("div",{className:"row",children:[(0,g.jsx)(x,{sidebar:t}),(0,g.jsx)("main",{className:(0,i.Z)("col",{"col--7":n,"col--9 col--offset-1":!n}),itemScope:!0,itemType:"https://schema.org/Blog",children:a}),s&&(0,g.jsx)("div",{className:"col col--2",children:s})]})})})}},24524:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(67294);var a=s(36905),i=s(35155),r=s(10833),l=s(35281),n=s(61460),c=s(26090),o=s(90197),m=s(92503),d=s(85893);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.M)();return(0,d.jsxs)(r.FG,{className:(0,a.Z)(l.k.wrapper.blogPages,l.k.page.blogTagsListPage),children:[(0,d.jsx)(r.d,{title:u}),(0,d.jsx)(o.Z,{tag:"blog_tags_list"}),(0,d.jsxs)(n.Z,{sidebar:s,children:[(0,d.jsx)(m.Z,{as:"h1",children:u}),(0,d.jsx)(c.Z,{tags:t})]})]})}},13008:(e,t,s)=>{s.d(t,{Z:()=>n});s(67294);var a=s(36905),i=s(39960);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(85893);function n(e){let{permalink:t,label:s,count:n}=e;return(0,l.jsxs)(i.Z,{href:t,className:(0,a.Z)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},26090:(e,t,s)=>{s.d(t,{Z:()=>o});s(67294);var a=s(35155),i=s(13008),r=s(92503);const l={tag:"tag_Nnez"};var n=s(85893);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.Z,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.Z,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const s=(0,a.P)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},35155:(e,t,s)=>{s.d(t,{M:()=>i,P:()=>r});var a=s(95999);const i=()=>(0,a.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -5113,6 +5113,16 @@ module.exports = register;
bb.w = 0; bb.w = 0;
bb.h = 0; bb.h = 0;
}; };
var shiftBoundingBox = function shiftBoundingBox(bb, dx, dy) {
return {
x1: bb.x1 + dx,
x2: bb.x2 + dx,
y1: bb.y1 + dy,
y2: bb.y2 + dy,
w: bb.w,
h: bb.h
};
};
var updateBoundingBox = function updateBoundingBox(bb1, bb2) { var updateBoundingBox = function updateBoundingBox(bb1, bb2) {
// update bb1 with bb2 bounds // update bb1 with bb2 bounds
@ -12473,6 +12483,47 @@ module.exports = register;
} }
return bounds; return bounds;
}; };
var updateBoundsFromOutline = function updateBoundsFromOutline(bounds, ele) {
if (ele.cy().headless()) {
return;
}
var outlineOpacity = ele.pstyle('outline-opacity').value;
var outlineWidth = ele.pstyle('outline-width').value;
if (outlineOpacity > 0 && outlineWidth > 0) {
var outlineOffset = ele.pstyle('outline-offset').value;
var nodeShape = ele.pstyle('shape').value;
var outlineSize = outlineWidth + outlineOffset;
var scaleX = (bounds.w + outlineSize * 2) / bounds.w;
var scaleY = (bounds.h + outlineSize * 2) / bounds.h;
var xOffset = 0;
var yOffset = 0;
if (["diamond", "pentagon", "round-triangle"].includes(nodeShape)) {
scaleX = (bounds.w + outlineSize * 2.4) / bounds.w;
yOffset = -outlineSize / 3.6;
} else if (["concave-hexagon", "rhomboid", "right-rhomboid"].includes(nodeShape)) {
scaleX = (bounds.w + outlineSize * 2.4) / bounds.w;
} else if (nodeShape === "star") {
scaleX = (bounds.w + outlineSize * 2.8) / bounds.w;
scaleY = (bounds.h + outlineSize * 2.6) / bounds.h;
yOffset = -outlineSize / 3.8;
} else if (nodeShape === "triangle") {
scaleX = (bounds.w + outlineSize * 2.8) / bounds.w;
scaleY = (bounds.h + outlineSize * 2.4) / bounds.h;
yOffset = -outlineSize / 1.4;
} else if (nodeShape === "vee") {
scaleX = (bounds.w + outlineSize * 4.4) / bounds.w;
scaleY = (bounds.h + outlineSize * 3.8) / bounds.h;
yOffset = -outlineSize * .5;
}
var hDelta = bounds.h * scaleY - bounds.h;
var wDelta = bounds.w * scaleX - bounds.w;
expandBoundingBoxSides(bounds, [Math.ceil(hDelta / 2), Math.ceil(wDelta / 2)]);
if (xOffset != 0 || yOffset !== 0) {
var oBounds = shiftBoundingBox(bounds, xOffset, yOffset);
updateBoundingBox(bounds, oBounds);
}
}
};
// get the bounding box of the elements (in raw model position) // get the bounding box of the elements (in raw model position)
var boundingBoxImpl = function boundingBoxImpl(ele, options) { var boundingBoxImpl = function boundingBoxImpl(ele, options) {
@ -12539,6 +12590,9 @@ module.exports = register;
ey1 = y - halfH; ey1 = y - halfH;
ey2 = y + halfH; ey2 = y + halfH;
updateBounds(bounds, ex1, ey1, ex2, ey2); updateBounds(bounds, ex1, ey1, ex2, ey2);
if (styleEnabled && options.includeOutlines) {
updateBoundsFromOutline(bounds, ele);
}
} else if (isEdge && options.includeEdges) { } else if (isEdge && options.includeEdges) {
if (styleEnabled && !headless) { if (styleEnabled && !headless) {
var curveStyle = ele.pstyle('curve-style').strValue; var curveStyle = ele.pstyle('curve-style').strValue;
@ -12733,6 +12787,7 @@ module.exports = register;
key += tf(opts.includeSourceLabels); key += tf(opts.includeSourceLabels);
key += tf(opts.includeTargetLabels); key += tf(opts.includeTargetLabels);
key += tf(opts.includeOverlays); key += tf(opts.includeOverlays);
key += tf(opts.includeOutlines);
return key; return key;
}; };
var getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) { var getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) {
@ -12811,6 +12866,7 @@ module.exports = register;
includeTargetLabels: true, includeTargetLabels: true,
includeOverlays: true, includeOverlays: true,
includeUnderlays: true, includeUnderlays: true,
includeOutlines: true,
useCache: true useCache: true
}; };
var defBbOptsKey = getKey(defBbOpts); var defBbOptsKey = getKey(defBbOpts);
@ -17173,10 +17229,11 @@ module.exports = register;
var _p$styleKeys = _p.styleKeys, var _p$styleKeys = _p.styleKeys,
nodeBody = _p$styleKeys.nodeBody, nodeBody = _p$styleKeys.nodeBody,
nodeBorder = _p$styleKeys.nodeBorder, nodeBorder = _p$styleKeys.nodeBorder,
nodeOutline = _p$styleKeys.nodeOutline,
backgroundImage = _p$styleKeys.backgroundImage, backgroundImage = _p$styleKeys.backgroundImage,
compound = _p$styleKeys.compound, compound = _p$styleKeys.compound,
pie = _p$styleKeys.pie; pie = _p$styleKeys.pie;
var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie].filter(function (k) { var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie].filter(function (k) {
return k != null; return k != null;
}).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]); }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);
_p.nodeKey = combineHashesArray(nodeKeys); _p.nodeKey = combineHashesArray(nodeKeys);
@ -17241,9 +17298,6 @@ module.exports = register;
var toVal = getVal(prop); var toVal = getVal(prop);
self.checkTriggers(ele, prop.name, fromVal, toVal); self.checkTriggers(ele, prop.name, fromVal, toVal);
}; };
if (prop && prop.name.substr(0, 3) === 'pie') {
warn('The pie style properties are deprecated. Create charts using background images instead.');
}
// edge sanity checks to prevent the client from making serious mistakes // edge sanity checks to prevent the client from making serious mistakes
if (parsedProp.name === 'curve-style' && ele.isEdge() && ( if (parsedProp.name === 'curve-style' && ele.isEdge() && (
@ -17588,13 +17642,18 @@ module.exports = register;
// then dirty the pll edge bb cache as well // then dirty the pll edge bb cache as well
if ( if (
// only for beziers -- so performance of other edges isn't affected // only for beziers -- so performance of other edges isn't affected
prop.triggersBoundsOfParallelBeziers && (name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier') || name === 'display' && (fromValue === 'none' || toValue === 'none'))) { prop.triggersBoundsOfParallelBeziers && name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier')) {
ele.parallelEdges().forEach(function (pllEdge) { ele.parallelEdges().forEach(function (pllEdge) {
if (pllEdge.isBundledBezier()) { if (pllEdge.isBundledBezier()) {
pllEdge.dirtyBoundingBoxCache(); pllEdge.dirtyBoundingBoxCache();
} }
}); });
} }
if (prop.triggersBoundsOfConnectedEdges && name === 'display' && (fromValue === 'none' || toValue === 'none')) {
ele.connectedEdges().forEach(function (edge) {
edge.dirtyBoundingBoxCache();
});
}
}); });
}; };
styfn$8.checkTriggers = function (ele, name, fromValue, toValue) { styfn$8.checkTriggers = function (ele, name, fromValue, toValue) {
@ -18314,6 +18373,12 @@ module.exports = register;
arrowFill: { arrowFill: {
enums: ['filled', 'hollow'] enums: ['filled', 'hollow']
}, },
arrowWidth: {
number: true,
units: '%|px|em',
implicitUnits: 'px',
enums: ['match-line']
},
display: { display: {
enums: ['element', 'none'] enums: ['element', 'none']
}, },
@ -18632,7 +18697,7 @@ module.exports = register;
type: t.display, type: t.display,
triggersZOrder: diff.any, triggersZOrder: diff.any,
triggersBounds: diff.any, triggersBounds: diff.any,
triggersBoundsOfParallelBeziers: true triggersBoundsOfConnectedEdges: true
}, { }, {
name: 'visibility', name: 'visibility',
type: t.visibility, type: t.visibility,
@ -18778,6 +18843,24 @@ module.exports = register;
name: 'border-style', name: 'border-style',
type: t.borderStyle type: t.borderStyle
}]; }];
var nodeOutline = [{
name: 'outline-color',
type: t.color
}, {
name: 'outline-opacity',
type: t.zeroOneNumber
}, {
name: 'outline-width',
type: t.size,
triggersBounds: diff.any
}, {
name: 'outline-style',
type: t.borderStyle
}, {
name: 'outline-offset',
type: t.size,
triggersBounds: diff.any
}];
var backgroundImage = [{ var backgroundImage = [{
name: 'background-image', name: 'background-image',
type: t.urls type: t.urls
@ -19041,6 +19124,9 @@ module.exports = register;
}, { }, {
name: 'arrow-fill', name: 'arrow-fill',
type: t.arrowFill type: t.arrowFill
}, {
name: 'arrow-width',
type: t.arrowWidth
}].forEach(function (prop) { }].forEach(function (prop) {
arrowPrefixes.forEach(function (prefix) { arrowPrefixes.forEach(function (prefix) {
var name = prefix + '-' + prop.name; var name = prefix + '-' + prop.name;
@ -19053,7 +19139,7 @@ module.exports = register;
}); });
}); });
}, {}); }, {});
var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie, compound, edgeLine, edgeArrow, core); var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie, compound, edgeLine, edgeArrow, core);
var propGroups = styfn$2.propertyGroups = { var propGroups = styfn$2.propertyGroups = {
// common to all eles // common to all eles
behavior: behavior, behavior: behavior,
@ -19071,6 +19157,7 @@ module.exports = register;
// node props // node props
nodeBody: nodeBody, nodeBody: nodeBody,
nodeBorder: nodeBorder, nodeBorder: nodeBorder,
nodeOutline: nodeOutline,
backgroundImage: backgroundImage, backgroundImage: backgroundImage,
pie: pie, pie: pie,
compound: compound, compound: compound,
@ -19250,6 +19337,11 @@ module.exports = register;
'border-opacity': 1, 'border-opacity': 1,
'border-width': 0, 'border-width': 0,
'border-style': 'solid', 'border-style': 'solid',
'outline-color': '#999',
'outline-opacity': 1,
'outline-width': 0,
'outline-offset': 0,
'outline-style': 'solid',
'height': 30, 'height': 30,
'width': 30, 'width': 30,
'shape': 'ellipse', 'shape': 'ellipse',
@ -19331,6 +19423,9 @@ module.exports = register;
}, { }, {
name: 'arrow-fill', name: 'arrow-fill',
value: 'filled' value: 'filled'
}, {
name: 'arrow-width',
value: 1
}].reduce(function (css, prop) { }].reduce(function (css, prop) {
styfn$2.arrowPrefixes.forEach(function (prefix) { styfn$2.arrowPrefixes.forEach(function (prefix) {
var name = prefix + '-' + prop.name; var name = prefix + '-' + prop.name;
@ -30152,6 +30247,9 @@ var printLayoutInfo;
var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled'; var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled';
var arrowFill = edge.pstyle(prefix + '-arrow-fill').value; var arrowFill = edge.pstyle(prefix + '-arrow-fill').value;
var edgeWidth = edge.pstyle('width').pfValue; var edgeWidth = edge.pstyle('width').pfValue;
var pArrowWidth = edge.pstyle(prefix + '-arrow-width');
var arrowWidth = pArrowWidth.value === 'match-line' ? edgeWidth : pArrowWidth.pfValue;
if (pArrowWidth.units === '%') arrowWidth *= edgeWidth;
var edgeOpacity = edge.pstyle('opacity').value; var edgeOpacity = edge.pstyle('opacity').value;
if (opacity === undefined) { if (opacity === undefined) {
opacity = edgeOpacity; opacity = edgeOpacity;
@ -30162,16 +30260,16 @@ var printLayoutInfo;
context.globalCompositeOperation = 'destination-out'; context.globalCompositeOperation = 'destination-out';
self.colorFillStyle(context, 255, 255, 255, 1); self.colorFillStyle(context, 255, 255, 255, 1);
self.colorStrokeStyle(context, 255, 255, 255, 1); self.colorStrokeStyle(context, 255, 255, 255, 1);
self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x, y, angle); self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);
context.globalCompositeOperation = gco; context.globalCompositeOperation = gco;
} // otherwise, the opaque arrow clears it for free :) } // otherwise, the opaque arrow clears it for free :)
var color = edge.pstyle(prefix + '-arrow-color').value; var color = edge.pstyle(prefix + '-arrow-color').value;
self.colorFillStyle(context, color[0], color[1], color[2], opacity); self.colorFillStyle(context, color[0], color[1], color[2], opacity);
self.colorStrokeStyle(context, color[0], color[1], color[2], opacity); self.colorStrokeStyle(context, color[0], color[1], color[2], opacity);
self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x, y, angle); self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);
}; };
CRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, x, y, angle) { CRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, shapeWidth, x, y, angle) {
var r = this; var r = this;
var usePaths = this.usePaths() && shape !== 'triangle-cross'; var usePaths = this.usePaths() && shape !== 'triangle-cross';
var pathCacheHit = false; var pathCacheHit = false;
@ -30228,7 +30326,7 @@ var printLayoutInfo;
} }
} }
if (fill === 'hollow' || fill === 'both') { if (fill === 'hollow' || fill === 'both') {
context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size : 1); context.lineWidth = shapeWidth / (usePaths ? size : 1);
context.lineJoin = 'miter'; context.lineJoin = 'miter';
if (usePaths) { if (usePaths) {
context.stroke(path); context.stroke(path);
@ -30494,6 +30592,7 @@ var printLayoutInfo;
// TODO ensure re-used // TODO ensure re-used
function roundRect(ctx, x, y, width, height) { function roundRect(ctx, x, y, width, height) {
var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5; var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5;
var stroke = arguments.length > 6 ? arguments[6] : undefined;
ctx.beginPath(); ctx.beginPath();
ctx.moveTo(x + radius, y); ctx.moveTo(x + radius, y);
ctx.lineTo(x + width - radius, y); ctx.lineTo(x + width - radius, y);
@ -30505,7 +30604,7 @@ var printLayoutInfo;
ctx.lineTo(x, y + radius); ctx.lineTo(x, y + radius);
ctx.quadraticCurveTo(x, y, x + radius, y); ctx.quadraticCurveTo(x, y, x + radius, y);
ctx.closePath(); ctx.closePath();
ctx.fill(); if (stroke) ctx.stroke();else ctx.fill();
} }
CRp$6.getTextAngle = function (ele, prefix) { CRp$6.getTextAngle = function (ele, prefix) {
var theta; var theta;
@ -30585,6 +30684,9 @@ var printLayoutInfo;
var borderOpacity = ele.pstyle('text-border-opacity').value; var borderOpacity = ele.pstyle('text-border-opacity').value;
var textBorderWidth = ele.pstyle('text-border-width').pfValue; var textBorderWidth = ele.pstyle('text-border-width').pfValue;
var backgroundPadding = ele.pstyle('text-background-padding').pfValue; var backgroundPadding = ele.pstyle('text-background-padding').pfValue;
var styleShape = ele.pstyle('text-background-shape').strValue;
var rounded = styleShape.indexOf('round') === 0;
var roundRadius = 2;
if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) { if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {
var bgX = textX - backgroundPadding; var bgX = textX - backgroundPadding;
switch (halign) { switch (halign) {
@ -30602,9 +30704,8 @@ var printLayoutInfo;
var textFill = context.fillStyle; var textFill = context.fillStyle;
var textBackgroundColor = ele.pstyle('text-background-color').value; var textBackgroundColor = ele.pstyle('text-background-color').value;
context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')'; context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')';
var styleShape = ele.pstyle('text-background-shape').strValue; if (rounded) {
if (styleShape.indexOf('round') === 0) { roundRect(context, bgX, bgY, bgW, bgH, roundRadius);
roundRect(context, bgX, bgY, bgW, bgH, 2);
} else { } else {
context.fillRect(bgX, bgY, bgW, bgH); context.fillRect(bgX, bgY, bgW, bgH);
} }
@ -30635,10 +30736,18 @@ var printLayoutInfo;
break; break;
} }
} }
context.strokeRect(bgX, bgY, bgW, bgH); if (rounded) {
roundRect(context, bgX, bgY, bgW, bgH, roundRadius, 'stroke');
} else {
context.strokeRect(bgX, bgY, bgW, bgH);
}
if (textBorderStyle === 'double') { if (textBorderStyle === 'double') {
var whiteWidth = textBorderWidth / 2; var whiteWidth = textBorderWidth / 2;
context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2); if (rounded) {
roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2, roundRadius, 'stroke');
} else {
context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);
}
} }
if (context.setLineDash) { if (context.setLineDash) {
// for very outofdate browsers // for very outofdate browsers
@ -30777,6 +30886,11 @@ var printLayoutInfo;
var borderColor = node.pstyle('border-color').value; var borderColor = node.pstyle('border-color').value;
var borderStyle = node.pstyle('border-style').value; var borderStyle = node.pstyle('border-style').value;
var borderOpacity = node.pstyle('border-opacity').value * eleOpacity; var borderOpacity = node.pstyle('border-opacity').value * eleOpacity;
var outlineWidth = node.pstyle('outline-width').pfValue;
var outlineColor = node.pstyle('outline-color').value;
var outlineStyle = node.pstyle('outline-style').value;
var outlineOpacity = node.pstyle('outline-opacity').value * eleOpacity;
var outlineOffset = node.pstyle('outline-offset').value;
context.lineJoin = 'miter'; // so borders are square with the node shape context.lineJoin = 'miter'; // so borders are square with the node shape
var setupShapeColor = function setupShapeColor() { var setupShapeColor = function setupShapeColor() {
@ -30787,25 +30901,40 @@ var printLayoutInfo;
var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity; var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity;
r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy); r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);
}; };
var setupOutlineColor = function setupOutlineColor() {
var otlnOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : outlineOpacity;
r.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy);
};
// //
// setup shape // setup shape
var styleShape = node.pstyle('shape').strValue; var getPath = function getPath(width, height, shape, points) {
var shapePts = node.pstyle('shape-polygon-points').pfValue;
if (usePaths) {
context.translate(pos.x, pos.y);
var pathCache = r.nodePathCache = r.nodePathCache || []; var pathCache = r.nodePathCache = r.nodePathCache || [];
var key = hashStrings(styleShape === 'polygon' ? styleShape + ',' + shapePts.join(',') : styleShape, '' + nodeHeight, '' + nodeWidth); var key = hashStrings(shape === 'polygon' ? shape + ',' + points.join(',') : shape, '' + height, '' + width);
var cachedPath = pathCache[key]; var cachedPath = pathCache[key];
var path;
var cacheHit = false;
if (cachedPath != null) { if (cachedPath != null) {
path = cachedPath; path = cachedPath;
pathCacheHit = true; cacheHit = true;
rs.pathCache = path; rs.pathCache = path;
} else { } else {
path = new Path2D(); path = new Path2D();
pathCache[key] = rs.pathCache = path; pathCache[key] = rs.pathCache = path;
} }
return {
path: path,
cacheHit: cacheHit
};
};
var styleShape = node.pstyle('shape').strValue;
var shapePts = node.pstyle('shape-polygon-points').pfValue;
if (usePaths) {
context.translate(pos.x, pos.y);
var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts);
path = shapePath.path;
pathCacheHit = shapePath.cacheHit;
} }
var drawShape = function drawShape() { var drawShape = function drawShape() {
if (!pathCacheHit) { if (!pathCacheHit) {
@ -30916,6 +31045,115 @@ var printLayoutInfo;
} }
} }
}; };
var drawOutline = function drawOutline() {
if (outlineWidth > 0) {
context.lineWidth = outlineWidth;
context.lineCap = 'butt';
if (context.setLineDash) {
// for very outofdate browsers
switch (outlineStyle) {
case 'dotted':
context.setLineDash([1, 1]);
break;
case 'dashed':
context.setLineDash([4, 2]);
break;
case 'solid':
case 'double':
context.setLineDash([]);
break;
}
}
var npos = pos;
if (usePaths) {
npos = {
x: 0,
y: 0
};
}
var shape = r.getNodeShape(node);
var scaleX = (nodeWidth + borderWidth + (outlineWidth + outlineOffset)) / nodeWidth;
var scaleY = (nodeHeight + borderWidth + (outlineWidth + outlineOffset)) / nodeHeight;
var sWidth = nodeWidth * scaleX;
var sHeight = nodeHeight * scaleY;
var points = r.nodeShapes[shape].points;
var _path;
if (usePaths) {
var outlinePath = getPath(sWidth, sHeight, shape, points);
_path = outlinePath.path;
}
// draw the outline path, either by using expanded points or by scaling
// the dimensions, depending on shape
if (shape === "ellipse") {
r.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight);
} else if (['round-diamond', 'round-heptagon', 'round-hexagon', 'round-octagon', 'round-pentagon', 'round-polygon', 'round-triangle', 'round-tag'].includes(shape)) {
var sMult = 0;
var offsetX = 0;
var offsetY = 0;
if (shape === 'round-diamond') {
sMult = (borderWidth + outlineOffset + outlineWidth) * 1.4;
} else if (shape === 'round-heptagon') {
sMult = (borderWidth + outlineOffset + outlineWidth) * 1.075;
offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 35;
} else if (shape === 'round-hexagon') {
sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12;
} else if (shape === 'round-pentagon') {
sMult = (borderWidth + outlineOffset + outlineWidth) * 1.13;
offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 15;
} else if (shape === 'round-tag') {
sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12;
offsetX = (borderWidth / 2 + outlineWidth + outlineOffset) * .07;
} else if (shape === 'round-triangle') {
sMult = (borderWidth + outlineOffset + outlineWidth) * (Math.PI / 2);
offsetY = -(borderWidth + outlineOffset / 2 + outlineWidth) / Math.PI;
}
if (sMult !== 0) {
scaleX = (nodeWidth + sMult) / nodeWidth;
scaleY = (nodeHeight + sMult) / nodeHeight;
}
r.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points);
} else if (['roundrectangle', 'round-rectangle'].includes(shape)) {
r.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight);
} else if (['cutrectangle', 'cut-rectangle'].includes(shape)) {
r.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight);
} else if (['bottomroundrectangle', 'bottom-round-rectangle'].includes(shape)) {
r.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight);
} else if (shape === "barrel") {
r.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight);
} else if (shape.startsWith("polygon") || ['rhomboid', 'right-rhomboid', 'round-tag', 'tag', 'vee'].includes(shape)) {
var pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth;
points = joinLines(expandPolygon(points, pad));
r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);
} else {
var _pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth;
points = joinLines(expandPolygon(points, -_pad));
r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);
}
if (usePaths) {
context.stroke(_path);
} else {
context.stroke();
}
if (outlineStyle === 'double') {
context.lineWidth = borderWidth / 3;
var gco = context.globalCompositeOperation;
context.globalCompositeOperation = 'destination-out';
if (usePaths) {
context.stroke(_path);
} else {
context.stroke();
}
context.globalCompositeOperation = gco;
}
// reset in case we changed the border style
if (context.setLineDash) {
// for very outofdate browsers
context.setLineDash([]);
}
}
};
var drawOverlay = function drawOverlay() { var drawOverlay = function drawOverlay() {
if (shouldDrawOverlay) { if (shouldDrawOverlay) {
r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight); r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight);
@ -30936,6 +31174,8 @@ var printLayoutInfo;
var ghostOpacity = node.pstyle('ghost-opacity').value; var ghostOpacity = node.pstyle('ghost-opacity').value;
var effGhostOpacity = ghostOpacity * eleOpacity; var effGhostOpacity = ghostOpacity * eleOpacity;
context.translate(gx, gy); context.translate(gx, gy);
setupOutlineColor();
drawOutline();
setupShapeColor(ghostOpacity * bgOpacity); setupShapeColor(ghostOpacity * bgOpacity);
drawShape(); drawShape();
drawImages(effGhostOpacity, true); drawImages(effGhostOpacity, true);
@ -30953,6 +31193,8 @@ var printLayoutInfo;
if (usePaths) { if (usePaths) {
context.translate(pos.x, pos.y); context.translate(pos.x, pos.y);
} }
setupOutlineColor();
drawOutline();
setupShapeColor(); setupShapeColor();
drawShape(); drawShape();
drawImages(eleOpacity, true); drawImages(eleOpacity, true);
@ -32567,7 +32809,7 @@ var printLayoutInfo;
return style; return style;
}; };
var version = "3.27.0"; var version = "3.28.1";
var cytoscape = function cytoscape(options) { var cytoscape = function cytoscape(options) {
// if no options specified, use default // if no options specified, use default

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1772],{5658:(e,t,i)=>{i.d(t,{Z:()=>a});i(67294);var n=i(86010),o=i(95999),s=i(92503),r=i(85893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},51772:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(67294);var n=i(95999),o=i(10833),s=i(58207),r=i(5658),a=i(85893);function l(){const e=(0,n.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.d,{title:e}),(0,a.jsx)(s.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1772],{5658:(e,t,i)=>{i.d(t,{Z:()=>a});i(67294);var n=i(36905),o=i(95999),s=i(92503),r=i(85893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},51772:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(67294);var n=i(95999),o=i(10833),s=i(80647),r=i(5658),a=i(85893);function l(){const e=(0,n.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.d,{title:e}),(0,a.jsx)(s.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
/*! algoliasearch-lite.umd.js | 4.22.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
/*! algoliasearch-lite.umd.js | 4.20.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6342],{45443:i=>{i.exports=JSON.parse('{"label":"recursion","permalink":"/algorithms/tags/recursion","allTagsPath":"/algorithms/tags","count":5,"items":[{"id":"recursion/2023-08-17-pyramid-slide-down/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"},{"id":"recursion/2023-08-17-pyramid-slide-down/naive","title":"Na\xefve solution","description":"Na\xefve solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/naive"},{"id":"recursion/2022-11-29-karel/karel","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel"},{"id":"recursion/2022-11-29-karel/solution","title":"Solution to the problem","description":"Solving the problem introduced in the previous post.\\n","permalink":"/algorithms/recursion/karel/solution"},{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]);

View file

@ -1 +0,0 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[6342],{45443:i=>{i.exports=JSON.parse('{"label":"recursion","permalink":"/algorithms/tags/recursion","allTagsPath":"/algorithms/tags","count":4,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"},{"id":"recursion/2022-11-29-karel/karel","title":"Recursion and backtracking with Robot Karel","description":"A problem with too many restrictions.\\n","permalink":"/algorithms/recursion/karel"},{"id":"recursion/2022-11-29-karel/solution","title":"Solution to the problem","description":"Solving the problem introduced in the previous post.\\n","permalink":"/algorithms/recursion/karel/solution"},{"id":"time-complexity/extend","title":"Time complexity of \u2039extend\u203a","description":"How to make inefficient algorithm unknowingly.\\n","permalink":"/algorithms/time-complexity/extend"}],"unlisted":false}')}}]);

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3751],{10727:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});a(67294);var s=a(86010),r=a(10833),l=a(35281),n=a(35155),c=a(26090),i=a(90197),g=a(92503),o=a(85893);function u(t){let{title:e}=t;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.d,{title:e}),(0,o.jsx)(i.Z,{tag:"doc_tags_list"})]})}function h(t){let{tags:e,title:a}=t;return(0,o.jsx)(r.FG,{className:(0,s.Z)(l.k.page.docsTagsListPage),children:(0,o.jsx)("div",{className:"container margin-vert--lg",children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,o.jsx)(g.Z,{as:"h1",children:a}),(0,o.jsx)(c.Z,{tags:e})]})})})})}function d(t){const e=(0,n.M)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(u,{...t,title:e}),(0,o.jsx)(h,{...t,title:e})]})}},13008:(t,e,a)=>{a.d(e,{Z:()=>c});a(67294);var s=a(86010),r=a(39960);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(85893);function c(t){let{permalink:e,label:a,count:c}=t;return(0,n.jsxs)(r.Z,{href:e,className:(0,s.Z)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},26090:(t,e,a)=>{a.d(e,{Z:()=>g});a(67294);var s=a(35155),r=a(13008),l=a(92503);const n={tag:"tag_Nnez"};var c=a(85893);function i(t){let{letterEntry:e}=t;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.Z,{as:"h2",id:e.letter,children:e.letter}),(0,c.jsx)("ul",{className:"padding--none",children:e.tags.map((t=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.Z,{...t})},t.permalink)))}),(0,c.jsx)("hr",{})]})}function g(t){let{tags:e}=t;const a=(0,s.P)(e);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((t=>(0,c.jsx)(i,{letterEntry:t},t.letter)))})}},35155:(t,e,a)=>{a.d(e,{M:()=>r,P:()=>l});var s=a(95999);const r=()=>(0,s.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(t){const e={};return Object.values(t).forEach((t=>{const a=function(t){return t[0].toUpperCase()}(t.label);e[a]??=[],e[a].push(t)})),Object.entries(e).sort(((t,e)=>{let[a]=t,[s]=e;return a.localeCompare(s)})).map((t=>{let[e,a]=t;return{letter:e,tags:a.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3751],{10727:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});a(67294);var s=a(36905),r=a(10833),l=a(35281),n=a(35155),c=a(26090),i=a(90197),g=a(92503),o=a(85893);function u(t){let{title:e}=t;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.d,{title:e}),(0,o.jsx)(i.Z,{tag:"doc_tags_list"})]})}function h(t){let{tags:e,title:a}=t;return(0,o.jsx)(r.FG,{className:(0,s.Z)(l.k.page.docsTagsListPage),children:(0,o.jsx)("div",{className:"container margin-vert--lg",children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,o.jsx)(g.Z,{as:"h1",children:a}),(0,o.jsx)(c.Z,{tags:e})]})})})})}function d(t){const e=(0,n.M)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(u,{...t,title:e}),(0,o.jsx)(h,{...t,title:e})]})}},13008:(t,e,a)=>{a.d(e,{Z:()=>c});a(67294);var s=a(36905),r=a(39960);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(85893);function c(t){let{permalink:e,label:a,count:c}=t;return(0,n.jsxs)(r.Z,{href:e,className:(0,s.Z)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},26090:(t,e,a)=>{a.d(e,{Z:()=>g});a(67294);var s=a(35155),r=a(13008),l=a(92503);const n={tag:"tag_Nnez"};var c=a(85893);function i(t){let{letterEntry:e}=t;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.Z,{as:"h2",id:e.letter,children:e.letter}),(0,c.jsx)("ul",{className:"padding--none",children:e.tags.map((t=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.Z,{...t})},t.permalink)))}),(0,c.jsx)("hr",{})]})}function g(t){let{tags:e}=t;const a=(0,s.P)(e);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((t=>(0,c.jsx)(i,{letterEntry:t},t.letter)))})}},35155:(t,e,a)=>{a.d(e,{M:()=>r,P:()=>l});var s=a(95999);const r=()=>(0,s.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(t){const e={};return Object.values(t).forEach((t=>{const a=function(t){return t[0].toUpperCase()}(t.label);e[a]??=[],e[a].push(t)})),Object.entries(e).sort(((t,e)=>{let[a]=t,[s]=e;return a.localeCompare(s)})).map((t=>{let[e,a]=t;return{letter:e,tags:a.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}}}]);

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9661],{41892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});r(67294);var u=r(86010),a=r(10833),c=r(35281),n=r(18790),t=r(58207),f=r(85893);function i(e){return(0,f.jsx)(a.FG,{className:(0,u.Z)(c.k.wrapper.docsPages),children:(0,f.jsx)(t.Z,{children:(0,n.H)(e.route.routes)})})}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9661],{41892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});r(67294);var u=r(36905),a=r(10833),c=r(35281),n=r(18790),t=r(80647),f=r(85893);function i(e){return(0,f.jsx)(a.FG,{className:(0,u.Z)(c.k.wrapper.docsPages),children:(0,f.jsx)(t.Z,{children:(0,n.H)(e.route.routes)})})}}}]);

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8610],{99703:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(95999),a=n(32244),i=n(85893);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),l&&(0,i.jsx)(a.Z,{permalink:l,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(9460),a=n(30390),i=n(85893);function l(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},41714:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(67294);var s=n(86010),a=n(95999),i=n(88824),l=n(10833),r=n(35281),o=n(39960),c=n(61460),g=n(99703),d=n(90197),u=n(79985),h=n(22212),p=n(92503),m=n(85893);function x(e){const t=function(){const{selectMessage:e}=(0,i.c)();return t=>e(t,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(l.d,{title:n}),(0,m.jsx)(d.Z,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const l=x(t);return(0,m.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(h.Z,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(p.Z,{as:"h1",children:l}),(0,m.jsx)(o.Z,{href:t.allTagsPath,children:(0,m.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.Z,{items:n}),(0,m.jsx)(g.Z,{metadata:i})]})}function f(e){return(0,m.jsxs)(l.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},22212:(e,t,n)=>{n.d(t,{Z:()=>h});n(67294);var s=n(86010),a=n(95999),i=n(35742),l=n(85893);function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var g=n(35281),d=n(59047);function u(e){let{className:t}=e;return(0,l.jsx)(d.Z,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,s.Z)(t,g.k.common.unlistedBanner),children:(0,l.jsx)(o,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(u,{...e})]})}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[8610],{99703:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(95999),a=n(32244),i=n(85893);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),l&&(0,i.jsx)(a.Z,{permalink:l,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,n)=>{n.d(t,{Z:()=>l});n(67294);var s=n(9460),a=n(30390),i=n(85893);function l(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},41714:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(67294);var s=n(36905),a=n(95999),i=n(88824),l=n(10833),r=n(35281),o=n(39960),c=n(61460),g=n(99703),d=n(90197),u=n(79985),h=n(22212),p=n(92503),m=n(85893);function x(e){const t=function(){const{selectMessage:e}=(0,i.c)();return t=>e(t,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(l.d,{title:n}),(0,m.jsx)(d.Z,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const l=x(t);return(0,m.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(h.Z,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(p.Z,{as:"h1",children:l}),(0,m.jsx)(o.Z,{href:t.allTagsPath,children:(0,m.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.Z,{items:n}),(0,m.jsx)(g.Z,{metadata:i})]})}function f(e){return(0,m.jsxs)(l.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},22212:(e,t,n)=>{n.d(t,{Z:()=>h});n(67294);var s=n(36905),a=n(95999),i=n(35742),l=n(85893);function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var g=n(35281),d=n(59047);function u(e){let{className:t}=e;return(0,l.jsx)(d.Z,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,s.Z)(t,g.k.common.unlistedBanner),children:(0,l.jsx)(o,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(u,{...e})]})}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9731],{42286:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(85893),r=n(11151);const i={id:"cpp-intro",title:"Introduction",slug:"/"},c=void 0,s={id:"cpp-intro",title:"Introduction",description:"",source:"@site/cpp/00-intro.md",sourceDirName:".",slug:"/",permalink:"/cpp/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/00-intro.md",tags:[],version:"current",lastUpdatedAt:1703373170,formattedLastUpdatedAt:"Dec 23, 2023",sidebarPosition:0,frontMatter:{id:"cpp-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Exceptions and RAII",permalink:"/cpp/category/exceptions-and-raii"}},a={},p=[];function u(t){return(0,o.jsx)(o.Fragment,{})}function d(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(u,{...t})}):u()}},11151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>c});var o=n(67294);const r={},i=o.createContext(r);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[9731],{42286:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(85893),r=n(11151);const i={id:"cpp-intro",title:"Introduction",slug:"/"},c=void 0,s={id:"cpp-intro",title:"Introduction",description:"",source:"@site/cpp/00-intro.md",sourceDirName:".",slug:"/",permalink:"/cpp/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/cpp/00-intro.md",tags:[],version:"current",lastUpdatedAt:1703786024,formattedLastUpdatedAt:"Dec 28, 2023",sidebarPosition:0,frontMatter:{id:"cpp-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Exceptions and RAII",permalink:"/cpp/category/exceptions-and-raii"}},a={},p=[];function u(t){return(0,o.jsx)(o.Fragment,{})}function d(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(u,{...t})}):u()}},11151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>c});var o=n(67294);const r={},i=o.createContext(r);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]);

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3803],{86427:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var o=n(85893),r=n(11151);const i={id:"c-intro",title:"Introduction",slug:"/"},c=void 0,s={id:"c-intro",title:"Introduction",description:"",source:"@site/c/00-intro.md",sourceDirName:".",slug:"/",permalink:"/c/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/00-intro.md",tags:[],version:"current",lastUpdatedAt:1703373170,formattedLastUpdatedAt:"Dec 23, 2023",sidebarPosition:0,frontMatter:{id:"c-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Bonuses",permalink:"/c/category/bonuses"}},a={},u=[];function d(t){return(0,o.jsx)(o.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d()}},11151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>c});var o=n(67294);const r={},i=o.createContext(r);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3803],{86427:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var o=n(85893),r=n(11151);const i={id:"c-intro",title:"Introduction",slug:"/"},c=void 0,s={id:"c-intro",title:"Introduction",description:"",source:"@site/c/00-intro.md",sourceDirName:".",slug:"/",permalink:"/c/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/c/00-intro.md",tags:[],version:"current",lastUpdatedAt:1703786024,formattedLastUpdatedAt:"Dec 28, 2023",sidebarPosition:0,frontMatter:{id:"c-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Bonuses",permalink:"/c/category/bonuses"}},a={},u=[];function d(t){return(0,o.jsx)(o.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(d,{...t})}):d()}},11151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>c});var o=n(67294);const r={},i=o.createContext(r);function c(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:c(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]);

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1885],{49713:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var o=n(85893),s=n(11151);const r={id:"algorithms-intro",title:"Introduction",slug:"/"},i=void 0,a={id:"algorithms-intro",title:"Introduction",description:"In this part you can find \u201crandom\u201d additional materials I have written over the",source:"@site/algorithms/00-intro.md",sourceDirName:".",slug:"/",permalink:"/algorithms/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/00-intro.md",tags:[],version:"current",lastUpdatedAt:1703373170,formattedLastUpdatedAt:"Dec 23, 2023",sidebarPosition:0,frontMatter:{id:"algorithms-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Algorithms and Correctness",permalink:"/algorithms/category/algorithms-and-correctness"}},c={},d=[];function l(t){const e={a:"a",em:"em",p:"p",...(0,s.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:["In this part you can find \u201crandom\u201d additional materials I have written over the\ncourse of teaching ",(0,o.jsx)(e.em,{children:"Algorithms and data structures I"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"It is a various mix of stuff that may have been produced as a follow-up on some\nquestion asked at the seminar or spontanously."}),"\n",(0,o.jsxs)(e.p,{children:["If you have some ideas for posts, please do not hesitate to submit them as issues\nin the linked ",(0,o.jsx)(e.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/issues",children:"GitLab"}),"."]})]})}function u(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(l,{...t})}):l(t)}},11151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>i});var o=n(67294);const s={},r=o.createContext(s);function i(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1885],{49713:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var o=n(85893),s=n(11151);const r={id:"algorithms-intro",title:"Introduction",slug:"/"},i=void 0,a={id:"algorithms-intro",title:"Introduction",description:"In this part you can find \u201crandom\u201d additional materials I have written over the",source:"@site/algorithms/00-intro.md",sourceDirName:".",slug:"/",permalink:"/algorithms/",draft:!1,unlisted:!1,editUrl:"https://github.com/mfocko/blog/tree/main/algorithms/00-intro.md",tags:[],version:"current",lastUpdatedAt:1703786024,formattedLastUpdatedAt:"Dec 28, 2023",sidebarPosition:0,frontMatter:{id:"algorithms-intro",title:"Introduction",slug:"/"},sidebar:"autogeneratedBar",next:{title:"Algorithms and Correctness",permalink:"/algorithms/category/algorithms-and-correctness"}},c={},d=[];function l(t){const e={a:"a",em:"em",p:"p",...(0,s.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:["In this part you can find \u201crandom\u201d additional materials I have written over the\ncourse of teaching ",(0,o.jsx)(e.em,{children:"Algorithms and data structures I"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"It is a various mix of stuff that may have been produced as a follow-up on some\nquestion asked at the seminar or spontanously."}),"\n",(0,o.jsxs)(e.p,{children:["If you have some ideas for posts, please do not hesitate to submit them as issues\nin the linked ",(0,o.jsx)(e.a,{href:"https://gitlab.fi.muni.cz/xfocko/kb/issues",children:"GitLab"}),"."]})]})}function u(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(l,{...t})}):l(t)}},11151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>i});var o=n(67294);const s={},r=o.createContext(s);function i(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:i(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]);

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5775],{76206:i=>{i.exports=JSON.parse('{"label":"exponential","permalink":"/algorithms/tags/exponential","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"recursion/2023-08-17-pyramid-slide-down/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"},{"id":"recursion/2023-08-17-pyramid-slide-down/naive","title":"Na\xefve solution","description":"Na\xefve solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/naive"}],"unlisted":false}')}}]);

View file

@ -1 +0,0 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[5775],{76206:i=>{i.exports=JSON.parse('{"label":"exponential","permalink":"/algorithms/tags/exponential","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4562],{69019:i=>{i.exports=JSON.parse('{"label":"java","permalink":"/algorithms/tags/java","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]);

View file

@ -0,0 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[4562],{69019:i=>{i.exports=JSON.parse('{"label":"java","permalink":"/algorithms/tags/java","allTagsPath":"/algorithms/tags","count":5,"items":[{"id":"recursion/2023-08-17-pyramid-slide-down/bottom-up-dp","title":"Bottom-up DP solution","description":"Bottom-up DP solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/bottom-up-dp"},{"id":"recursion/2023-08-17-pyramid-slide-down/greedy","title":"Greedy solution","description":"Greedy solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/greedy"},{"id":"recursion/2023-08-17-pyramid-slide-down/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"},{"id":"recursion/2023-08-17-pyramid-slide-down/naive","title":"Na\xefve solution","description":"Na\xefve solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/naive"},{"id":"recursion/2023-08-17-pyramid-slide-down/top-down-dp","title":"Top-down DP solution","description":"Top-down DP solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/top-down-dp"}],"unlisted":false}')}}]);

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1464],{77343:a=>{a.exports=JSON.parse('[{"label":"python","permalink":"/algorithms/tags/python","count":7},{"label":"testing","permalink":"/algorithms/tags/testing","count":1},{"label":"postconditions","permalink":"/algorithms/tags/postconditions","count":1},{"label":"sorting","permalink":"/algorithms/tags/sorting","count":1},{"label":"graphs","permalink":"/algorithms/tags/graphs","count":2},{"label":"bfs","permalink":"/algorithms/tags/bfs","count":1},{"label":"csharp","permalink":"/algorithms/tags/csharp","count":1},{"label":"iterators","permalink":"/algorithms/tags/iterators","count":1},{"label":"iterative","permalink":"/algorithms/tags/iterative","count":1},{"label":"cpp","permalink":"/algorithms/tags/cpp","count":3},{"label":"hash-tables","permalink":"/algorithms/tags/hash-tables","count":3},{"label":"balanced trees","permalink":"/algorithms/tags/balanced-trees","count":2},{"label":"red-black trees","permalink":"/algorithms/tags/red-black-trees","count":2},{"label":"applications","permalink":"/algorithms/tags/applications","count":1},{"label":"karel","permalink":"/algorithms/tags/karel","count":2},{"label":"recursion","permalink":"/algorithms/tags/recursion","count":4},{"label":"backtracking","permalink":"/algorithms/tags/backtracking","count":2},{"label":"solution","permalink":"/algorithms/tags/solution","count":1},{"label":"java","permalink":"/algorithms/tags/java","count":1},{"label":"exponential","permalink":"/algorithms/tags/exponential","count":1},{"label":"greedy","permalink":"/algorithms/tags/greedy","count":1},{"label":"dynamic-programming","permalink":"/algorithms/tags/dynamic-programming","count":1},{"label":"top-down-dp","permalink":"/algorithms/tags/top-down-dp","count":1},{"label":"bottom-up-dp","permalink":"/algorithms/tags/bottom-up-dp","count":1},{"label":"c","permalink":"/algorithms/tags/c","count":1},{"label":"dynamic array","permalink":"/algorithms/tags/dynamic-array","count":1},{"label":"time complexity","permalink":"/algorithms/tags/time-complexity","count":1}]')}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[1464],{77343:a=>{a.exports=JSON.parse('[{"label":"python","permalink":"/algorithms/tags/python","count":7},{"label":"testing","permalink":"/algorithms/tags/testing","count":1},{"label":"postconditions","permalink":"/algorithms/tags/postconditions","count":1},{"label":"sorting","permalink":"/algorithms/tags/sorting","count":1},{"label":"graphs","permalink":"/algorithms/tags/graphs","count":2},{"label":"bfs","permalink":"/algorithms/tags/bfs","count":1},{"label":"csharp","permalink":"/algorithms/tags/csharp","count":1},{"label":"iterators","permalink":"/algorithms/tags/iterators","count":1},{"label":"iterative","permalink":"/algorithms/tags/iterative","count":1},{"label":"cpp","permalink":"/algorithms/tags/cpp","count":3},{"label":"hash-tables","permalink":"/algorithms/tags/hash-tables","count":3},{"label":"balanced trees","permalink":"/algorithms/tags/balanced-trees","count":2},{"label":"red-black trees","permalink":"/algorithms/tags/red-black-trees","count":2},{"label":"applications","permalink":"/algorithms/tags/applications","count":1},{"label":"karel","permalink":"/algorithms/tags/karel","count":2},{"label":"recursion","permalink":"/algorithms/tags/recursion","count":5},{"label":"backtracking","permalink":"/algorithms/tags/backtracking","count":2},{"label":"solution","permalink":"/algorithms/tags/solution","count":1},{"label":"java","permalink":"/algorithms/tags/java","count":5},{"label":"dynamic-programming","permalink":"/algorithms/tags/dynamic-programming","count":3},{"label":"bottom-up-dp","permalink":"/algorithms/tags/bottom-up-dp","count":2},{"label":"greedy","permalink":"/algorithms/tags/greedy","count":2},{"label":"exponential","permalink":"/algorithms/tags/exponential","count":2},{"label":"top-down-dp","permalink":"/algorithms/tags/top-down-dp","count":2},{"label":"c","permalink":"/algorithms/tags/c","count":1},{"label":"dynamic array","permalink":"/algorithms/tags/dynamic-array","count":1},{"label":"time complexity","permalink":"/algorithms/tags/time-complexity","count":1}]')}}]);

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3608],{63169:(e,r,s)=>{s.r(r),s.d(r,{default:()=>o});s(67294);var t=s(39960),a=s(95999),i=s(10833),n=s(58207),c=s(92503),l=s(85893);function h(e){let{year:r,posts:s}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Z,{as:"h3",id:r,children:r}),(0,l.jsx)("ul",{children:s.map((e=>(0,l.jsx)("li",{children:(0,l.jsxs)(t.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metadata.title]})},e.metadata.date)))})]})}function d(e){let{years:r}=e;return(0,l.jsx)("section",{className:"margin-vert--lg",children:(0,l.jsx)("div",{className:"container",children:(0,l.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,l.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,l.jsx)(h,{...e})},r)))})})})}function o(e){let{archive:r}=e;const s=(0,a.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),t=(0,a.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),h=function(e){const r=e.reduce(((e,r)=>{const s=r.metadata.date.split("-")[0],t=e.get(s)??[];return e.set(s,[r,...t])}),new Map);return Array.from(r,(e=>{let[r,s]=e;return{year:r,posts:s}}))}(r.blogPosts);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.d,{title:s,description:t}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)("header",{className:"hero hero--primary",children:(0,l.jsxs)("div",{className:"container",children:[(0,l.jsx)(c.Z,{as:"h1",className:"hero__title",children:s}),(0,l.jsx)("p",{className:"hero__subtitle",children:t})]})}),(0,l.jsx)("main",{children:h.length>0&&(0,l.jsx)(d,{years:h})})]})]})}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3608],{63169:(e,r,s)=>{s.r(r),s.d(r,{default:()=>o});s(67294);var t=s(39960),a=s(95999),i=s(10833),n=s(80647),c=s(92503),l=s(85893);function h(e){let{year:r,posts:s}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.Z,{as:"h3",id:r,children:r}),(0,l.jsx)("ul",{children:s.map((e=>(0,l.jsx)("li",{children:(0,l.jsxs)(t.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metadata.title]})},e.metadata.date)))})]})}function d(e){let{years:r}=e;return(0,l.jsx)("section",{className:"margin-vert--lg",children:(0,l.jsx)("div",{className:"container",children:(0,l.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,l.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,l.jsx)(h,{...e})},r)))})})})}function o(e){let{archive:r}=e;const s=(0,a.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),t=(0,a.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),h=function(e){const r=e.reduce(((e,r)=>{const s=r.metadata.date.split("-")[0],t=e.get(s)??[];return e.set(s,[r,...t])}),new Map);return Array.from(r,(e=>{let[r,s]=e;return{year:r,posts:s}}))}(r.blogPosts);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.d,{title:s,description:t}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)("header",{className:"hero hero--primary",children:(0,l.jsxs)("div",{className:"container",children:[(0,l.jsx)(c.Z,{as:"h1",className:"hero__title",children:s}),(0,l.jsx)("p",{className:"hero__subtitle",children:t})]})}),(0,l.jsx)("main",{children:h.length>0&&(0,l.jsx)(d,{years:h})})]})]})}}}]);

View file

@ -1 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3089],{80046:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(67294);var n=a(86010),i=a(52263),s=a(10833),r=a(35281),l=a(61460),o=a(99703),g=a(90197),d=a(79985),p=a(85893);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s.d,{title:o,description:n}),(0,p.jsx)(g.Z,{tag:"blog_posts_list"})]})}function m(e){const{metadata:t,items:a,sidebar:n}=e;return(0,p.jsxs)(l.Z,{sidebar:n,children:[(0,p.jsx)(d.Z,{items:a}),(0,p.jsx)(o.Z,{metadata:t})]})}function h(e){return(0,p.jsxs)(s.FG,{className:(0,n.Z)(r.k.wrapper.blogPages,r.k.page.blogListPage),children:[(0,p.jsx)(c,{...e}),(0,p.jsx)(m,{...e})]})}},99703:(e,t,a)=>{a.d(t,{Z:()=>r});a(67294);var n=a(95999),i=a(32244),s=a(85893);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,s.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,s.jsx)(i.Z,{permalink:a,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,s.jsx)(i.Z,{permalink:r,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,a)=>{a.d(t,{Z:()=>r});a(67294);var n=a(9460),i=a(30390),s=a(85893);function r(e){let{items:t,component:a=i.Z}=e;return(0,s.jsx)(s.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,s.jsx)(n.n,{content:t,children:(0,s.jsx)(a,{children:(0,s.jsx)(t,{})})},t.metadata.permalink)}))})}}}]); "use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[3089],{80046:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(67294);var n=a(36905),i=a(52263),s=a(10833),r=a(35281),l=a(61460),o=a(99703),g=a(90197),d=a(79985),p=a(85893);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s.d,{title:o,description:n}),(0,p.jsx)(g.Z,{tag:"blog_posts_list"})]})}function m(e){const{metadata:t,items:a,sidebar:n}=e;return(0,p.jsxs)(l.Z,{sidebar:n,children:[(0,p.jsx)(d.Z,{items:a}),(0,p.jsx)(o.Z,{metadata:t})]})}function h(e){return(0,p.jsxs)(s.FG,{className:(0,n.Z)(r.k.wrapper.blogPages,r.k.page.blogListPage),children:[(0,p.jsx)(c,{...e}),(0,p.jsx)(m,{...e})]})}},99703:(e,t,a)=>{a.d(t,{Z:()=>r});a(67294);var n=a(95999),i=a(32244),s=a(85893);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,s.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,s.jsx)(i.Z,{permalink:a,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,s.jsx)(i.Z,{permalink:r,title:(0,s.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},79985:(e,t,a)=>{a.d(t,{Z:()=>r});a(67294);var n=a(9460),i=a(30390),s=a(85893);function r(e){let{items:t,component:a=i.Z}=e;return(0,s.jsx)(s.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,s.jsx)(n.n,{content:t,children:(0,s.jsx)(a,{children:(0,s.jsx)(t,{})})},t.metadata.permalink)}))})}}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7438],{74632:e=>{e.exports=JSON.parse('{"label":"greedy","permalink":"/algorithms/tags/greedy","allTagsPath":"/algorithms/tags","count":2,"items":[{"id":"recursion/2023-08-17-pyramid-slide-down/greedy","title":"Greedy solution","description":"Greedy solution of the Pyramid Slide Down.\\n","permalink":"/algorithms/recursion/pyramid-slide-down/greedy"},{"id":"recursion/2023-08-17-pyramid-slide-down/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]);

View file

@ -1 +0,0 @@
"use strict";(self.webpackChunkfi=self.webpackChunkfi||[]).push([[7438],{74632:e=>{e.exports=JSON.parse('{"label":"greedy","permalink":"/algorithms/tags/greedy","allTagsPath":"/algorithms/tags","count":1,"items":[{"id":"recursion/pyramid-slide-down","title":"Introduction to dynamic programming","description":"Solving a problem in different ways.\\n","permalink":"/algorithms/recursion/pyramid-slide-down"}],"unlisted":false}')}}]);

Some files were not shown because too many files have changed in this diff Show more