diff --git a/assets/ng-doc/indexes.json b/assets/ng-doc/indexes.json new file mode 100644 index 0000000..7f4f83c --- /dev/null +++ b/assets/ng-doc/indexes.json @@ -0,0 +1 @@ +[{"breadcrumbs":["Components","Button"],"pageType":"guide","title":"Button","section":"","route":"components/button","content":"A button is an interface element that allows the user to perform a specific action when clicked."},{"breadcrumbs":["Changelog"],"pageType":"guide","title":"Changelog","section":"Architecture","route":"changelog","fragment":"architecture","content":" Generate angular app & link to github repository Set eslint/prettier configuration & workspace plugins Add deployment CI on github pages (available here) Configure tailwind (w/ custom colors & typography)"},{"breadcrumbs":["Changelog"],"pageType":"guide","title":"Changelog","section":"UI","route":"changelog","fragment":"ui","content":" Adding Application layout (header, router, footer) Adding initial HomePage"},{"breadcrumbs":["Changelog"],"pageType":"guide","title":"Changelog","section":"Components","route":"changelog","fragment":"components","content":" Icon component to render custom icon Icon Material component to display google icons Message component to display information with severity (info, warn, error ..) Notification center (display notification in the root component)"},{"breadcrumbs":["Changelog"],"pageType":"guide","title":"Changelog","section":"Core","route":"changelog","fragment":"core","content":" LocalStorageService NotificationService"},{"breadcrumbs":["Changelog"],"pageType":"guide","title":"Changelog","section":"Core","route":"changelog","fragment":"core","content":"Still in progress !"},{"breadcrumbs":["Components","Icon Material"],"pageType":"guide","title":"Icon Material","section":"","route":"components/icon-material","content":"Simple component to display an icon from material-symbols-outlined font."},{"breadcrumbs":["Components","Icon Material"],"pageType":"guide","title":"Icon Material","section":"","route":"components/icon-material","content":"Refer to the material-symbols-outlined font for the list of available icons.https://fonts.google.com/icons"},{"breadcrumbs":["Components","Icon Material"],"pageType":"guide","title":"Icon Material","section":"Pre requirements","route":"components/icon-material","fragment":"pre-requirements","content":"In order to use this component in your application, you must follow these steps:"},{"breadcrumbs":["Components","Icon Material"],"pageType":"guide","title":"Icon Material","section":"Adding Google font","route":"components/icon-material","fragment":"adding-google-font","content":"Insert the following script in your index.html or angular.json file."},{"breadcrumbs":["Components","Icon Material"],"pageType":"guide","title":"Icon Material","section":"Adding Font variation","route":"components/icon-material","fragment":"adding-font-variation","content":"Simply add this selector to your style.scss file. Adapt this settings to match desired styling. Check https://fonts.google.com/icons options for more information."},{"breadcrumbs":["Components","Icon Material"],"pageType":"guide","title":"Icon Material","section":"That's it đ","route":"components/icon-material","fragment":"thats-it-","content":"You can now start importing this component in your application !"},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"","route":"components/icon","content":"Simple component to display an icon as SVG tag from an svg file located in your assets/icons folder."},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"Pre requirements","route":"components/icon","fragment":"pre-requirements","content":"In order to use this component in your application, you must follow these steps:"},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"Create assets/icons folder","route":"components/icon","fragment":"create-assetsicons-folder","content":"In this folder, you can add all SVG required for your UI. You can also creates sub-folders but be aware, you'll need to format name as folderName/fileName."},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"Create assets/icons folder","route":"components/icon","fragment":"create-assetsicons-folder","content":"Note: With this component, you can control the fill of the SVG by adding some color of the component (works by inheritance)."},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"Import FileService","route":"components/icon","fragment":"import-fileservice","content":"This service helps working with files in general but this component requires getSVG() method. Simply copy paste this service or get isolated method."},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"That's it đ","route":"components/icon","fragment":"thats-it-","content":"You can now start importing this component in your application !"},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"That's it đ","route":"components/icon","fragment":"thats-it-","content":"Ensure that the SVG files in the assets/icons folder are properly named and formatted.The name input should match the file name of the SVG without the .svg extension."},{"breadcrumbs":["Components","Icon"],"pageType":"guide","title":"Icon","section":"That's it đ","route":"components/icon","fragment":"thats-it-","content":"By following these guidelines, you can effectively use the lib-icon component in your Angular application."},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"Current development â°","route":"todo","fragment":"current-development-","content":"Tasks on development scope (more tasks can be found in this repository using TODO Tree -vscode extensions)"},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"modules","route":"todo","fragment":"modules","content":" Platform Dialog Http request"},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"directives","route":"todo","fragment":"directives","content":" Match Media File value accessor"},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"guards","route":"todo","fragment":"guards","content":" Can deactivate"},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"functions","route":"todo","fragment":"functions","content":" Capitalize Clean dash-to-camel-case"},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"Pipes","route":"todo","fragment":"pipes","content":" Trust Html Trust URL Since"},{"breadcrumbs":["Todo"],"pageType":"guide","title":"Todo","section":"UI","route":"todo","fragment":"ui","content":" NotFoundPage ComponentsPage ServicesPage ModulesPage"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Angular Web User Interface đ¨","route":"get-started","fragment":"angular-web-user-interface-","content":"Angular library of components, services & patterns easing development of user interfaces. This is not a framework, nor a cdk, nut simply a collection of components following best practices in angular web development."},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Angular Web User Interface đ¨","route":"get-started","fragment":"angular-web-user-interface-","content":"This repository was created as a model for creating actual application. Feel free to use take any components you want đ"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"Dependency"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"version"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"@angular/core"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"^18.2.0"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"eslint"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"8.57.0"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"jest"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"^29.7.0"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"rxjs"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"~7.8.0"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"tailwind"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"^3.4.13"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"typescript"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"~5.5.2"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Built with đī¸","route":"get-started","fragment":"built-with-ī¸","content":"More dependencies can be found inside package.json."},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"This project contains multiple scripts. Remember to first run npm i in order to load required dependencies. Then you can run any of the scripts below:"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Script"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Description"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"npm run start"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Serves application locally to "},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"https://localhost:4200"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"npm run build"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Builds application in production mode to "},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"dist/ngx-lib/browser"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"npm run watch"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Builds application in development mode and watch for file change"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"npm run test"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Launch unit tests with Jest runner"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"npm run test:watch"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Launch unit tests and watch for files change"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"npm run lint"},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Get Started đ","route":"get-started","fragment":"get-started-","content":"Lint repository with eslint & prettier."},{"breadcrumbs":["Welcome"],"pageType":"guide","title":"Welcome","section":"Versions đ","route":"get-started","fragment":"versions-","content":"A complete changelog can be found in dedicated markdown. Which resume current progress. You can also found what is in the current development inside TODO markdown."}] \ No newline at end of file diff --git a/assets/ng-doc/keywords.json b/assets/ng-doc/keywords.json new file mode 100644 index 0000000..0825242 --- /dev/null +++ b/assets/ng-doc/keywords.json @@ -0,0 +1 @@ +{"*IconPage":{"title":"Icon","path":"components/icon","type":"link"},"*IconPage#pre-requirements":{"title":"Icon [Pre requirements]","path":"components/icon#pre-requirements","type":"link"},"*IconPage#create-assetsicons-folder":{"title":"Icon [Create assets/icons folder]","path":"components/icon#create-assetsicons-folder","type":"link"},"*IconPage#import-fileservice":{"title":"Icon [Import FileService]","path":"components/icon#import-fileservice","type":"link"},"*IconPage#thats-it-":{"title":"Icon [That's it đ]","path":"components/icon#thats-it-","type":"link"},"*IconPage#playground-ī¸":{"title":"Icon [Playground đšī¸]","path":"components/icon#playground-ī¸","type":"link"}} \ No newline at end of file diff --git a/assets/ng-doc/ui-kit/icons/16/arrow-left.svg b/assets/ng-doc/ui-kit/icons/16/arrow-left.svg new file mode 100644 index 0000000..b8adf94 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/arrow-left.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/arrow-right.svg b/assets/ng-doc/ui-kit/icons/16/arrow-right.svg new file mode 100644 index 0000000..d3c51f8 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/arrow-right.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/at-sign.svg b/assets/ng-doc/ui-kit/icons/16/at-sign.svg new file mode 100644 index 0000000..c2b49d7 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/at-sign.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/check.svg b/assets/ng-doc/ui-kit/icons/16/check.svg new file mode 100644 index 0000000..bbd2edb --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/check.svg @@ -0,0 +1,5 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/chevron-right.svg b/assets/ng-doc/ui-kit/icons/16/chevron-right.svg new file mode 100644 index 0000000..69bba34 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/chevron-right.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/chevrons-right.svg b/assets/ng-doc/ui-kit/icons/16/chevrons-right.svg new file mode 100644 index 0000000..c5ae56e --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/chevrons-right.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/code.svg b/assets/ng-doc/ui-kit/icons/16/code.svg new file mode 100644 index 0000000..d985acc --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/code.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/copy.svg b/assets/ng-doc/ui-kit/icons/16/copy.svg new file mode 100644 index 0000000..6344440 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/copy.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/edit-2.svg b/assets/ng-doc/ui-kit/icons/16/edit-2.svg new file mode 100644 index 0000000..99b6361 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/edit-2.svg @@ -0,0 +1,5 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/external-link.svg b/assets/ng-doc/ui-kit/icons/16/external-link.svg new file mode 100644 index 0000000..c18f559 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/external-link.svg @@ -0,0 +1,8 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/home.svg b/assets/ng-doc/ui-kit/icons/16/home.svg new file mode 100644 index 0000000..843e4ba --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/home.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/info.svg b/assets/ng-doc/ui-kit/icons/16/info.svg new file mode 100644 index 0000000..f87919f --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/info.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/link-2.svg b/assets/ng-doc/ui-kit/icons/16/link-2.svg new file mode 100644 index 0000000..8472ac6 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/link-2.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/maximize.svg b/assets/ng-doc/ui-kit/icons/16/maximize.svg new file mode 100644 index 0000000..fc30518 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/ng-doc/ui-kit/icons/16/menu.svg b/assets/ng-doc/ui-kit/icons/16/menu.svg new file mode 100644 index 0000000..28eec19 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/menu.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/minus.svg b/assets/ng-doc/ui-kit/icons/16/minus.svg new file mode 100644 index 0000000..4da2501 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/minus.svg @@ -0,0 +1,5 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/search.svg b/assets/ng-doc/ui-kit/icons/16/search.svg new file mode 100644 index 0000000..eceaa1e --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/search.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/x.svg b/assets/ng-doc/ui-kit/icons/16/x.svg new file mode 100644 index 0000000..614b7af --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/x.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/16/zoom-in.svg b/assets/ng-doc/ui-kit/icons/16/zoom-in.svg new file mode 100644 index 0000000..da4572d --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/zoom-in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/ng-doc/ui-kit/icons/16/zoom-out.svg b/assets/ng-doc/ui-kit/icons/16/zoom-out.svg new file mode 100644 index 0000000..fd678d7 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/16/zoom-out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/ng-doc/ui-kit/icons/24/activity.svg b/assets/ng-doc/ui-kit/icons/24/activity.svg new file mode 100644 index 0000000..669a57a --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/activity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/ng-doc/ui-kit/icons/24/alert-circle.svg b/assets/ng-doc/ui-kit/icons/24/alert-circle.svg new file mode 100644 index 0000000..4ac7b62 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/alert-circle.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/alert-triangle.svg b/assets/ng-doc/ui-kit/icons/24/alert-triangle.svg new file mode 100644 index 0000000..d729e63 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/alert-triangle.svg @@ -0,0 +1,9 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/check.svg b/assets/ng-doc/ui-kit/icons/24/check.svg new file mode 100644 index 0000000..1c20989 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/ng-doc/ui-kit/icons/24/circle.svg b/assets/ng-doc/ui-kit/icons/24/circle.svg new file mode 100644 index 0000000..a372084 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/circle.svg @@ -0,0 +1,5 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/info.svg b/assets/ng-doc/ui-kit/icons/24/info.svg new file mode 100644 index 0000000..8d5d12c --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/info.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/menu.svg b/assets/ng-doc/ui-kit/icons/24/menu.svg new file mode 100644 index 0000000..e93ba79 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/menu.svg @@ -0,0 +1,7 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/moon.svg b/assets/ng-doc/ui-kit/icons/24/moon.svg new file mode 100644 index 0000000..8c906ce --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/moon.svg @@ -0,0 +1,5 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/search.svg b/assets/ng-doc/ui-kit/icons/24/search.svg new file mode 100644 index 0000000..44fbd40 --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/search.svg @@ -0,0 +1,6 @@ + diff --git a/assets/ng-doc/ui-kit/icons/24/sun.svg b/assets/ng-doc/ui-kit/icons/24/sun.svg new file mode 100644 index 0000000..03034db --- /dev/null +++ b/assets/ng-doc/ui-kit/icons/24/sun.svg @@ -0,0 +1,13 @@ + diff --git a/chunk-2DLUYWF7.js b/chunk-2DLUYWF7.js new file mode 100644 index 0000000..6cf3efb --- /dev/null +++ b/chunk-2DLUYWF7.js @@ -0,0 +1,2 @@ +import{a as G,b as N,c as I}from"./chunk-PK2S5CKJ.js";import{a as W}from"./chunk-UGXKMGFK.js";import{A}from"./chunk-KLEKA63L.js";import{$a as T,Fa as y,G as _,I as C,Ja as O,b as J,c as Z,cb as P,h as E,mb as S}from"./chunk-2YKPSI5H.js";import{h as H}from"./chunk-TWZW5B45.js";var rt=H(J(),1),at=H(Z(),1);var X=0,R=function(i,r,t,o,p){let g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};r.points=r.points.filter(e=>!Number.isNaN(e.y));let s=r.points,c=_().x(function(e){return e.x}).y(function(e){return e.y}).curve(C),n=i.append("path").attr("d",c(s)).attr("id","edge"+X).attr("class","relation"),a="";o.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+a+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+a+"#"+g(t.relation.type2)+"End)");let f,h,x=r.points.length,b=T.calcLabelPosition(r.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=T.calcCardinalityPosition(t.relation.type1!=="none",r.points,r.points[0]),d=T.calcCardinalityPosition(t.relation.type2!=="none",r.points,r.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){let e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;let l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),X++},F=function(i,r,t,o){y.debug("Rendering class ",r,t);let p=r.id,g={id:p,label:r.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup"),c;r.link?c=s.append("svg:a").attr("xlink:href",r.link).attr("target",r.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;r.annotations.forEach(function(d){let l=c.append("tspan").text("\xAB"+d+"\xBB");n||l.attr("dy",t.textHeight),n=!1});let a=$(r),f=c.append("tspan").text(a).attr("class","title");n||f.attr("dy",t.textHeight);let h=c.node().getBBox().height,x,b,u;if(r.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);let d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,r.members.forEach(function(l){Y(d,l,n,t),n=!1}),b=d.node().getBBox()}if(r.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);let d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,r.methods.forEach(function(l){Y(d,l,n,t),n=!1})}let m=s.node().getBBox();var w=" ";r.cssClasses.length>0&&(w=w+r.cssClasses.join(" "));let e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),r.tooltip&&c.insert("title").text(r.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},$=function(i){let r=i.id;return i.type&&(r+="<"+O(i.type)+">"),r},U=function(i,r,t,o){y.debug("Rendering note ",r,t);let p=r.id,g={id:p,text:r.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup"),c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0),n=JSON.parse(`"${r.text}"`).split(` +`);n.forEach(function(x){y.debug(`Adding line: ${x}`),c.append("tspan").text(x).attr("class","title").attr("dy",t.textHeight)});let a=s.node().getBBox(),h=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",a.width+2*t.padding).attr("height",a.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return c.node().childNodes.forEach(function(x){x.setAttribute("x",(h-x.getBBox().width)/2)}),g.width=h,g.height=a.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin,g},Y=function(i,r,t,o){let{displayText:p,cssStyle:g}=r.getDisplayDetails(),s=i.append("tspan").attr("x",o.padding).text(p);g!==""&&s.attr("style",r.cssStyle),t||s.attr("dy",o.textHeight)},v={getClassTitleString:$,drawClass:F,drawEdge:R,drawNote:U},M={},B=20,L=function(i){let r=Object.entries(M).find(t=>t[1].label===i);if(r)return r[0]},z=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},V=function(i,r,t,o){let p=S().class;M={},y.info("Rendering diagram "+i);let g=S().securityLevel,s;g==="sandbox"&&(s=E("#i"+r));let c=g==="sandbox"?E(s.nodes()[0].contentDocument.body):E("body"),n=c.select(`[id='${r}']`);z(n);let a=new A({multigraph:!0});a.setGraph({isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}});let f=o.db.getClasses(),h=Object.keys(f);for(let e of h){let d=f[e],l=v.drawClass(n,d,p,o);M[l.id]=l,a.setNode(l.id,l),y.info("Org height: "+l.height)}o.db.getRelations().forEach(function(e){y.info("tjoho"+L(e.id1)+L(e.id2)+JSON.stringify(e)),a.setEdge(L(e.id1),L(e.id2),{relation:e},e.title||"DEFAULT")}),o.db.getNotes().forEach(function(e){y.debug(`Adding note: ${JSON.stringify(e)}`);let d=v.drawNote(n,e,p,o);M[d.id]=d,a.setNode(d.id,d),e.class&&e.class in f&&a.setEdge(e.id,L(e.class),{relation:{id1:e.id,id2:e.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),W(a),a.nodes().forEach(function(e){e!==void 0&&a.node(e)!==void 0&&(y.debug("Node "+e+": "+JSON.stringify(a.node(e))),c.select("#"+(o.db.lookUpDomId(e)||e)).attr("transform","translate("+(a.node(e).x-a.node(e).width/2)+","+(a.node(e).y-a.node(e).height/2)+" )"))}),a.edges().forEach(function(e){e!==void 0&&a.edge(e)!==void 0&&(y.debug("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(a.edge(e))),v.drawEdge(n,a.edge(e),a.edge(e).relation,p,o))});let u=n.node().getBBox(),m=u.width+B*2,w=u.height+B*2;P(n,w,m,p.useMaxWidth);let k=`${u.x-B} ${u.y-B} ${m} ${w}`;y.debug(`viewBox ${k}`),n.attr("viewBox",k)},q={draw:V},nt={parser:G,db:N,renderer:q,styles:I,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,N.clear()}};export{nt as diagram}; diff --git a/chunk-2IUJ2XCY.js b/chunk-2IUJ2XCY.js new file mode 100644 index 0000000..a061eb4 --- /dev/null +++ b/chunk-2IUJ2XCY.js @@ -0,0 +1 @@ +import{a as d}from"./chunk-WEP4G4BU.js";import{Ha as r,Ra as p,U as a,ob as c}from"./chunk-FUUZABHH.js";import"./chunk-TWZW5B45.js";var g='
${e.children.map(t).join("")}
`:`Unsupported markdown: ${e.type}`}return r.map(t).join("")}function Rr(n){return Intl.Segmenter?[...new Intl.Segmenter().segment(n)].map(r=>r.segment):[...n]}function jr(n,r){let t=Rr(r.content);return Kt(n,[],t,r.type)}function Kt(n,r,t,e){if(t.length===0)return[{content:r.join(""),type:e},{content:"",type:e}];let[a,...i]=t,u=[...r,a];return n([{content:u.join(""),type:e}])?Kt(n,u,i,e):(r.length===0&&a&&(r.push(a),t.shift()),[{content:r.join(""),type:e},{content:t.join(""),type:e}])}function Hr(n,r){if(n.some(({content:t})=>t.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return at(n,r)}function at(n,r,t=[],e=[]){if(n.length===0)return e.length>0&&t.push(e),t.length>0?t:[];let a="";n[0].content===" "&&(a=" ",n.shift());let i=n.shift()??{content:" ",type:"normal"},u=[...e];if(a!==""&&u.push({content:a,type:"normal"}),u.push(i),r(u))return at(n,r,t,u);if(e.length>0)t.push(e),n.unshift(i);else if(i.content){let[o,f]=jr(r,i);t.push([o]),f.content&&n.unshift(f)}return at(n,r,t)}function qr(n,r){r&&n.attr("style",r)}function Nr(n,r,t,e,a=!1){let i=n.append("foreignObject"),u=i.append("xhtml:div"),o=r.label,f=r.isNode?"nodeLabel":"edgeLabel";u.html(` + "+o+""),qr(u,r.labelStyle),u.style("display","table-cell"),u.style("white-space","nowrap"),u.style("max-width",t+"px"),u.attr("xmlns","http://www.w3.org/1999/xhtml"),a&&u.attr("class","labelBkg");let m=u.node().getBoundingClientRect();return m.width===t&&(u.style("display","table"),u.style("white-space","break-spaces"),u.style("width",t+"px"),m=u.node().getBoundingClientRect()),i.style("width",m.width),i.style("height",m.height),i.node()}function ot(n,r,t){return n.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",r*t-.1+"em").attr("dy",t+"em")}function Vr(n,r,t){let e=n.append("text"),a=ot(e,1,r);lt(a,t);let i=a.node().getComputedTextLength();return e.remove(),i}function ao(n,r,t){var e;let a=n.append("text"),i=ot(a,1,r);lt(i,[{content:t,type:"normal"}]);let u=(e=i.node())==null?void 0:e.getBoundingClientRect();return u&&a.remove(),u}function Wr(n,r,t,e=!1){let i=r.append("g"),u=i.insert("rect").attr("class","background"),o=i.append("text").attr("y","-10.1"),f=0;for(let m of t){let c=h=>Vr(i,1.1,h)<=n,x=c(m)?[m]:Hr(m,c);for(let h of x){let p=ot(o,f,1.1);lt(p,h),f++}}if(e){let m=o.node().getBBox(),c=2;return u.attr("x",-c).attr("y",-c).attr("width",m.width+2*c).attr("height",m.height+2*c),i.node()}else return o.node()}function lt(n,r){n.text(""),r.forEach((t,e)=>{let a=n.append("tspan").attr("font-style",t.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");e===0?a.text(t.content):a.text(" "+t.content)})}var oo=(n,r="",{style:t="",isTitle:e=!1,classes:a="",useHtmlLabels:i=!0,isNode:u=!0,width:o=200,addSvgBackground:f=!1}={})=>{if(xt.info("createText",r,t,e,a,i,u,f),i){let m=Mr(r),c={isNode:u,label:gt(m).replace(/fa[blrs]?:fa-[\w-]+/g,h=>``),labelStyle:t.replace("fill:","color:")};return Nr(n,c,o,a,f)}else{let m=_r(r);return Wr(o,n,m,f)}};export{ao as a,oo as b}; diff --git a/chunk-5WSNGUVD.js b/chunk-5WSNGUVD.js new file mode 100644 index 0000000..bf9e6d2 --- /dev/null +++ b/chunk-5WSNGUVD.js @@ -0,0 +1,52 @@ +import{a as ve}from"./chunk-UGXKMGFK.js";import{A as Ae}from"./chunk-KLEKA63L.js";import{Fa as ce,G as xe,Na as he,b as We,c as Ke,cb as we,eb as $e,fb as Ve,gb as qe,h as ie,hb as Oe,ib as Le,mb as ue}from"./chunk-2YKPSI5H.js";import{h as Ne}from"./chunk-TWZW5B45.js";var vt=Ne(We(),1),wt=Ne(Ke(),1);var de=function(){var e=function(V,i,n,a){for(n=n||{},a=V.length;a--;n[V[a]]=i);return n},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],g=[1,23],R=[1,24],A=[1,25],T=[1,26],N=[1,27],v=[1,20],k=[1,28],x=[1,29],F=[62,63],ye=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],_e=[1,47],ge=[1,48],Ee=[1,49],Re=[1,50],me=[1,51],Ie=[1,52],be=[1,53],O=[53,54],M=[1,64],D=[1,60],P=[1,61],Y=[1,62],U=[1,63],B=[1,65],z=[1,69],j=[1,70],X=[1,67],J=[1,68],m=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],re={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,n,a,r,f,s,W){var _=s.length-1;switch(f){case 4:this.$=s[_].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[_-3],s[_-4]);break;case 14:r.setNewReqId(s[_-2]);break;case 15:r.setNewReqText(s[_-2]);break;case 16:r.setNewReqRisk(s[_-2]);break;case 17:r.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[_-3]);break;case 34:r.setNewElementType(s[_-2]);break;case 35:r.setNewElementDocRef(s[_-2]);break;case 38:r.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:r.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(F,[2,20]),e(F,[2,21]),e(F,[2,22]),e(F,[2,23]),e(F,[2,24]),e(F,[2,25]),e(ye,[2,49]),e(ye,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:_e,56:ge,57:Ee,58:Re,59:me,60:Ie,61:be},{52:54,55:_e,56:ge,57:Ee,58:Re,59:me,60:Ie,61:be},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(O,[2,40]),e(O,[2,41]),e(O,[2,42]),e(O,[2,43]),e(O,[2,44]),e(O,[2,45]),e(O,[2,46]),{54:[1,58]},{5:M,20:59,21:D,24:P,26:Y,28:U,30:B},{5:z,30:j,46:66,47:X,49:J},{23:71,62:k,63:x},{23:72,62:k,63:x},e(m,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:M,20:77,21:D,24:P,26:Y,28:U,30:B},e(m,[2,19]),e(m,[2,33]),{22:[1,78]},{22:[1,79]},{5:z,30:j,46:80,47:X,49:J},e(m,[2,37]),e(m,[2,38]),e(m,[2,39]),{23:81,62:k,63:x},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(m,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(m,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:M,20:106,21:D,24:P,26:Y,28:U,30:B},{5:M,20:107,21:D,24:P,26:Y,28:U,30:B},{5:M,20:108,21:D,24:P,26:Y,28:U,30:B},{5:M,20:109,21:D,24:P,26:Y,28:U,30:B},{5:z,30:j,46:110,47:X,49:J},{5:z,30:j,46:111,47:X,49:J},e(m,[2,14]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),e(m,[2,34]),e(m,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},parse:function(i){var n=this,a=[0],r=[],f=[null],s=[],W=this.table,_="",Z=0,ke=0,Ue=2,Se=1,Be=s.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,se)&&(L.yy[se]=this.yy[se]);E.setInput(i,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ae=E.yylloc;s.push(ae);var Qe=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function He(){var $;return $=r.pop()||E.lex()||Se,typeof $!="number"&&($ instanceof Array&&(r=$,$=r.pop()),$=n.symbols_[$]||$),$}for(var I,C,S,le,Q={},ee,w,Te,te;;){if(C=a[a.length-1],this.defaultActions[C]?S=this.defaultActions[C]:((I===null||typeof I>"u")&&(I=He()),S=W[C]&&W[C][I]),typeof S>"u"||!S.length||!S[0]){var oe="";te=[];for(ee in W[C])this.terminals_[ee]&&ee>Ue&&te.push("'"+this.terminals_[ee]+"'");E.showPosition?oe="Parse error on line "+(Z+1)+`: +`+E.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[I]||I)+"'":oe="Parse error on line "+(Z+1)+": Unexpected "+(I==Se?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(oe,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:ae,expected:te})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+I);switch(S[0]){case 1:a.push(I),f.push(E.yytext),s.push(E.yylloc),a.push(S[1]),I=null,ke=E.yyleng,_=E.yytext,Z=E.yylineno,ae=E.yylloc;break;case 2:if(w=this.productions_[S[1]][1],Q.$=f[f.length-w],Q._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},Qe&&(Q._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),le=this.performAction.apply(Q,[_,ke,Z,L.yy,S[1],f,s].concat(Be)),typeof le<"u")return le;w&&(a=a.slice(0,-1*w*2),f=f.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[S[1]][0]),f.push(Q.$),s.push(Q._$),Te=W[a[a.length-2]][a[a.length-1]],a.push(Te);break;case 3:return!0}}return!0}},Ye=function(){var V={EOF:1,parseError:function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},setInput:function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+n+"^"},test_match:function(i,n){var a,r,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),r=i[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in f)this[s]=f[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,a,r;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),s=0;sAngular library of components, services & patterns easing development of user interfaces. This is not a framework, nor a cdk, nut simply a collection of components following best practices in angular web development.
This repository was created as a model for creating actual application. Feel free to use take any components you want \u{1F64C}
Dependency | version |
---|---|
@angular/core | ^18.2.0 |
eslint | 8.57.0 |
jest | ^29.7.0 |
rxjs | ~7.8.0 |
tailwind | ^3.4.13 |
typescript | ~5.5.2 |
More dependencies can be found inside package.json.
This project contains multiple scripts. Remember to first run npm i
in order to load required dependencies. Then you can run any of the scripts below:
Script | Description |
---|---|
npm run start | Serves application locally to https://localhost:4200 |
npm run build | Builds application in production mode to dist/ngx-lib/browser |
npm run watch | Builds application in development mode and watch for file change |
npm run test | Launch unit tests with Jest runner |
npm run test:watch | Launch unit tests and watch for files change |
npm run lint | Lint repository with eslint & prettier. |
A complete changelog can be found in dedicated markdown. Which resume current progress. You can also found what is in the current development inside TODO markdown.
Simple component to display an icon as SVG tag from an svg file located in your assets/icons
folder.
In order to use this component in your application, you must follow these steps:
In this folder, you can add all SVG required for your UI. You can also creates sub-folders but be aware, you'll need to format name as folderName/fileName
.
Note: With this component, you can control the fill of the SVG by adding some color of the component (works by inheritance).
This service helps working with files in general but this component requires getSVG() method. Simply copy paste this service or get isolated method.
You can now start importing this component in your application !
assets/icons
folder are properly named and formatted.name
input should match the file name of the SVG without the .svg
extension.By following these guidelines, you can effectively use the lib-icon
component in your Angular application.
=d));F+=2);var V=d-k,G=V/O;G=ya(0,G,1),e=fh(R,M,G),c=zu(R,M);break}}s("labelX",h,e.x),s("labelY",h,e.y),s("labelAutoAngle",h,c)}};u("source"),u("target"),this.applyLabelDimensions(t)}};Gt.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Gt.applyPrefixedLabelDimensions=function(t,e){var r=t._private,a=this.getLabelText(t,e),n=this.calculateLabelDimensions(t,a),i=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,o=At(r.rscratch,"labelWrapCachedLines",e)||[],l=s!=="wrap"?1:Math.max(o.length,1),u=n.height/l,f=u*i,h=n.width,c=n.height+(l-1)*(i-1)*u;Qt(r.rstyle,"labelWidth",e,h),Qt(r.rscratch,"labelWidth",e,h),Qt(r.rstyle,"labelHeight",e,c),Qt(r.rscratch,"labelHeight",e,c),Qt(r.rscratch,"labelLineHeight",e,f)};Gt.getLabelText=function(t,e){var r=t._private,a=e?e+"-":"",n=t.pstyle(a+"label").strValue,i=t.pstyle("text-transform").value,s=function($,q){return q?(Qt(r.rscratch,$,e,q),q):At(r.rscratch,$,e)};if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=t.pstyle("text-wrap").value;if(o==="wrap"){var l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="\u200B",f=n.split(`
+`),h=t.pstyle("text-max-width").pfValue,c=t.pstyle("text-overflow-wrap").value,v=c==="anywhere",d=[],y=/[\s\u200b]+|$/g,p=0;p