@evotecit/canopyx 0.3.6 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CanopyX.Html/Assets/canopyx-calendar.js +4 -3
  2. package/CanopyX.Html/Assets/canopyx-changes.css +240 -0
  3. package/CanopyX.Html/Assets/canopyx-changes.js +224 -0
  4. package/CanopyX.Html/Assets/canopyx-detail-rows.js +2 -2
  5. package/CanopyX.Html/Assets/canopyx-filter-editor.js +2 -1
  6. package/CanopyX.Html/Assets/canopyx-formatting.js +7 -6
  7. package/CanopyX.Html/Assets/canopyx-grid-module.mjs +71 -44
  8. package/CanopyX.Html/Assets/canopyx-grid.css +24 -0
  9. package/CanopyX.Html/Assets/canopyx-grid.js +71 -44
  10. package/CanopyX.Html/Assets/canopyx-interactive.js +6 -6
  11. package/CanopyX.Html/Assets/canopyx-labels-de.js +76 -2
  12. package/CanopyX.Html/Assets/canopyx-labels-es.js +76 -2
  13. package/CanopyX.Html/Assets/canopyx-labels-fr.js +76 -2
  14. package/CanopyX.Html/Assets/canopyx-labels-it.js +76 -2
  15. package/CanopyX.Html/Assets/canopyx-labels-pl.js +76 -2
  16. package/CanopyX.Html/Assets/canopyx-live.js +4 -3
  17. package/CanopyX.Html/Assets/canopyx-matrix.css +16 -3
  18. package/CanopyX.Html/Assets/canopyx-matrix.js +22 -14
  19. package/CanopyX.Html/Assets/canopyx-module.mjs +6 -6
  20. package/CanopyX.Html/Assets/canopyx-reporting-module.mjs +73 -46
  21. package/CanopyX.Html/Assets/canopyx-reporting.css +24 -0
  22. package/CanopyX.Html/Assets/canopyx-reporting.js +73 -46
  23. package/CanopyX.Html/Assets/canopyx-tree-tools.js +7 -6
  24. package/CanopyX.Html/Assets/canopyx.js +6 -6
  25. package/JavaScript/changes.d.ts +252 -0
  26. package/JavaScript/grid.d.ts +15 -5
  27. package/JavaScript/locales/de.mjs +76 -2
  28. package/JavaScript/locales/es.mjs +76 -2
  29. package/JavaScript/locales/fr.mjs +76 -2
  30. package/JavaScript/locales/it.mjs +76 -2
  31. package/JavaScript/locales/pl.mjs +76 -2
  32. package/JavaScript/matrix.d.ts +2 -0
  33. package/JavaScript/protocol.d.ts +1 -1
  34. package/README.md +7 -2
  35. package/package.json +5 -1
@@ -60,7 +60,7 @@ function fill(template,values){return template.replace(/\{(\w+)\}/g, (match, nam
60
60
  const pluralRules=new Map();function plural(template,count,lang){if(!template.startsWith("["))return template;const forms={};for(const match of template.matchAll(/\[(zero|one|two|few|many|other)\]([^[]*)/g)) forms[match[1]] = match[2];
61
61
  let rules=pluralRules.get(lang);if(!rules){try{rules=new Intl.PluralRules(lang||"en")}catch(_){rules=new Intl.PluralRules("en")}pluralRules.set(lang,rules)}
62
62
  return forms[rules.select(Number(count))]??forms.other??template}
63
- let DEFAULT_LABELS=Object.freeze({searchPlaceholder:"Search",searchResults:"Search results",searchResultCount:"{count} results",searchResultCountOfTotal:"{count} of {total} results",searchResultCountOfMany:"{count} of many results",searchNoResults:"No results",searchTooShort:"Type at least {min} characters",searchWordTooShort:"Type a word of at least {min} characters",searchFailed:"Search failed: {error}",columns:"Columns",visibleColumns:"Visible columns",resizeColumn:"Resize {column}",columnWidth:"{width} pixels",loading:"Loading…",loadError:"Could not load: {error} (Enter to retry)",queryFailed:"Could not update the view: {error}",showMore:"Show more ({loaded} of {total} loaded)",showMoreUnknownTotal:"Show more ({loaded} loaded)",pageLoaded:"{loaded} of {total} loaded",itemsLoaded:"{count} items",yes:"Yes",no:"No",utcTime:"{time} UTC",localTime:"{time} local time",mountError:"This view could not be displayed: {error}"});function labelsFor(...sources){const labels=Object.assign({},DEFAULT_LABELS);for(const source of sources){if(source==null)continue;if(typeof source!=="object"||Array.isArray(source))throw new Error("CanopyX: labels must be an object of strings.");Object.keys(source).forEach((name)=>{if(!Object.hasOwn(DEFAULT_LABELS,name)&&!/^(?:gridEdit|format|calendar|flow|matrix)[A-Z]\w{0,63}$/.test(name)) throw new Error("CanopyX: there is no label '" + name + "'.");
63
+ let DEFAULT_LABELS=Object.freeze({searchPlaceholder:"Search",searchResults:"Search results",searchResultCount:"{count} results",searchResultCountOfTotal:"{count} of {total} results",searchResultCountOfMany:"{count} of many results",searchNoResults:"No results",searchTooShort:"Type at least {min} characters",searchWordTooShort:"Type a word of at least {min} characters",searchFailed:"Search failed: {error}",columns:"Columns",hiddenColumns:"[one]+{count} column[other]+{count} columns",visibleColumns:"Visible columns",resizeColumn:"Resize {column}",columnWidth:"{width} pixels",loading:"Loading…",loadError:"Could not load: {error} (Enter to retry)",queryFailed:"Could not update the view: {error}",showMore:"Show more ({loaded} of {total} loaded)",showMoreUnknownTotal:"Show more ({loaded} loaded)",pageLoaded:"{loaded} of {total} loaded",itemsLoaded:"{count} items",yes:"Yes",no:"No",utcTime:"{time} UTC",localTime:"{time} local time",mountError:"This view could not be displayed: {error}"});function labelsFor(...sources){const labels=Object.assign({},DEFAULT_LABELS);for(const source of sources){if(source==null)continue;if(typeof source!=="object"||Array.isArray(source))throw new Error("CanopyX: labels must be an object of strings.");Object.keys(source).forEach((name)=>{if(!Object.hasOwn(DEFAULT_LABELS,name)&&!/^(?:gridEdit|format|calendar|flow|matrix|change)[A-Z]\w{0,63}$/.test(name)) throw new Error("CanopyX: there is no label '" + name + "'.");
64
64
  if(typeof source[name]!=="string"||!/\S/.test(source[name])) throw new Error("CanopyX: label '" + name + "' must be a string with visible text.");
65
65
  if((name==="utcTime"||name==="localTime")&&source[name].indexOf("{time}")<0)throw new Error("CanopyX: label '"+name+"' must hold {time}.");labels[name]=source[name]})}
66
66
  return Object.freeze(labels)}
@@ -74,7 +74,7 @@ function trusted(kind,value){if(trustPolicy===undefined){try{trustPolicy=global.
74
74
  catch(_){trustPolicy=null}}
75
75
  return trustPolicy?trustPolicy["create"+kind](value):value}
76
76
  function hostHtml(element,html,sanitize,kind){const text=String(html??""),value=sanitize?sanitize(text,{kind}):text;if(value?.nodeType)element.replaceChildren(value);else if(typeof value==="string")element.innerHTML=trusted("HTML",value);else if(global.trustedTypes?.isHTML?.(value))element.innerHTML=value;else throw new Error("CanopyX: invalid sanitizeHtml result.")}
77
- DEFAULT_LABELS=Object.freeze(Object.assign({},DEFAULT_LABELS,{gridViews:"Views",gridViewName:"View name",gridSaveView:"Save view",gridRemoveView:"Remove view",gridResetView:"Reset view",gridChooseView:"Choose a saved view",gridApply:"Apply",gridFindColumn:"Find a column…",gridShowAllColumns:"Show all",gridResetColumns:"Reset columns",gridReorderColumn:"{column}: drag, or press Alt+Up or Alt+Down to move",gridPinnedLeft:"Pinned left",gridPinnedRight:"Pinned right",gridResponsiveHidden:"Hidden at this width",gridExport:"Export",gridVisibleRows:"Visible rows",gridSelectedRows:"Selected rows",gridAllRows:"All rows",gridDownloadCsv:"Download CSV",gridCopy:"Copy",gridExportProgress:"{completed} of {total} records",gridExportReading:"{completed} records",gridExportCancelled:"Export cancelled",gridCancelExport:"Cancel export",gridMore:"More",gridPrint:"Print",gridDetails:"Record details",gridDetailsSection:"Details",gridPreviousRecord:"Previous record",gridNextRecord:"Next record",gridCloseRecord:"Close record details"}));DEFAULT_LABELS=Object.freeze(Object.assign({},DEFAULT_LABELS,{recordBack:"Back",recordBackTo:"Back to {record}",recordTrail:"Record trail",recordShowing:"Showing {record}",recordTabs:"Record views",recordSections:"Jump to a section",recordOtherFields:"Other fields",recordShowEmpty:"Show empty fields ({count})",recordHideEmpty:"Hide empty fields",recordActions:"Record actions",recordCopyValues:"Copy values",recordCopyJson:"Copy as JSON",recordCopyLink:"Copy link",recordCopied:"Copied to the clipboard",recordPrint:"Print record",recordExportCsv:"Export CSV",recordExportJson:"Export JSON",recordOpenAll:"Open all in grid",recordLoadMore:"Load more",recordCount:"{shown} of {total}",recordItems:"{count} items",recordMore:"+{count}",recordShowAll:"Show all {count}",recordRetry:"Retry",recordLoadFailed:"Could not load the record details: {error}",recordUnavailable:"Record {id} is not available here.",recordField:"Field",recordValue:"Value",recordSection:"Section",recordBefore:"Before",recordAfter:"After",recordAdded:"Added",recordRemoved:"Removed",recordChanged:"{count} changed fields"}));function boundedPattern(source,exact=true,whole=false){const bad=()=>{throw new Error("CanopyX: pattern requires literals, character classes and at most one variable repetition anchored at the start; groups, alternatives and backreferences are unsupported.")};if(typeof source!=="string"||source.length>256)bad();let width=0,variable=0;for(let i=0;i<source.length;){const unit=source[i++];if(unit==="^"&&i===1||unit==="$"&&i===source.length)continue;if(unit==="\\"){const escape=source[i++];if(!escape||!/^[dDsSwWbBnrtfv\\.^$*+?{}\[\]()|/]$/.test(escape)) bad();
77
+ DEFAULT_LABELS=Object.freeze(Object.assign({},DEFAULT_LABELS,{gridViews:"Views",gridViewName:"View name",gridSaveView:"Save view",gridRemoveView:"Remove view",gridResetView:"Reset view",gridChooseView:"Choose a saved view",gridApply:"Apply",gridFindColumn:"Find a column…",gridShowAllColumns:"Show all",gridResetColumns:"Reset columns",gridReorderColumn:"{column}: drag, or press Alt+Up or Alt+Down to move",gridPinnedLeft:"Pinned left",gridPinnedRight:"Pinned right",gridResponsiveHidden:"Hidden at this width",gridExport:"Export",gridVisibleRows:"Visible rows",gridSelectedRows:"Selected rows",gridAllRows:"All rows",gridDownloadCsv:"Download CSV",gridCopy:"Copy",gridExportProgress:"{completed} of {total} records",gridExportReading:"{completed} records",gridExportCancelled:"Export cancelled",gridCancelExport:"Cancel export",gridMore:"More",gridPrint:"Print",gridDetails:"Record details",gridDetailsSection:"Details",gridPreviousRecord:"Previous record",gridNextRecord:"Next record",gridCloseRecord:"Close"}));DEFAULT_LABELS=Object.freeze(Object.assign({},DEFAULT_LABELS,{recordBack:"Back",recordBackTo:"Back to {record}",recordTrail:"Record trail",recordShowing:"Showing {record}",recordTabs:"Record views",recordSections:"Jump to a section",recordOtherFields:"Other fields",recordShowEmpty:"Show empty fields ({count})",recordHideEmpty:"Hide empty fields",recordActions:"Record actions",recordCopyValues:"Copy values",recordCopyJson:"Copy as JSON",recordCopyLink:"Copy link",recordCopied:"Copied to the clipboard",recordPrint:"Print record",recordExportCsv:"Export CSV",recordExportJson:"Export JSON",recordOpenAll:"Open all in grid",recordLoadMore:"Load more",recordCount:"{shown} of {total}",recordItems:"{count} items",recordMore:"+{count}",recordShowAll:"Show all {count}",recordRetry:"Retry",recordLoadFailed:"Could not load the record details: {error}",recordUnavailable:"Record {id} is not available here.",recordField:"Field",recordValue:"Value",recordSection:"Section",recordBefore:"Before",recordAfter:"After",recordAdded:"Added",recordRemoved:"Removed",recordChanged:"{count} changed fields"}));function boundedPattern(source,exact=true,whole=false){const bad=()=>{throw new Error("CanopyX: pattern requires literals, character classes and at most one variable repetition anchored at the start; groups, alternatives and backreferences are unsupported.")};if(typeof source!=="string"||source.length>256)bad();let width=0,variable=0;for(let i=0;i<source.length;){const unit=source[i++];if(unit==="^"&&i===1||unit==="$"&&i===source.length)continue;if(unit==="\\"){const escape=source[i++];if(!escape||!/^[dDsSwWbBnrtfv\\.^$*+?{}\[\]()|/]$/.test(escape)) bad();
78
78
  }else if(unit==="["){let closed=false;while(i<source.length){const c=source[i++];if(c==="\\"){const escape=source[i++];if(!escape||!/^[dDsSwWbnrtfv\\.^$*+?{}\[\]()|/-]$/.test(escape)) bad(); }
79
79
  else if(c==="]"){closed=true;break}}
80
80
  if(!closed)bad()}else if("()|^$*+?{}]".includes(unit))bad();let count=1;if(i<source.length&&"*+?".includes(source[i])){variable++;i++}
@@ -334,7 +334,7 @@ function hostRenderers(renderers,columns,plugins){if(![Object.prototype,null].in
334
334
  Object.keys(renderers).some(id=>typeof renderers[id]!=="function"||!columns.some(column=>column.id===id)))
335
335
  throw new Error("CanopyX: invalid column renderers.");const named=Object.assign(Object.create(null),...plugins.map(item=>item.cellRenderers));return Object.assign(Object.create(null),...columns.filter(column=>typeof column.renderer==="string"&&named[column.renderer])
336
336
  .map(column=>({[column.id]:named[column.renderer]})),renderers)}
337
- function disposeHostSlot(slot){const lifetime=slot.hostLifetime;if(!lifetime)return;delete slot.hostLifetime;lifetime.dispose()}
337
+ function disposeHostSlot(slot){slot.childSlots?.forEach(disposeHostSlot);const lifetime=slot.hostLifetime;if(!lifetime)return;delete slot.hostLifetime;lifetime.dispose()}
338
338
  function disposeRowHostCells(row){row._cells?.forEach(disposeHostSlot)}
339
339
  class HostCellContext{#controller;#cleanups;constructor(slot,column,level,expanded,index){slot.hostLifetime=this;this.column=column;this.level=level;this.expanded=expanded;this.index=index}
340
340
  get signal(){this.#controller||=new AbortController();if(this.#cleanups===null)this.#controller.abort();return this.#controller.signal}
@@ -504,7 +504,7 @@ if(active>=0){list.children[active].setAttribute("aria-selected","false")}
504
504
  active=active<0?(delta<0?hits.length-1:0):(active+delta+hits.length)%hits.length;const item=list.children[active];item.setAttribute("aria-selected","true");input.setAttribute("aria-activedescendant",item.id);item.scrollIntoView({block:"nearest"})};input.addEventListener("input",()=>{cancelNavigation();sequence++;clearTimeout(timer);hits=[];close();timer=setTimeout(run,150)});input.addEventListener("keydown",(e)=>{if(e.defaultPrevented||e.isComposing)return;if(e.key==="ArrowDown"||e.key==="ArrowUp"){move(e.key==="ArrowDown"?1:-1)}else if(e.key==="Enter"){if(!list.hidden){choose(active>=0?active:0)}}else if(e.key==="Escape"){cancelNavigation();sequence++;clearTimeout(timer);if(list.hidden){input.value=""}
505
505
  close()}else{return}
506
506
  e.preventDefault()});input.addEventListener("blur",()=>{cancelNavigation();sequence++;clearTimeout(timer);clearTimeout(blurTimer);blurTimer=setTimeout(close,150)});this.cancelSearch=()=>{cancelNavigation();sequence++;clearTimeout(timer);clearTimeout(blurTimer);hits=[];close()};box.appendChild(input);box.appendChild(list);box.appendChild(status);bar.appendChild(box);this.searchInput=input}});function watchFlyout(anchorElement,panel,isOpen){const position=()=>{if(!isOpen())return;const anchor=anchorElement.getBoundingClientRect(),fixed=getComputedStyle(panel).position==="fixed";const below=Math.max(0,global.innerHeight-anchor.bottom-8);const above=Math.max(0,anchor.top-8);const opensAbove=below<120&&above>below,room=opensAbove?above:below;panel.style.maxHeight=(panel.classList.contains("cx-fb")?room:Math.min(320,room))+ "px";panel.style.top=opensAbove?"auto":fixed?anchor.bottom+"px":"100%";panel.style.bottom=opensAbove?fixed?global.innerHeight-anchor.top+"px":"100%":"auto";const width=panel.getBoundingClientRect().width;panel.style.left=Math.max(8,Math.min(anchor.left,global.innerWidth-width-8))-(fixed?0:anchor.left)+ "px"};global.addEventListener("resize",position);global.addEventListener("scroll",position,true);return{position,dispose:()=>{global.removeEventListener("resize",position);global.removeEventListener("scroll",position,true)}}}
507
- const PART_URL=typeof document!=="undefined"&&document.currentScript?.src;const PARTS={"tree-tools":["1e7e68d65a0c7aeb","canopyx-tree-tools.6f6db0b476335e64.js","canopyx-tree-tools.ef7a3fb9c9115a82.css"],"export":["8b99c0b7b0ec37c5","canopyx-export.6989ea36f5d6da7b.js"],"links":["f1ab7e32b501ce37","canopyx-links.d96addeefb3eccf5.js"],"search":["521eebd6e1bbbd35","canopyx-search.14c69f4551c69f23.js"],"link":["fa0c9e888463553b","canopyx-link.4ec39bc39fa6cf50.js","canopyx-link.8435c892613926ac.css"],"highlight":["f39423961654c1e2","canopyx-highlight.a6f93893d36ab343.js","canopyx-highlight.5b6d2e0d979f9f9b.css"],"layouts":["fa8c686f21626884","canopyx-layouts.e7250c82a6abf52e.js","canopyx-layouts.0b75738924533ee8.css"],"record-panel":["bcc06276c7933af6","canopyx-record-panel.a374fb4254f9115c.js","canopyx-record-panel.f3691d54cefaab04.css"]},PART_CODE=new Map(),partName=name=>typeof name==="string"&&/^[a-z][a-z\d-]{0,31}$/.test(name);
507
+ const PART_URL=typeof document!=="undefined"&&document.currentScript?.src;const PARTS={"tree-tools":["4c6c4101089c4444","canopyx-tree-tools.510207e8f47014fd.js","canopyx-tree-tools.ef7a3fb9c9115a82.css"],"export":["8b99c0b7b0ec37c5","canopyx-export.6989ea36f5d6da7b.js"],"links":["f1ab7e32b501ce37","canopyx-links.d96addeefb3eccf5.js"],"search":["521eebd6e1bbbd35","canopyx-search.14c69f4551c69f23.js"],"link":["fa0c9e888463553b","canopyx-link.4ec39bc39fa6cf50.js","canopyx-link.8435c892613926ac.css"],"highlight":["f39423961654c1e2","canopyx-highlight.a6f93893d36ab343.js","canopyx-highlight.5b6d2e0d979f9f9b.css"],"layouts":["fa8c686f21626884","canopyx-layouts.e7250c82a6abf52e.js","canopyx-layouts.0b75738924533ee8.css"],"record-panel":["bcc06276c7933af6","canopyx-record-panel.a374fb4254f9115c.js","canopyx-record-panel.f3691d54cefaab04.css"]},PART_CODE=new Map(),partName=name=>typeof name==="string"&&/^[a-z][a-z\d-]{0,31}$/.test(name);
508
508
  function registerPart(name,part){if(!partName(name)||!part||typeof part.version!=="string"||typeof part.install!=="function"||
509
509
  part.requires!==undefined&&!(Array.isArray(part.requires)&&part.requires.every(partName)))throw new Error("CanopyX: invalid part.");PART_CODE.set(name,part)}
510
510
  function definePart(View,name,label,context){const parts=View.prototype.parts||={};return parts[name]={name,label,context,parts}}
@@ -740,5 +740,5 @@ watcher.observe(host)}
740
740
  function mount(root,automatic){const scope=root||document;const created=[];const showError=(host,err,api,view)=>{if(api){api.destroy();if(host.canopyx===api)delete host.canopyx}
741
741
  const message=err&&err.message?err.message:String(err);let labels=DEFAULT_LABELS;for(const attempt of[()=>labelsFor(view&&view.labels,view&&configured.has(view.id)?configured.get(view.id).labels:null),()=>labelsFor(view&&view.labels)]){try{labels=attempt();break}catch(e){labels=DEFAULT_LABELS}}
742
742
  const notice=document.createElement("div");notice.className="cx-mount-error";notice.setAttribute("role","alert");setText(notice,fill(labels.mountError,{error:message}));host.classList.add("cx-host");host.setAttribute("data-canopyx-mounted","true");host.setAttribute("data-cx-error",message);host.appendChild(notice);if(global.console)global.console.error(err)};const selector="[data-canopyx-host]:not([data-canopyx-mounted])";(scope.matches?.(selector)?[scope]:scope.querySelectorAll(selector)).forEach((host)=>{const config=host.querySelector("script.cx-config"),mode=host.getAttribute("data-cx-mount");if(!config||(automatic===true&&mode==="manual")){return}
743
- if(mode==="visible"&&host!==scope&&global.IntersectionObserver)return mountWhenVisible(host);watcher?.unobserve(host);host.setAttribute("data-canopyx-mounted","true");let view=null;try{view=JSON.parse(config.textContent);if(view===Object(view))parsedViews.add(view);const flow=view&&view.kind==="flow"&&typeof FLOW_API==="object",matrix=view&&view.type==="matrix"&&typeof MATRIX_API==="object";const create=flow?FLOW_API.createFlow:matrix?MATRIX_API.createMatrix:view&&view.type==="grid"&&typeof createDataGrid==="function"?createDataGrid:createTreeGrid;const api=create(host,Object.assign({},view&&configured.get(view.id),flow?{flow:view}:{view}));created.push(api);api.ready.catch((err)=>{if(view.type!=="grid"&&!matrix&&activeGrids.get(host)===api&&host.canopyx===api)showError(host,err,api,view)})}catch(err){showError(host,err,null,view)}});return created}
744
- global.CanopyX=Object.freeze(Object.assign({protocol:PROTOCOL,createTreeGrid,configure,unconfigure,mount:(root)=>mount(root,false),sources:Object.freeze({inline:inlineSource,sidecar:sidecarSource,remote:remoteSource}),badge:hostBadge,labels:DEFAULT_LABELS,registerExportFormat,use,registerPart,setNonce},typeof GRID_API==="object"?GRID_API:{},typeof FLOW_API==="object"?FLOW_API:{},typeof MATRIX_API==="object"?MATRIX_API:{}));const navigation=global.performance&&performance.getEntriesByType?performance.getEntriesByType("navigation")[0]:null;if(document.readyState==="loading"||(document.readyState==="interactive"&&navigation&&navigation.domContentLoadedEventStart===0)){document.addEventListener("DOMContentLoaded",()=>mount(document,true))}else{mount(document,true)}})(typeof window!=="undefined"?window:this);
743
+ if(mode==="visible"&&host!==scope&&global.IntersectionObserver)return mountWhenVisible(host);watcher?.unobserve(host);host.setAttribute("data-canopyx-mounted","true");let view=null;try{view=JSON.parse(config.textContent);if(view===Object(view))parsedViews.add(view);const flow=view&&view.kind==="flow"&&typeof FLOW_API==="object",matrix=view&&view.type==="matrix"&&typeof MATRIX_API==="object";const change=view&&typeof CHANGE_VIEW_TYPES==="object"&&Object.hasOwn(CHANGE_VIEW_TYPES,view.type)?CHANGE_VIEW_TYPES[view.type]:null;const create=flow?FLOW_API.createFlow:matrix?MATRIX_API.createMatrix:change?change:view&&view.type==="grid"&&typeof createDataGrid==="function"?createDataGrid:createTreeGrid;const api=create(host,Object.assign({},view&&configured.get(view.id),flow?{flow:view}:{view}));created.push(api);api.ready.catch((err)=>{if(view.type!=="grid"&&!matrix&&!change&&activeGrids.get(host)===api&&host.canopyx===api)showError(host,err,api,view)})}catch(err){showError(host,err,null,view)}});return created}
744
+ global.CanopyX=Object.freeze(Object.assign({protocol:PROTOCOL,createTreeGrid,configure,unconfigure,mount:(root)=>mount(root,false),sources:Object.freeze({inline:inlineSource,sidecar:sidecarSource,remote:remoteSource}),badge:hostBadge,labels:DEFAULT_LABELS,registerExportFormat,use,registerPart,setNonce},typeof GRID_API==="object"?GRID_API:{},typeof FLOW_API==="object"?FLOW_API:{},typeof MATRIX_API==="object"?MATRIX_API:{},typeof CHANGES_API==="object"?CHANGES_API:{}));const navigation=global.performance&&performance.getEntriesByType?performance.getEntriesByType("navigation")[0]:null;if(document.readyState==="loading"||(document.readyState==="interactive"&&navigation&&navigation.domContentLoadedEventStart===0)){document.addEventListener("DOMContentLoaded",()=>mount(document,true))}else{mount(document,true)}})(typeof window!=="undefined"?window:this);
@@ -12,6 +12,7 @@ const labels = Object.freeze({
12
12
  searchWordTooShort: "Ein Wort mit mindestens {min} Zeichen eingeben",
13
13
  searchFailed: "Suche fehlgeschlagen: {error}",
14
14
  columns: "Spalten",
15
+ hiddenColumns: "[one]+{count} Spalte[other]+{count} Spalten",
15
16
  gridFilters: "Filter",
16
17
  gridFitContent: "An Inhalt anpassen",
17
18
  gridUnpin: "Fixierung aufheben",
@@ -244,7 +245,7 @@ const labels = Object.freeze({
244
245
  gridExportCancelled: "Export abgebrochen",
245
246
  gridCancelExport: "Export abbrechen",
246
247
  gridPrint: "Drucken",
247
- gridCloseRecord: "Datensatzdetails schließen",
248
+ gridCloseRecord: "Schließen",
248
249
  gridContains: "enthält",
249
250
  gridStartsWith: "beginnt mit",
250
251
  gridIn: "ist einer der Werte",
@@ -689,13 +690,86 @@ const labels = Object.freeze({
689
690
  matrixItemTotal: "{item}: {count}",
690
691
  matrixExpandGroup: "{group} aufklappen",
691
692
  matrixCollapseGroup: "{group} zuklappen",
692
- matrixGroupCount: "Elemente: {count}",
693
+ matrixGroupCount: "{count}",
694
+ matrixCellCount: "Zellen: {count}",
693
695
  matrixDetails: "Details",
694
696
  matrixClose: "Schließen",
695
697
  matrixValue: "Wert",
696
698
  matrixState: "Zustand",
697
699
  matrixAllClear: "Nichts erfordert Aufmerksamkeit",
698
700
  matrixShowMore: "Mehr anzeigen",
701
+ changeInline: "Inline",
702
+ changeSplit: "Nebeneinander",
703
+ changeLayout: "Ansicht",
704
+ changeCopyDiff: "Diff kopieren",
705
+ changeCopied: "Kopiert",
706
+ changeCopyFailed: "Kopieren nicht möglich",
707
+ changeNext: "Nächste Änderung",
708
+ changePrevious: "Vorherige Änderung",
709
+ changePosition: "Änderung {index} von {count}",
710
+ changeShowLines: "[one]{count} weitere Zeile anzeigen[other]{count} weitere Zeilen anzeigen",
711
+ changeHiddenLines: "[one]{count} unveränderte Zeile nicht enthalten[other]{count} unveränderte Zeilen nicht enthalten",
712
+ changeLineCounts: "Hinzugefügte Zeilen: {added}, entfernte: {removed}",
713
+ changeLineAdded: "Hinzugefügte Zeile {line}",
714
+ changeLineRemoved: "Entfernte Zeile {line}",
715
+ changeLineContext: "Zeile {line}",
716
+ changeBefore: "Vorher",
717
+ changeAfter: "Nachher",
718
+ changeBinary: "Binärdatei: nach Größe und Hash verglichen, nicht zeilenweise.",
719
+ changeUnavailable: "Der Inhalt dieser Datei ist nicht verfügbar.",
720
+ changeIdentical: "Der Text hat sich nicht geändert.",
721
+ changeTruncated: "Einige Änderungen fehlen: Der Vergleich war zu groß.",
722
+ changeTooLarge: "Diese Texte sind zu lang, um sie hier zu vergleichen.",
723
+ changeDiffOf: "Änderungen in {name}",
724
+ changeAdded: "Hinzugefügt",
725
+ changeRemoved: "Entfernt",
726
+ changeModified: "Geändert",
727
+ changeRenamed: "Umbenannt",
728
+ changeFlaggedOnly: "Nur markierte",
729
+ changeFlaggedCount: "{count} markiert",
730
+ changeNoItems: "Keine Änderungen anzuzeigen.",
731
+ changeSize: "Größe",
732
+ changeHash: "Hash",
733
+ changeTime: "Zeit",
734
+ changeCopyHash: "Vollständigen Hash kopieren",
735
+ changeDetails: "Details zu {name}",
736
+ changeFileCount: "[one]{count} Datei[other]{count} Dateien",
737
+ changeFrom: "von {path}",
738
+ changeShowMore: "Mehr anzeigen",
739
+ changeFlags: "Markierungen",
740
+ changeFacts: "Details",
741
+ changeRoot: "Oberste Ebene",
742
+ changeShown: "{shown} von {total} angezeigt",
743
+ changeFilter: "Änderungen anzeigen",
744
+ changeActions: "Aktionen für {name}",
745
+ changeConverged: "Konvergiert",
746
+ changePropagating: "Wird repliziert",
747
+ changeFault: "Fehler",
748
+ changeUnknown: "Unbekannt",
749
+ changeReplica: "Replikat",
750
+ changeState: "Zustand",
751
+ changeFirstSeen: "Zuerst gesehen",
752
+ changeLastSeen: "Zuletzt gesehen",
753
+ changeTimeline: "Verzögerung",
754
+ changeNotSeen: "Noch nicht gesehen",
755
+ changeDelay: "+{duration}",
756
+ changeSource: "Quelle",
757
+ changeProgress: "{converged} von {total} haben die Änderung",
758
+ changeSeconds: "{count} s",
759
+ changeMinutes: "{count} Min.",
760
+ changeHours: "{count} Std.",
761
+ changeDays: "{count} T.",
762
+ changeUtcTime: "{time} UTC",
763
+ changeExportCsv: "CSV exportieren",
764
+ changeExportJson: "JSON exportieren",
765
+ changeReason: "Grund",
766
+ changeReasonHint: "{action}: Begründen Sie die Aktion. Der Grund wird mit ihr gespeichert.",
767
+ changeReasonRequired: "Geben Sie zuerst einen Grund ein.",
768
+ changeCancel: "Abbrechen",
769
+ changeUnclaimed: "Diese Seite kann „{action}“ nicht selbst ausführen. Kopieren Sie die Anfrage, um sie weiterzugeben.",
770
+ changeCopyRequest: "Anfrage kopieren",
771
+ changeFiltered: "Gefiltert: {filters}",
772
+ changePrintLimit: "{count} weitere Zeilen werden nicht gedruckt.",
699
773
  });
700
774
  const staticLabels = Object.freeze({
701
775
  overflowNote: "{shown} Zeilen angezeigt. Gesamtzahl: {total}.",
@@ -12,6 +12,7 @@ const labels = Object.freeze({
12
12
  searchWordTooShort: "Escriba una palabra de al menos {min} caracteres",
13
13
  searchFailed: "Error al buscar: {error}",
14
14
  columns: "Columnas",
15
+ hiddenColumns: "[one]+{count} columna[other]+{count} columnas",
15
16
  gridFilters: "Filtros",
16
17
  gridFitContent: "Ajustar al contenido",
17
18
  gridUnpin: "Desfijar",
@@ -244,7 +245,7 @@ const labels = Object.freeze({
244
245
  gridExportCancelled: "Exportación cancelada",
245
246
  gridCancelExport: "Cancelar exportación",
246
247
  gridPrint: "Imprimir",
247
- gridCloseRecord: "Cerrar detalles del registro",
248
+ gridCloseRecord: "Cerrar",
248
249
  gridContains: "contiene",
249
250
  gridStartsWith: "empieza por",
250
251
  gridIn: "es uno de estos valores",
@@ -689,13 +690,86 @@ const labels = Object.freeze({
689
690
  matrixItemTotal: "{item}: {count}",
690
691
  matrixExpandGroup: "Expandir {group}",
691
692
  matrixCollapseGroup: "Contraer {group}",
692
- matrixGroupCount: "Elementos: {count}",
693
+ matrixGroupCount: "{count}",
694
+ matrixCellCount: "Celdas: {count}",
693
695
  matrixDetails: "Detalles",
694
696
  matrixClose: "Cerrar",
695
697
  matrixValue: "Valor",
696
698
  matrixState: "Estado",
697
699
  matrixAllClear: "Nada requiere atención",
698
700
  matrixShowMore: "Mostrar más",
701
+ changeInline: "En línea",
702
+ changeSplit: "En paralelo",
703
+ changeLayout: "Diseño",
704
+ changeCopyDiff: "Copiar diff",
705
+ changeCopied: "Copiado",
706
+ changeCopyFailed: "No se pudo copiar",
707
+ changeNext: "Siguiente cambio",
708
+ changePrevious: "Cambio anterior",
709
+ changePosition: "Cambio {index} de {count}",
710
+ changeShowLines: "[one]Mostrar {count} línea más[other]Mostrar {count} líneas más",
711
+ changeHiddenLines: "[one]{count} línea sin cambios no incluida[other]{count} líneas sin cambios no incluidas",
712
+ changeLineCounts: "Líneas añadidas: {added}, eliminadas: {removed}",
713
+ changeLineAdded: "Línea añadida {line}",
714
+ changeLineRemoved: "Línea eliminada {line}",
715
+ changeLineContext: "Línea {line}",
716
+ changeBefore: "Antes",
717
+ changeAfter: "Después",
718
+ changeBinary: "Archivo binario: se compara por tamaño y hash, no por líneas.",
719
+ changeUnavailable: "El contenido de este archivo no está disponible.",
720
+ changeIdentical: "El texto no cambió.",
721
+ changeTruncated: "Algunos cambios no se muestran: la comparación era demasiado grande.",
722
+ changeTooLarge: "Estos textos son demasiado largos para compararlos aquí.",
723
+ changeDiffOf: "Cambios en {name}",
724
+ changeAdded: "Añadido",
725
+ changeRemoved: "Eliminado",
726
+ changeModified: "Modificado",
727
+ changeRenamed: "Renombrado",
728
+ changeFlaggedOnly: "Solo marcados",
729
+ changeFlaggedCount: "{count} marcados",
730
+ changeNoItems: "No hay cambios que mostrar.",
731
+ changeSize: "Tamaño",
732
+ changeHash: "Hash",
733
+ changeTime: "Hora",
734
+ changeCopyHash: "Copiar el hash completo",
735
+ changeDetails: "Detalles de {name}",
736
+ changeFileCount: "[one]{count} archivo[other]{count} archivos",
737
+ changeFrom: "desde {path}",
738
+ changeShowMore: "Mostrar más",
739
+ changeFlags: "Marcas",
740
+ changeFacts: "Detalles",
741
+ changeRoot: "Nivel superior",
742
+ changeShown: "{shown} de {total} mostrados",
743
+ changeFilter: "Mostrar cambios",
744
+ changeActions: "Acciones para {name}",
745
+ changeConverged: "Convergido",
746
+ changePropagating: "Propagándose",
747
+ changeFault: "Fallo",
748
+ changeUnknown: "Desconocido",
749
+ changeReplica: "Réplica",
750
+ changeState: "Estado",
751
+ changeFirstSeen: "Visto por primera vez",
752
+ changeLastSeen: "Visto por última vez",
753
+ changeTimeline: "Retraso",
754
+ changeNotSeen: "Aún no visto",
755
+ changeDelay: "+{duration}",
756
+ changeSource: "Origen",
757
+ changeProgress: "{converged} de {total} tienen el cambio",
758
+ changeSeconds: "{count} s",
759
+ changeMinutes: "{count} min",
760
+ changeHours: "{count} h",
761
+ changeDays: "{count} d",
762
+ changeUtcTime: "{time} UTC",
763
+ changeExportCsv: "Exportar CSV",
764
+ changeExportJson: "Exportar JSON",
765
+ changeReason: "Motivo",
766
+ changeReasonHint: "{action}: indique el motivo. El motivo se guarda con la acción.",
767
+ changeReasonRequired: "Indique primero un motivo.",
768
+ changeCancel: "Cancelar",
769
+ changeUnclaimed: "Esta página no puede realizar «{action}» por sí misma. Copie la solicitud para transmitirla.",
770
+ changeCopyRequest: "Copiar solicitud",
771
+ changeFiltered: "Filtrado: {filters}",
772
+ changePrintLimit: "{count} líneas más no se imprimen.",
699
773
  });
700
774
  const staticLabels = Object.freeze({
701
775
  overflowNote: "Filas mostradas: {shown}. Total: {total}.",
@@ -12,6 +12,7 @@ const labels = Object.freeze({
12
12
  searchWordTooShort: "Saisissez un mot d'au moins {min} caractères",
13
13
  searchFailed: "Échec de la recherche : {error}",
14
14
  columns: "Colonnes",
15
+ hiddenColumns: "[one]+{count} colonne[other]+{count} colonnes",
15
16
  gridFilters: "Filtres",
16
17
  gridFitContent: "Ajuster au contenu",
17
18
  gridUnpin: "Désépingler",
@@ -244,7 +245,7 @@ const labels = Object.freeze({
244
245
  gridExportCancelled: "Exportation annulée",
245
246
  gridCancelExport: "Annuler l'exportation",
246
247
  gridPrint: "Imprimer",
247
- gridCloseRecord: "Fermer les détails de l'enregistrement",
248
+ gridCloseRecord: "Fermer",
248
249
  gridContains: "contient",
249
250
  gridStartsWith: "commence par",
250
251
  gridIn: "est l'une des valeurs",
@@ -689,13 +690,86 @@ const labels = Object.freeze({
689
690
  matrixItemTotal: "{item} : {count}",
690
691
  matrixExpandGroup: "Développer {group}",
691
692
  matrixCollapseGroup: "Réduire {group}",
692
- matrixGroupCount: "Éléments : {count}",
693
+ matrixGroupCount: "{count}",
694
+ matrixCellCount: "Cellules : {count}",
693
695
  matrixDetails: "Détails",
694
696
  matrixClose: "Fermer",
695
697
  matrixValue: "Valeur",
696
698
  matrixState: "État",
697
699
  matrixAllClear: "Rien à examiner",
698
700
  matrixShowMore: "Afficher plus",
701
+ changeInline: "En ligne",
702
+ changeSplit: "Côte à côte",
703
+ changeLayout: "Disposition",
704
+ changeCopyDiff: "Copier le diff",
705
+ changeCopied: "Copié",
706
+ changeCopyFailed: "Copie impossible",
707
+ changeNext: "Modification suivante",
708
+ changePrevious: "Modification précédente",
709
+ changePosition: "Modification {index} sur {count}",
710
+ changeShowLines: "[one]Afficher {count} ligne de plus[other]Afficher {count} lignes de plus",
711
+ changeHiddenLines: "[one]{count} ligne inchangée non incluse[other]{count} lignes inchangées non incluses",
712
+ changeLineCounts: "Lignes ajoutées : {added}, supprimées : {removed}",
713
+ changeLineAdded: "Ligne ajoutée {line}",
714
+ changeLineRemoved: "Ligne supprimée {line}",
715
+ changeLineContext: "Ligne {line}",
716
+ changeBefore: "Avant",
717
+ changeAfter: "Après",
718
+ changeBinary: "Fichier binaire : comparé par taille et empreinte, pas par lignes.",
719
+ changeUnavailable: "Le contenu de ce fichier n'est pas disponible.",
720
+ changeIdentical: "Le texte n'a pas changé.",
721
+ changeTruncated: "Certaines modifications ne sont pas affichées : la comparaison était trop grande.",
722
+ changeTooLarge: "Ces textes sont trop longs pour être comparés ici.",
723
+ changeDiffOf: "Modifications dans {name}",
724
+ changeAdded: "Ajouté",
725
+ changeRemoved: "Supprimé",
726
+ changeModified: "Modifié",
727
+ changeRenamed: "Renommé",
728
+ changeFlaggedOnly: "Signalés uniquement",
729
+ changeFlaggedCount: "Signalés : {count}",
730
+ changeNoItems: "Aucune modification à afficher.",
731
+ changeSize: "Taille",
732
+ changeHash: "Empreinte",
733
+ changeTime: "Heure",
734
+ changeCopyHash: "Copier l'empreinte complète",
735
+ changeDetails: "Détails de {name}",
736
+ changeFileCount: "[one]{count} fichier[other]{count} fichiers",
737
+ changeFrom: "depuis {path}",
738
+ changeShowMore: "Afficher plus",
739
+ changeFlags: "Signalements",
740
+ changeFacts: "Détails",
741
+ changeRoot: "Niveau supérieur",
742
+ changeShown: "{shown} sur {total} affichés",
743
+ changeFilter: "Afficher les modifications",
744
+ changeActions: "Actions pour {name}",
745
+ changeConverged: "Convergé",
746
+ changePropagating: "En propagation",
747
+ changeFault: "Défaut",
748
+ changeUnknown: "Inconnu",
749
+ changeReplica: "Réplica",
750
+ changeState: "État",
751
+ changeFirstSeen: "Vu pour la première fois",
752
+ changeLastSeen: "Vu pour la dernière fois",
753
+ changeTimeline: "Délai",
754
+ changeNotSeen: "Pas encore vu",
755
+ changeDelay: "+{duration}",
756
+ changeSource: "Source",
757
+ changeProgress: "{converged} sur {total} ont la modification",
758
+ changeSeconds: "{count} s",
759
+ changeMinutes: "{count} min",
760
+ changeHours: "{count} h",
761
+ changeDays: "{count} j",
762
+ changeUtcTime: "{time} UTC",
763
+ changeExportCsv: "Exporter en CSV",
764
+ changeExportJson: "Exporter en JSON",
765
+ changeReason: "Motif",
766
+ changeReasonHint: "{action} : indiquez le motif. Le motif est conservé avec l'action.",
767
+ changeReasonRequired: "Indiquez d'abord un motif.",
768
+ changeCancel: "Annuler",
769
+ changeUnclaimed: "Cette page ne peut pas exécuter « {action} » elle-même. Copiez la demande pour la transmettre.",
770
+ changeCopyRequest: "Copier la demande",
771
+ changeFiltered: "Filtré : {filters}",
772
+ changePrintLimit: "{count} lignes de plus ne sont pas imprimées.",
699
773
  });
700
774
  const staticLabels = Object.freeze({
701
775
  overflowNote: "{shown} lignes affichées sur {total}.",
@@ -12,6 +12,7 @@ const labels = Object.freeze({
12
12
  searchWordTooShort: "Digita una parola di almeno {min} caratteri",
13
13
  searchFailed: "Ricerca non riuscita: {error}",
14
14
  columns: "Colonne",
15
+ hiddenColumns: "[one]+{count} colonna[other]+{count} colonne",
15
16
  gridFilters: "Filtri",
16
17
  gridFitContent: "Adatta al contenuto",
17
18
  gridUnpin: "Sblocca",
@@ -244,7 +245,7 @@ const labels = Object.freeze({
244
245
  gridExportCancelled: "Esportazione annullata",
245
246
  gridCancelExport: "Annulla esportazione",
246
247
  gridPrint: "Stampa",
247
- gridCloseRecord: "Chiudi i dettagli del record",
248
+ gridCloseRecord: "Chiudi",
248
249
  gridContains: "contiene",
249
250
  gridStartsWith: "inizia con",
250
251
  gridIn: "è uno tra",
@@ -689,13 +690,86 @@ const labels = Object.freeze({
689
690
  matrixItemTotal: "{item}: {count}",
690
691
  matrixExpandGroup: "Espandi {group}",
691
692
  matrixCollapseGroup: "Comprimi {group}",
692
- matrixGroupCount: "Elementi: {count}",
693
+ matrixGroupCount: "{count}",
694
+ matrixCellCount: "Celle: {count}",
693
695
  matrixDetails: "Dettagli",
694
696
  matrixClose: "Chiudi",
695
697
  matrixValue: "Valore",
696
698
  matrixState: "Stato",
697
699
  matrixAllClear: "Niente richiede attenzione",
698
700
  matrixShowMore: "Mostra altro",
701
+ changeInline: "In linea",
702
+ changeSplit: "Affiancato",
703
+ changeLayout: "Layout",
704
+ changeCopyDiff: "Copia diff",
705
+ changeCopied: "Copiato",
706
+ changeCopyFailed: "Impossibile copiare",
707
+ changeNext: "Modifica successiva",
708
+ changePrevious: "Modifica precedente",
709
+ changePosition: "Modifica {index} di {count}",
710
+ changeShowLines: "[one]Mostra {count} altra riga[other]Mostra altre {count} righe",
711
+ changeHiddenLines: "[one]{count} riga invariata non inclusa[other]{count} righe invariate non incluse",
712
+ changeLineCounts: "Righe aggiunte: {added}, rimosse: {removed}",
713
+ changeLineAdded: "Riga aggiunta {line}",
714
+ changeLineRemoved: "Riga rimossa {line}",
715
+ changeLineContext: "Riga {line}",
716
+ changeBefore: "Prima",
717
+ changeAfter: "Dopo",
718
+ changeBinary: "File binario: confrontato per dimensione e hash, non per righe.",
719
+ changeUnavailable: "Il contenuto di questo file non è disponibile.",
720
+ changeIdentical: "Il testo non è cambiato.",
721
+ changeTruncated: "Alcune modifiche non sono mostrate: il confronto era troppo grande.",
722
+ changeTooLarge: "Questi testi sono troppo lunghi per essere confrontati qui.",
723
+ changeDiffOf: "Modifiche in {name}",
724
+ changeAdded: "Aggiunto",
725
+ changeRemoved: "Rimosso",
726
+ changeModified: "Modificato",
727
+ changeRenamed: "Rinominato",
728
+ changeFlaggedOnly: "Solo segnalati",
729
+ changeFlaggedCount: "{count} segnalati",
730
+ changeNoItems: "Nessuna modifica da mostrare.",
731
+ changeSize: "Dimensione",
732
+ changeHash: "Hash",
733
+ changeTime: "Ora",
734
+ changeCopyHash: "Copia l'hash completo",
735
+ changeDetails: "Dettagli di {name}",
736
+ changeFileCount: "[one]{count} file[other]{count} file",
737
+ changeFrom: "da {path}",
738
+ changeShowMore: "Mostra altro",
739
+ changeFlags: "Segnalazioni",
740
+ changeFacts: "Dettagli",
741
+ changeRoot: "Livello principale",
742
+ changeShown: "{shown} di {total} mostrati",
743
+ changeFilter: "Mostra modifiche",
744
+ changeActions: "Azioni per {name}",
745
+ changeConverged: "Convergente",
746
+ changePropagating: "In propagazione",
747
+ changeFault: "Errore",
748
+ changeUnknown: "Sconosciuto",
749
+ changeReplica: "Replica",
750
+ changeState: "Stato",
751
+ changeFirstSeen: "Visto per la prima volta",
752
+ changeLastSeen: "Visto per l'ultima volta",
753
+ changeTimeline: "Ritardo",
754
+ changeNotSeen: "Non ancora visto",
755
+ changeDelay: "+{duration}",
756
+ changeSource: "Origine",
757
+ changeProgress: "{converged} su {total} hanno la modifica",
758
+ changeSeconds: "{count} s",
759
+ changeMinutes: "{count} min",
760
+ changeHours: "{count} h",
761
+ changeDays: "{count} g",
762
+ changeUtcTime: "{time} UTC",
763
+ changeExportCsv: "Esporta CSV",
764
+ changeExportJson: "Esporta JSON",
765
+ changeReason: "Motivo",
766
+ changeReasonHint: "{action}: indica il motivo. Il motivo viene conservato con l'azione.",
767
+ changeReasonRequired: "Indica prima un motivo.",
768
+ changeCancel: "Annulla",
769
+ changeUnclaimed: "Questa pagina non può eseguire «{action}» da sola. Copia la richiesta per inoltrarla.",
770
+ changeCopyRequest: "Copia richiesta",
771
+ changeFiltered: "Filtrato: {filters}",
772
+ changePrintLimit: "Altre {count} righe non vengono stampate.",
699
773
  });
700
774
  const staticLabels = Object.freeze({
701
775
  overflowNote: "Righe mostrate: {shown} su {total}.",
@@ -12,6 +12,7 @@ const labels = Object.freeze({
12
12
  searchWordTooShort: "Wpisz słowo o długości co najmniej {min} znaków",
13
13
  searchFailed: "Nie udało się wyszukać: {error}",
14
14
  columns: "Kolumny",
15
+ hiddenColumns: "[one]+{count} kolumna[few]+{count} kolumny[many]+{count} kolumn[other]+{count} kolumny",
15
16
  gridFilters: "Filtry",
16
17
  gridFitContent: "Dopasuj do zawartości",
17
18
  gridUnpin: "Odepnij",
@@ -244,7 +245,7 @@ const labels = Object.freeze({
244
245
  gridExportCancelled: "Eksport anulowany",
245
246
  gridCancelExport: "Anuluj eksport",
246
247
  gridPrint: "Drukuj",
247
- gridCloseRecord: "Zamknij szczegóły rekordu",
248
+ gridCloseRecord: "Zamknij",
248
249
  gridContains: "zawiera",
249
250
  gridStartsWith: "zaczyna się od",
250
251
  gridIn: "jest jedną z wartości",
@@ -689,13 +690,86 @@ const labels = Object.freeze({
689
690
  matrixItemTotal: "{item}: {count}",
690
691
  matrixExpandGroup: "Rozwiń {group}",
691
692
  matrixCollapseGroup: "Zwiń {group}",
692
- matrixGroupCount: "Elementy: {count}",
693
+ matrixGroupCount: "{count}",
694
+ matrixCellCount: "Komórki: {count}",
693
695
  matrixDetails: "Szczegóły",
694
696
  matrixClose: "Zamknij",
695
697
  matrixValue: "Wartość",
696
698
  matrixState: "Stan",
697
699
  matrixAllClear: "Nic nie wymaga uwagi",
698
700
  matrixShowMore: "Pokaż więcej",
701
+ changeInline: "W jednej kolumnie",
702
+ changeSplit: "Obok siebie",
703
+ changeLayout: "Układ",
704
+ changeCopyDiff: "Kopiuj różnice",
705
+ changeCopied: "Skopiowano",
706
+ changeCopyFailed: "Nie udało się skopiować",
707
+ changeNext: "Następna zmiana",
708
+ changePrevious: "Poprzednia zmiana",
709
+ changePosition: "Zmiana {index} z {count}",
710
+ changeShowLines: "[one]Pokaż jeszcze {count} wiersz[few]Pokaż jeszcze {count} wiersze[many]Pokaż jeszcze {count} wierszy[other]Pokaż jeszcze {count} wiersza",
711
+ changeHiddenLines: "[one]{count} niezmieniony wiersz pominięty[few]{count} niezmienione wiersze pominięte[many]{count} niezmienionych wierszy pominiętych[other]{count} niezmienionego wiersza pominięte",
712
+ changeLineCounts: "Dodane wiersze: {added}, usunięte: {removed}",
713
+ changeLineAdded: "Dodany wiersz {line}",
714
+ changeLineRemoved: "Usunięty wiersz {line}",
715
+ changeLineContext: "Wiersz {line}",
716
+ changeBefore: "Przed",
717
+ changeAfter: "Po",
718
+ changeBinary: "Plik binarny: porównany według rozmiaru i skrótu, nie wierszy.",
719
+ changeUnavailable: "Zawartość tego pliku jest niedostępna.",
720
+ changeIdentical: "Tekst się nie zmienił.",
721
+ changeTruncated: "Część zmian nie jest pokazana: porównanie było zbyt duże.",
722
+ changeTooLarge: "Te teksty są zbyt długie, aby je tu porównać.",
723
+ changeDiffOf: "Zmiany w {name}",
724
+ changeAdded: "Dodany",
725
+ changeRemoved: "Usunięty",
726
+ changeModified: "Zmieniony",
727
+ changeRenamed: "Przemianowany",
728
+ changeFlaggedOnly: "Tylko oznaczone",
729
+ changeFlaggedCount: "Oznaczone: {count}",
730
+ changeNoItems: "Brak zmian do pokazania.",
731
+ changeSize: "Rozmiar",
732
+ changeHash: "Skrót",
733
+ changeTime: "Czas",
734
+ changeCopyHash: "Kopiuj pełny skrót",
735
+ changeDetails: "Szczegóły: {name}",
736
+ changeFileCount: "[one]{count} plik[few]{count} pliki[many]{count} plików[other]{count} pliku",
737
+ changeFrom: "z {path}",
738
+ changeShowMore: "Pokaż więcej",
739
+ changeFlags: "Oznaczenia",
740
+ changeFacts: "Szczegóły",
741
+ changeRoot: "Poziom główny",
742
+ changeShown: "Pokazano {shown} z {total}",
743
+ changeFilter: "Pokaż zmiany",
744
+ changeActions: "Akcje dla {name}",
745
+ changeConverged: "Zbieżny",
746
+ changePropagating: "W trakcie replikacji",
747
+ changeFault: "Błąd",
748
+ changeUnknown: "Nieznany",
749
+ changeReplica: "Replika",
750
+ changeState: "Stan",
751
+ changeFirstSeen: "Pierwsze wykrycie",
752
+ changeLastSeen: "Ostatni raport",
753
+ changeTimeline: "Opóźnienie",
754
+ changeNotSeen: "Jeszcze nie wykryto",
755
+ changeDelay: "+{duration}",
756
+ changeSource: "Źródło",
757
+ changeProgress: "Zmianę ma {converged} z {total}",
758
+ changeSeconds: "{count} s",
759
+ changeMinutes: "{count} min",
760
+ changeHours: "{count} godz.",
761
+ changeDays: "{count} d.",
762
+ changeUtcTime: "{time} UTC",
763
+ changeExportCsv: "Eksportuj CSV",
764
+ changeExportJson: "Eksportuj JSON",
765
+ changeReason: "Powód",
766
+ changeReasonHint: "{action}: podaj powód. Powód zostanie zapisany razem z akcją.",
767
+ changeReasonRequired: "Najpierw podaj powód.",
768
+ changeCancel: "Anuluj",
769
+ changeUnclaimed: "Ta strona nie może sama wykonać akcji „{action}”. Skopiuj żądanie, aby je przekazać.",
770
+ changeCopyRequest: "Kopiuj żądanie",
771
+ changeFiltered: "Filtry: {filters}",
772
+ changePrintLimit: "Pominięte w wydruku wiersze: {count}.",
699
773
  });
700
774
  const staticLabels = Object.freeze({
701
775
  overflowNote: "Pokazano {shown} z {total} wierszy.",