lexgui 8.1.2 → 8.2.1

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 (65) hide show
  1. package/build/components/AlertDialog.d.ts +7 -7
  2. package/build/components/Avatar.d.ts +15 -0
  3. package/build/components/Counter.d.ts +9 -9
  4. package/build/components/Dialog.d.ts +20 -20
  5. package/build/components/Footer.d.ts +14 -14
  6. package/build/components/Menubar.d.ts +59 -59
  7. package/build/components/NodeTree.d.ts +26 -1
  8. package/build/components/Vector.d.ts +1 -0
  9. package/build/core/Area.d.ts +143 -143
  10. package/build/core/Event.d.ts +0 -20
  11. package/build/core/Namespace.js +1 -1
  12. package/build/core/Namespace.js.map +1 -1
  13. package/build/core/Panel.d.ts +538 -538
  14. package/build/extensions/AssetView.d.ts +137 -136
  15. package/build/extensions/AssetView.js +193 -155
  16. package/build/extensions/AssetView.js.map +1 -1
  17. package/build/extensions/Audio.js +163 -163
  18. package/build/extensions/Audio.js.map +1 -1
  19. package/build/extensions/CodeEditor.d.ts +358 -350
  20. package/build/extensions/CodeEditor.js +302 -270
  21. package/build/extensions/CodeEditor.js.map +1 -1
  22. package/build/extensions/DocMaker.d.ts +27 -27
  23. package/build/extensions/DocMaker.js +15 -11
  24. package/build/extensions/DocMaker.js.map +1 -1
  25. package/build/extensions/GraphEditor.js +2754 -2760
  26. package/build/extensions/GraphEditor.js.map +1 -1
  27. package/build/extensions/ImUi.js +227 -227
  28. package/build/extensions/Timeline.d.ts +668 -670
  29. package/build/extensions/Timeline.js +71 -79
  30. package/build/extensions/Timeline.js.map +1 -1
  31. package/build/extensions/VideoEditor.d.ts +38 -16
  32. package/build/extensions/VideoEditor.js +294 -180
  33. package/build/extensions/VideoEditor.js.map +1 -1
  34. package/build/extensions/index.d.ts +8 -8
  35. package/build/extensions/index.js +10 -10
  36. package/build/index.all.d.ts +2 -2
  37. package/build/index.css.d.ts +3 -4
  38. package/build/index.d.ts +57 -56
  39. package/build/lexgui.all.js +1877 -1520
  40. package/build/lexgui.all.js.map +1 -1
  41. package/build/lexgui.all.min.js +1 -1
  42. package/build/lexgui.all.module.js +1875 -1516
  43. package/build/lexgui.all.module.js.map +1 -1
  44. package/build/lexgui.all.module.min.js +1 -1
  45. package/build/lexgui.css +6123 -5556
  46. package/build/lexgui.js +997 -814
  47. package/build/lexgui.js.map +1 -1
  48. package/build/lexgui.min.css +2 -3
  49. package/build/lexgui.min.js +1 -1
  50. package/build/lexgui.module.js +995 -810
  51. package/build/lexgui.module.js.map +1 -1
  52. package/build/lexgui.module.min.js +1 -1
  53. package/changelog.md +65 -2
  54. package/demo.js +167 -65
  55. package/examples/all-components.html +40 -55
  56. package/examples/asset-view.html +27 -0
  57. package/examples/code-editor.html +12 -1
  58. package/examples/dialogs.html +13 -2
  59. package/examples/editor.html +9 -49
  60. package/examples/index.html +2 -2
  61. package/examples/side-bar.html +1 -1
  62. package/examples/timeline.html +2 -2
  63. package/examples/video-editor.html +1 -1
  64. package/examples/video-editor2.html +2 -2
  65. package/package.json +7 -4
@@ -1,27 +1,27 @@
1
- export declare class DocMaker {
2
- root: Element;
3
- _listQueued: Element | undefined;
4
- constructor(element?: Element);
5
- setDomTarget(element: Element): void;
6
- lineBreak(target?: Element): void;
7
- header(string: string, type: string, id: string): void;
8
- paragraph(string: string, sup?: boolean, className?: string): void;
9
- code(text: string, language?: string): void;
10
- list(list: any[], type: string, target?: Element): void;
11
- bulletList(list: any[]): void;
12
- numberedList(list: any[]): void;
13
- startCodeBulletList(): void;
14
- endCodeBulletList(): void;
15
- codeListItem(item: any, target?: Element): void;
16
- codeBulletList(list: any[], target?: Element): void;
17
- image(src: string, caption?: string, parent?: Element): void;
18
- images(sources: string[], captions?: string[], width?: string, height?: string): void;
19
- video(src: string, caption?: string, controls?: boolean, autoplay?: boolean): void;
20
- note(text: string, warning?: boolean, title?: string, icon?: string): void;
21
- classCtor(name: string, params: any[], language?: string): void;
22
- classMethod(name: string, desc: string, params: any[], ret?: string): HTMLElement | null;
23
- iLink(text: string, href: string): string;
24
- iPage(text: string, page: string): string | undefined;
25
- iCode(text: string, codeClass?: string): string;
26
- _copySnippet(b: any): void;
27
- }
1
+ export declare class DocMaker {
2
+ root: Element;
3
+ _listQueued: Element | undefined;
4
+ constructor(element?: Element);
5
+ setDomTarget(element: Element): void;
6
+ lineBreak(target?: Element): void;
7
+ header(string: string, type: string, id: string): void;
8
+ paragraph(string: string, sup?: boolean, className?: string): void;
9
+ code(text: string, language?: string): void;
10
+ list(list: any[], type: string, target?: Element): void;
11
+ bulletList(list: any[]): void;
12
+ numberedList(list: any[]): void;
13
+ startCodeBulletList(): void;
14
+ endCodeBulletList(): void;
15
+ codeListItem(item: any, target?: Element): void;
16
+ codeBulletList(list: any[], target?: Element): void;
17
+ image(src: string, caption?: string, parent?: Element): void;
18
+ images(sources: string[], captions?: string[], width?: string, height?: string): void;
19
+ video(src: string, caption?: string, controls?: boolean, autoplay?: boolean): void;
20
+ note(text: string, warning?: boolean, title?: string, icon?: string): void;
21
+ classCtor(name: string, params: any[], language?: string): void;
22
+ classMethod(name: string, desc: string, params: any[], ret?: string): HTMLElement | null;
23
+ iLink(text: string, href: string): string;
24
+ iPage(text: string, page: string): string | undefined;
25
+ iCode(text: string, codeClass?: string): string;
26
+ _copySnippet(b: any): void;
27
+ }
@@ -6,16 +6,19 @@ if (!LX) {
6
6
  throw ('Missing LX namespace!');
7
7
  }
8
8
  LX.extensions.push('DocMaker');
9
- const CPP_KEY_WORDS = ['int', 'float', 'double', 'bool', 'char', 'wchar_t', 'const', 'static_cast', 'dynamic_cast',
10
- 'new', 'delete', 'void', 'true', 'false', 'auto', 'struct', 'typedef', 'nullptr', 'NULL', 'unsigned', 'namespace',
11
- 'auto'];
9
+ const CPP_KEY_WORDS = ['int', 'float', 'double', 'bool', 'char', 'wchar_t', 'const', 'static_cast', 'dynamic_cast', 'new', 'delete', 'void', 'true',
10
+ 'false', 'auto', 'struct', 'typedef', 'nullptr', 'NULL', 'unsigned', 'namespace', 'auto'];
12
11
  const CLASS_WORDS = ['uint32_t', 'uint64_t', 'uint8_t'];
13
- const STATEMENT_WORDS = ['for', 'if', 'else', 'return', 'continue', 'break', 'case', 'switch', 'while', 'import',
14
- 'from', 'await'];
15
- const JS_KEY_WORDS = ['var', 'let', 'const', 'static', 'function', 'null', 'undefined', 'new', 'delete', 'true',
16
- 'false', 'NaN', 'this'];
12
+ const STATEMENT_WORDS = ['for', 'if', 'else', 'return', 'continue', 'break', 'case', 'switch', 'while', 'import', 'from', 'await'];
13
+ const JS_KEY_WORDS = ['var', 'let', 'const', 'static', 'function', 'null', 'undefined', 'new', 'delete', 'true', 'false', 'NaN', 'this'];
17
14
  const HTML_ATTRIBUTES = ['html', 'charset', 'rel', 'src', 'href', 'crossorigin', 'type', 'lang'];
18
- const HTML_TAGS = ['html', 'DOCTYPE', 'head', 'meta', 'title', 'link', 'script', 'body', 'style'];
15
+ const HTML_TAGS = ['DOCTYPE', 'html', 'head', 'body', 'title', 'base', 'link', 'meta', 'style', 'main', 'section', 'nav', 'article', 'aside',
16
+ 'header', 'footer', 'address', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'hr', 'pre', 'blockquote', 'ol', 'ul', 'li', 'dl', 'dt', 'dd', 'figure',
17
+ 'figcaption', 'div', 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn', 'em', 'i', 'kbd', 'mark', 'q', 'rp', 'rt', 'ruby', 's',
18
+ 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr', 'img', 'audio', 'video', 'source', 'track', 'picture', 'map', 'area',
19
+ 'canvas', 'iframe', 'embed', 'object', 'param', 'form', 'label', 'input', 'button', 'select', 'datalist', 'optgroup', 'option', 'textarea',
20
+ 'output', 'progress', 'meter', 'fieldset', 'legend', 'table', 'caption', 'colgroup', 'col', 'tbody', 'thead', 'tfoot', 'tr', 'td', 'th',
21
+ 'details', 'summary', 'dialog', 'script', 'noscript', 'template'];
19
22
  class DocMaker {
20
23
  root;
21
24
  _listQueued = undefined;
@@ -246,9 +249,9 @@ class DocMaker {
246
249
  }
247
250
  note(text, warning = false, title, icon) {
248
251
  console.assert(text !== undefined);
249
- const note = LX.makeContainer([], 'border rounded-lg overflow-hidden text-md fg-secondary my-6', '', this.root);
252
+ const note = LX.makeContainer([], 'border-color rounded-xl overflow-hidden text-sm text-secondary-foreground my-6', '', this.root);
250
253
  let header = document.createElement('div');
251
- header.className = 'flex bg-tertiary font-semibold px-3 py-2 gap-2 fg-secondary';
254
+ header.className = 'flex bg-muted font-semibold px-3 py-2 gap-2 text-secondary-foreground';
252
255
  header.appendChild(LX.makeIcon(icon ?? (warning ? 'MessageSquareWarning' : 'NotepadText')));
253
256
  header.innerHTML += title ?? (warning ? 'Important' : 'Note');
254
257
  note.appendChild(header);
@@ -291,7 +294,7 @@ class DocMaker {
291
294
  }
292
295
  iLink(text, href) {
293
296
  console.assert(text !== undefined && href !== undefined);
294
- return `<a href="${href}">${text}</a>`;
297
+ return `<a class="font-semibold underline-offset-4 hover:underline" href="${href}">${text}</a>`;
295
298
  }
296
299
  iPage(text, page) {
297
300
  console.assert(text !== undefined && page !== undefined);
@@ -322,6 +325,7 @@ class DocMaker {
322
325
  console.log('Copied!');
323
326
  }
324
327
  }
328
+ LX.DocMaker = DocMaker;
325
329
 
326
330
  export { DocMaker };
327
331
  //# sourceMappingURL=DocMaker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocMaker.js","sources":["../../src/extensions/DocMaker.ts"],"sourcesContent":["// DocMaker.ts @jxarco\r\n\r\nimport { LX } from '../core/Namespace';\r\n\r\nif ( !LX )\r\n{\r\n throw ( 'Missing LX namespace!' );\r\n}\r\n\r\nLX.extensions.push( 'DocMaker' );\r\n\r\nconst CPP_KEY_WORDS = [ 'int', 'float', 'double', 'bool', 'char', 'wchar_t', 'const', 'static_cast', 'dynamic_cast',\r\n 'new', 'delete', 'void', 'true', 'false', 'auto', 'struct', 'typedef', 'nullptr', 'NULL', 'unsigned', 'namespace',\r\n 'auto' ];\r\nconst CLASS_WORDS = [ 'uint32_t', 'uint64_t', 'uint8_t' ];\r\nconst STATEMENT_WORDS = [ 'for', 'if', 'else', 'return', 'continue', 'break', 'case', 'switch', 'while', 'import',\r\n 'from', 'await' ];\r\n\r\nconst JS_KEY_WORDS = [ 'var', 'let', 'const', 'static', 'function', 'null', 'undefined', 'new', 'delete', 'true',\r\n 'false', 'NaN', 'this' ];\r\nconst HTML_ATTRIBUTES = [ 'html', 'charset', 'rel', 'src', 'href', 'crossorigin', 'type', 'lang' ];\r\nconst HTML_TAGS = [ 'html', 'DOCTYPE', 'head', 'meta', 'title', 'link', 'script', 'body', 'style' ];\r\n\r\nexport class DocMaker\r\n{\r\n root: Element;\r\n _listQueued: Element | undefined = undefined;\r\n\r\n constructor( element?: Element )\r\n {\r\n this.root = element ?? document.body;\r\n }\r\n\r\n setDomTarget( element: Element )\r\n {\r\n this.root = element;\r\n }\r\n\r\n lineBreak( target?: Element )\r\n {\r\n target = target ?? this.root;\r\n target.appendChild( document.createElement( 'br' ) );\r\n }\r\n\r\n header( string: string, type: string, id: string )\r\n {\r\n console.assert( string !== undefined && type !== undefined );\r\n let header = document.createElement( type );\r\n header.innerHTML = string;\r\n if ( id ) header.id = id;\r\n this.root.appendChild( header );\r\n }\r\n\r\n paragraph( string: string, sup: boolean = false, className?: string )\r\n {\r\n console.assert( string !== undefined );\r\n let paragraph = document.createElement( sup ? 'sup' : 'p' );\r\n paragraph.className = 'leading-relaxed ' + ( className ?? '' );\r\n paragraph.innerHTML = string;\r\n this.root.appendChild( paragraph );\r\n }\r\n\r\n code( text: string, language: string = 'js' )\r\n {\r\n console.assert( text !== undefined );\r\n\r\n text.replaceAll( '<', '&lt;' );\r\n text.replaceAll( '>', '&gt;' );\r\n\r\n let highlight = '';\r\n let content = '';\r\n\r\n const getHTML = ( h: string, c: string ) => {\r\n return `<span class=\"${h}\">${c}</span>`;\r\n };\r\n\r\n for ( let i = 0; i < text.length; ++i )\r\n {\r\n const char = text[i];\r\n const string = text.substr( i );\r\n\r\n const endLineIdx = string.indexOf( '\\n' );\r\n const line = string.substring( 0, endLineIdx > -1 ? endLineIdx : undefined );\r\n\r\n if ( char == '@' )\r\n {\r\n const str = line.substr( 1 );\r\n\r\n if ( !( str.indexOf( '@' ) > -1 ) && !( str.indexOf( '[' ) > -1 ) )\r\n {\r\n continue;\r\n }\r\n\r\n let html = null;\r\n\r\n const tagIndex = str.indexOf( '@' );\r\n const skipTag = str[tagIndex - 1] == '|';\r\n\r\n // Highlight is specified\r\n if ( text[i + 1] == '[' )\r\n {\r\n highlight = str.substr( 1, 3 );\r\n content = str.substring( 5, tagIndex );\r\n\r\n if ( skipTag )\r\n {\r\n const newString = str.substring( 6 + content.length );\r\n const preContent = content;\r\n const postContent = newString.substring( 0, newString.indexOf( '@' ) );\r\n const finalContent = preContent.substring( 0, preContent.length - 1 ) + '@' + postContent;\r\n html = getHTML( highlight, finalContent );\r\n\r\n const ogContent = preContent + '@' + postContent;\r\n text = text.replace( `@[${highlight}]${ogContent}@`, html );\r\n }\r\n else\r\n {\r\n html = getHTML( highlight, content );\r\n text = text.replace( `@[${highlight}]${content}@`, html );\r\n }\r\n }\r\n else\r\n {\r\n content = str.substring( 0, tagIndex );\r\n if ( skipTag )\r\n {\r\n const preContent = str.substring( 0, str.indexOf( '@' ) - 1 );\r\n content = str.substring( preContent.length + 1 );\r\n content = preContent + content.substring( 0, content.substring( 1 ).indexOf( '@' ) + 1 );\r\n text = text.substr( 0, i ) + '@' + content + '@' + text.substr( i + content.length + 3 );\r\n }\r\n\r\n if ( language == 'cpp' && CPP_KEY_WORDS.includes( content ) )\r\n {\r\n highlight = 'kwd';\r\n }\r\n else if ( language == 'js' && JS_KEY_WORDS.includes( content ) )\r\n {\r\n highlight = 'kwd';\r\n }\r\n else if ( CLASS_WORDS.includes( content ) )\r\n {\r\n highlight = 'cls';\r\n }\r\n else if ( STATEMENT_WORDS.includes( content ) )\r\n {\r\n highlight = 'lit';\r\n }\r\n else if ( HTML_TAGS.includes( content ) )\r\n {\r\n highlight = 'tag';\r\n }\r\n else if ( HTML_ATTRIBUTES.includes( content ) )\r\n {\r\n highlight = 'atn';\r\n }\r\n else if ( ( content[0] == '\"' && content[content.length - 1] == '\"' )\r\n || ( content[0] == \"'\" && content[content.length - 1] == \"'\" )\r\n || ( content[0] == '`' && content[content.length - 1] == '`' ) )\r\n {\r\n highlight = 'str';\r\n }\r\n else if ( !Number.isNaN( parseFloat( content ) ) )\r\n {\r\n highlight = 'dec';\r\n }\r\n else\r\n {\r\n console.error( 'ERROR[Code Parsing]: Unknown highlight type: ' + content );\r\n return;\r\n }\r\n\r\n html = getHTML( highlight, content );\r\n text = text.replace( `@${content}@`, html );\r\n }\r\n\r\n i += html.length - 1;\r\n }\r\n }\r\n\r\n let container = document.createElement( 'div' );\r\n container.className = 'code-container';\r\n let pre = document.createElement( 'pre' );\r\n let code = document.createElement( 'code' );\r\n code.innerHTML = text;\r\n\r\n let button = document.createElement( 'button' );\r\n button.title = 'Copy code sample';\r\n button.appendChild( LX.makeIcon( 'Copy' ) );\r\n button.addEventListener( 'click', this._copySnippet.bind( this, button ) );\r\n container.appendChild( button );\r\n\r\n pre.appendChild( code );\r\n container.appendChild( pre );\r\n this.root.appendChild( container );\r\n }\r\n\r\n list( list: any[], type: string, target?: Element )\r\n {\r\n const validTypes = [ 'bullet', 'numbered' ];\r\n console.assert( list && list.length > 0 && validTypes.includes( type ),\r\n 'Invalid list type or empty list' + type );\r\n const typeString = type == 'bullet' ? 'ul' : 'ol';\r\n let ul = document.createElement( typeString );\r\n target = target ?? this.root;\r\n target.appendChild( ul );\r\n for ( var el of list )\r\n {\r\n if ( el.constructor === Array )\r\n {\r\n this.list( el, type, ul );\r\n return;\r\n }\r\n let li = document.createElement( 'li' );\r\n li.className = 'leading-loose';\r\n li.innerHTML = el;\r\n ul.appendChild( li );\r\n }\r\n }\r\n\r\n bulletList( list: any[] )\r\n {\r\n this.list( list, 'bullet' );\r\n }\r\n\r\n numberedList( list: any[] )\r\n {\r\n this.list( list, 'numbered' );\r\n }\r\n\r\n startCodeBulletList()\r\n {\r\n let ul = document.createElement( 'ul' );\r\n this._listQueued = ul;\r\n }\r\n\r\n endCodeBulletList()\r\n {\r\n if ( this._listQueued === undefined ) return;\r\n console.assert( this._listQueued !== undefined );\r\n this.root.appendChild( this._listQueued );\r\n this._listQueued = undefined;\r\n }\r\n\r\n codeListItem( item: any, target?: Element )\r\n {\r\n target = target ?? this._listQueued;\r\n let split = item.constructor === Array;\r\n if ( split && item[0].constructor === Array )\r\n {\r\n this.codeBulletList( item, target );\r\n return;\r\n }\r\n let li = document.createElement( 'li' );\r\n li.className = 'leading-loose';\r\n li.innerHTML = split\r\n ? ( item.length == 2\r\n ? this.iCode( item[0] ) + ': ' + item[1]\r\n : this.iCode( item[0] + \" <span class='desc'>(\" + item[1] + ')</span>' ) + ': ' + item[2] )\r\n : this.iCode( item );\r\n target?.appendChild( li );\r\n }\r\n\r\n codeBulletList( list: any[], target?: Element )\r\n {\r\n console.assert( list !== undefined && list.length > 0 );\r\n let ul = document.createElement( 'ul' );\r\n for ( var el of list )\r\n {\r\n this.codeListItem( el, ul );\r\n }\r\n\r\n if ( target )\r\n {\r\n target.appendChild( ul );\r\n }\r\n else\r\n {\r\n this.root.appendChild( ul );\r\n }\r\n }\r\n\r\n image( src: string, caption: string = '', parent?: Element )\r\n {\r\n let img = document.createElement( 'img' );\r\n img.src = src;\r\n img.alt = caption;\r\n img.className = 'my-1';\r\n parent = parent ?? this.root;\r\n parent.appendChild( img );\r\n }\r\n\r\n images( sources: string[], captions: string[] = [], width?: string, height?: string )\r\n {\r\n const mobile = navigator && /Android|iPhone/i.test( navigator.userAgent );\r\n\r\n if ( !mobile )\r\n {\r\n let div: HTMLElement = document.createElement( 'div' );\r\n div.style.width = width ?? 'auto';\r\n div.style.height = height ?? '256px';\r\n div.className = 'flex flex-row justify-center';\r\n\r\n for ( let i = 0; i < sources.length; ++i )\r\n {\r\n this.image( sources[i], captions[i], div );\r\n }\r\n\r\n this.root.appendChild( div );\r\n }\r\n else\r\n {\r\n for ( let i = 0; i < sources.length; ++i )\r\n {\r\n this.image( sources[i], captions[i] );\r\n }\r\n }\r\n }\r\n\r\n video( src: string, caption: string = '', controls: boolean = true, autoplay: boolean = false )\r\n {\r\n let video: any = document.createElement( 'video' );\r\n video.src = src;\r\n video.controls = controls;\r\n video.autoplay = autoplay;\r\n if ( autoplay )\r\n {\r\n video.muted = true;\r\n }\r\n video.loop = true;\r\n video.alt = caption;\r\n this.root.appendChild( video );\r\n }\r\n\r\n note( text: string, warning: boolean = false, title?: string, icon?: string )\r\n {\r\n console.assert( text !== undefined );\r\n\r\n const note = LX.makeContainer( [], 'border rounded-lg overflow-hidden text-md fg-secondary my-6', '',\r\n this.root );\r\n\r\n let header = document.createElement( 'div' );\r\n header.className = 'flex bg-tertiary font-semibold px-3 py-2 gap-2 fg-secondary';\r\n header.appendChild( LX.makeIcon( icon ?? ( warning ? 'MessageSquareWarning' : 'NotepadText' ) ) );\r\n header.innerHTML += title ?? ( warning ? 'Important' : 'Note' );\r\n note.appendChild( header );\r\n\r\n // Node body\r\n LX.makeContainer( [], 'leading-6 p-3', text, note );\r\n }\r\n\r\n classCtor( name: string, params: any[], language: string = 'js' )\r\n {\r\n let paramsHTML = '';\r\n for ( var p of params )\r\n {\r\n const str1 = p[0]; // cpp: param js: name\r\n const str2 = p[1]; // cpp: defaultValue js: type\r\n if ( language == 'cpp' )\r\n {\r\n paramsHTML += str1 + ( str2 ? \" = <span class='desc'>\" + str2 + '</span>' : '' )\r\n + ( params.indexOf( p ) != ( params.length - 1 ) ? ', ' : '' );\r\n }\r\n else if ( language == 'js' )\r\n {\r\n paramsHTML += str1 + \": <span class='desc'>\" + str2 + '</span>'\r\n + ( params.indexOf( p ) != ( params.length - 1 ) ? ', ' : '' );\r\n }\r\n }\r\n let pr = document.createElement( 'p' );\r\n pr.innerHTML = this.iCode( \"<span class='constructor'>\" + name + '(' + paramsHTML + ')' + '</span>' );\r\n this.root.appendChild( pr );\r\n }\r\n\r\n classMethod( name: string, desc: string, params: any[], ret?: string ): HTMLElement | null\r\n {\r\n this.startCodeBulletList();\r\n\r\n let paramsHTML = '';\r\n for ( var p of params )\r\n {\r\n const name = p[0];\r\n const type = p[1];\r\n paramsHTML += name + \": <span class='desc'>\" + type + '</span>'\r\n + ( params.indexOf( p ) != ( params.length - 1 ) ? ', ' : '' );\r\n }\r\n let li = document.createElement( 'li' );\r\n li.innerHTML = this.iCode(\r\n \"<span class='method'>\" + name + ' (' + paramsHTML + ')' + ( ret ? ( ': ' + ret ) : '' ) + '</span>'\r\n );\r\n this._listQueued?.appendChild( li );\r\n\r\n this.endCodeBulletList();\r\n\r\n this.paragraph( desc );\r\n\r\n return li.parentElement;\r\n }\r\n\r\n iLink( text: string, href: string )\r\n {\r\n console.assert( text !== undefined && href !== undefined );\r\n return `<a href=\"${href}\">${text}</a>`;\r\n }\r\n\r\n iPage( text: string, page: string )\r\n {\r\n console.assert( text !== undefined && page !== undefined );\r\n const startPage = page.replace( '.html', '' );\r\n const g = globalThis as any;\r\n if ( g.setPath && g.loadPage )\r\n {\r\n const tabName = g.setPath( startPage );\r\n return `<a onclick=\"loadPage('${page}', true, '${tabName}')\">${text}</a>`;\r\n }\r\n else\r\n {\r\n console.warn( '[DocMaker] Create globalThis.setPath and globalThis.loadPage to use inline pages!' );\r\n }\r\n }\r\n\r\n iCode( text: string, codeClass?: string )\r\n {\r\n console.assert( text !== undefined );\r\n return `<code class=\"inline ${codeClass ?? ''}\">${text}</code>`;\r\n }\r\n\r\n _copySnippet( b: any )\r\n {\r\n b.innerHTML = '';\r\n b.appendChild( LX.makeIcon( 'Check' ) );\r\n b.classList.add( 'copied' );\r\n\r\n setTimeout( () => {\r\n b.innerHTML = '';\r\n b.appendChild( LX.makeIcon( 'Copy' ) );\r\n b.classList.remove( 'copied' );\r\n }, 2000 );\r\n\r\n navigator.clipboard.writeText( b.dataset['snippet'] ?? b.parentElement.innerText );\r\n console.log( 'Copied!' );\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocMaker.js","sources":["../../src/extensions/DocMaker.ts"],"sourcesContent":["// DocMaker.ts @jxarco\r\n\r\nimport { LX } from '../core/Namespace';\r\n\r\nif ( !LX )\r\n{\r\n throw ( 'Missing LX namespace!' );\r\n}\r\n\r\nLX.extensions.push( 'DocMaker' );\r\n\r\nconst CPP_KEY_WORDS = [ 'int', 'float', 'double', 'bool', 'char', 'wchar_t', 'const', 'static_cast', 'dynamic_cast', 'new', 'delete', 'void', 'true',\r\n 'false', 'auto', 'struct', 'typedef', 'nullptr', 'NULL', 'unsigned', 'namespace', 'auto' ];\r\nconst CLASS_WORDS = [ 'uint32_t', 'uint64_t', 'uint8_t' ];\r\nconst STATEMENT_WORDS = [ 'for', 'if', 'else', 'return', 'continue', 'break', 'case', 'switch', 'while', 'import', 'from', 'await' ];\r\n\r\nconst JS_KEY_WORDS = [ 'var', 'let', 'const', 'static', 'function', 'null', 'undefined', 'new', 'delete', 'true', 'false', 'NaN', 'this' ];\r\nconst HTML_ATTRIBUTES = [ 'html', 'charset', 'rel', 'src', 'href', 'crossorigin', 'type', 'lang' ];\r\nconst HTML_TAGS = [ 'DOCTYPE', 'html', 'head', 'body', 'title', 'base', 'link', 'meta', 'style', 'main', 'section', 'nav', 'article', 'aside',\r\n 'header', 'footer', 'address', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'hr', 'pre', 'blockquote', 'ol', 'ul', 'li', 'dl', 'dt', 'dd', 'figure',\r\n 'figcaption', 'div', 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn', 'em', 'i', 'kbd', 'mark', 'q', 'rp', 'rt', 'ruby', 's',\r\n 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr', 'img', 'audio', 'video', 'source', 'track', 'picture', 'map', 'area',\r\n 'canvas', 'iframe', 'embed', 'object', 'param', 'form', 'label', 'input', 'button', 'select', 'datalist', 'optgroup', 'option', 'textarea',\r\n 'output', 'progress', 'meter', 'fieldset', 'legend', 'table', 'caption', 'colgroup', 'col', 'tbody', 'thead', 'tfoot', 'tr', 'td', 'th',\r\n 'details', 'summary', 'dialog', 'script', 'noscript', 'template' ];\r\n\r\nexport class DocMaker\r\n{\r\n root: Element;\r\n _listQueued: Element | undefined = undefined;\r\n\r\n constructor( element?: Element )\r\n {\r\n this.root = element ?? document.body;\r\n }\r\n\r\n setDomTarget( element: Element )\r\n {\r\n this.root = element;\r\n }\r\n\r\n lineBreak( target?: Element )\r\n {\r\n target = target ?? this.root;\r\n target.appendChild( document.createElement( 'br' ) );\r\n }\r\n\r\n header( string: string, type: string, id: string )\r\n {\r\n console.assert( string !== undefined && type !== undefined );\r\n let header = document.createElement( type );\r\n header.innerHTML = string;\r\n if ( id ) header.id = id;\r\n this.root.appendChild( header );\r\n }\r\n\r\n paragraph( string: string, sup: boolean = false, className?: string )\r\n {\r\n console.assert( string !== undefined );\r\n let paragraph = document.createElement( sup ? 'sup' : 'p' );\r\n paragraph.className = 'leading-relaxed ' + ( className ?? '' );\r\n paragraph.innerHTML = string;\r\n this.root.appendChild( paragraph );\r\n }\r\n\r\n code( text: string, language: string = 'js' )\r\n {\r\n console.assert( text !== undefined );\r\n\r\n text.replaceAll( '<', '&lt;' );\r\n text.replaceAll( '>', '&gt;' );\r\n\r\n let highlight = '';\r\n let content = '';\r\n\r\n const getHTML = ( h: string, c: string ) => {\r\n return `<span class=\"${h}\">${c}</span>`;\r\n };\r\n\r\n for ( let i = 0; i < text.length; ++i )\r\n {\r\n const char = text[i];\r\n const string = text.substr( i );\r\n\r\n const endLineIdx = string.indexOf( '\\n' );\r\n const line = string.substring( 0, endLineIdx > -1 ? endLineIdx : undefined );\r\n\r\n if ( char == '@' )\r\n {\r\n const str = line.substr( 1 );\r\n\r\n if ( !( str.indexOf( '@' ) > -1 ) && !( str.indexOf( '[' ) > -1 ) )\r\n {\r\n continue;\r\n }\r\n\r\n let html = null;\r\n\r\n const tagIndex = str.indexOf( '@' );\r\n const skipTag = str[tagIndex - 1] == '|';\r\n\r\n // Highlight is specified\r\n if ( text[i + 1] == '[' )\r\n {\r\n highlight = str.substr( 1, 3 );\r\n content = str.substring( 5, tagIndex );\r\n\r\n if ( skipTag )\r\n {\r\n const newString = str.substring( 6 + content.length );\r\n const preContent = content;\r\n const postContent = newString.substring( 0, newString.indexOf( '@' ) );\r\n const finalContent = preContent.substring( 0, preContent.length - 1 ) + '@' + postContent;\r\n html = getHTML( highlight, finalContent );\r\n\r\n const ogContent = preContent + '@' + postContent;\r\n text = text.replace( `@[${highlight}]${ogContent}@`, html );\r\n }\r\n else\r\n {\r\n html = getHTML( highlight, content );\r\n text = text.replace( `@[${highlight}]${content}@`, html );\r\n }\r\n }\r\n else\r\n {\r\n content = str.substring( 0, tagIndex );\r\n if ( skipTag )\r\n {\r\n const preContent = str.substring( 0, str.indexOf( '@' ) - 1 );\r\n content = str.substring( preContent.length + 1 );\r\n content = preContent + content.substring( 0, content.substring( 1 ).indexOf( '@' ) + 1 );\r\n text = text.substr( 0, i ) + '@' + content + '@' + text.substr( i + content.length + 3 );\r\n }\r\n\r\n if ( language == 'cpp' && CPP_KEY_WORDS.includes( content ) )\r\n {\r\n highlight = 'kwd';\r\n }\r\n else if ( language == 'js' && JS_KEY_WORDS.includes( content ) )\r\n {\r\n highlight = 'kwd';\r\n }\r\n else if ( CLASS_WORDS.includes( content ) )\r\n {\r\n highlight = 'cls';\r\n }\r\n else if ( STATEMENT_WORDS.includes( content ) )\r\n {\r\n highlight = 'lit';\r\n }\r\n else if ( HTML_TAGS.includes( content ) )\r\n {\r\n highlight = 'tag';\r\n }\r\n else if ( HTML_ATTRIBUTES.includes( content ) )\r\n {\r\n highlight = 'atn';\r\n }\r\n else if ( ( content[0] == '\"' && content[content.length - 1] == '\"' )\r\n || ( content[0] == \"'\" && content[content.length - 1] == \"'\" )\r\n || ( content[0] == '`' && content[content.length - 1] == '`' ) )\r\n {\r\n highlight = 'str';\r\n }\r\n else if ( !Number.isNaN( parseFloat( content ) ) )\r\n {\r\n highlight = 'dec';\r\n }\r\n else\r\n {\r\n console.error( 'ERROR[Code Parsing]: Unknown highlight type: ' + content );\r\n return;\r\n }\r\n\r\n html = getHTML( highlight, content );\r\n text = text.replace( `@${content}@`, html );\r\n }\r\n\r\n i += html.length - 1;\r\n }\r\n }\r\n\r\n let container = document.createElement( 'div' );\r\n container.className = 'code-container';\r\n let pre = document.createElement( 'pre' );\r\n let code = document.createElement( 'code' );\r\n code.innerHTML = text;\r\n\r\n let button = document.createElement( 'button' );\r\n button.title = 'Copy code sample';\r\n button.appendChild( LX.makeIcon( 'Copy' ) );\r\n button.addEventListener( 'click', this._copySnippet.bind( this, button ) );\r\n container.appendChild( button );\r\n\r\n pre.appendChild( code );\r\n container.appendChild( pre );\r\n this.root.appendChild( container );\r\n }\r\n\r\n list( list: any[], type: string, target?: Element )\r\n {\r\n const validTypes = [ 'bullet', 'numbered' ];\r\n console.assert( list && list.length > 0 && validTypes.includes( type ), 'Invalid list type or empty list' + type );\r\n const typeString = type == 'bullet' ? 'ul' : 'ol';\r\n let ul = document.createElement( typeString );\r\n target = target ?? this.root;\r\n target.appendChild( ul );\r\n for ( var el of list )\r\n {\r\n if ( el.constructor === Array )\r\n {\r\n this.list( el, type, ul );\r\n return;\r\n }\r\n let li = document.createElement( 'li' );\r\n li.className = 'leading-loose';\r\n li.innerHTML = el;\r\n ul.appendChild( li );\r\n }\r\n }\r\n\r\n bulletList( list: any[] )\r\n {\r\n this.list( list, 'bullet' );\r\n }\r\n\r\n numberedList( list: any[] )\r\n {\r\n this.list( list, 'numbered' );\r\n }\r\n\r\n startCodeBulletList()\r\n {\r\n let ul = document.createElement( 'ul' );\r\n this._listQueued = ul;\r\n }\r\n\r\n endCodeBulletList()\r\n {\r\n if ( this._listQueued === undefined ) return;\r\n console.assert( this._listQueued !== undefined );\r\n this.root.appendChild( this._listQueued );\r\n this._listQueued = undefined;\r\n }\r\n\r\n codeListItem( item: any, target?: Element )\r\n {\r\n target = target ?? this._listQueued;\r\n let split = item.constructor === Array;\r\n if ( split && item[0].constructor === Array )\r\n {\r\n this.codeBulletList( item, target );\r\n return;\r\n }\r\n let li = document.createElement( 'li' );\r\n li.className = 'leading-loose';\r\n li.innerHTML = split\r\n ? ( item.length == 2\r\n ? this.iCode( item[0] ) + ': ' + item[1]\r\n : this.iCode( item[0] + \" <span class='desc'>(\" + item[1] + ')</span>' ) + ': ' + item[2] )\r\n : this.iCode( item );\r\n target?.appendChild( li );\r\n }\r\n\r\n codeBulletList( list: any[], target?: Element )\r\n {\r\n console.assert( list !== undefined && list.length > 0 );\r\n let ul = document.createElement( 'ul' );\r\n for ( var el of list )\r\n {\r\n this.codeListItem( el, ul );\r\n }\r\n\r\n if ( target )\r\n {\r\n target.appendChild( ul );\r\n }\r\n else\r\n {\r\n this.root.appendChild( ul );\r\n }\r\n }\r\n\r\n image( src: string, caption: string = '', parent?: Element )\r\n {\r\n let img = document.createElement( 'img' );\r\n img.src = src;\r\n img.alt = caption;\r\n img.className = 'my-1';\r\n parent = parent ?? this.root;\r\n parent.appendChild( img );\r\n }\r\n\r\n images( sources: string[], captions: string[] = [], width?: string, height?: string )\r\n {\r\n const mobile = navigator && /Android|iPhone/i.test( navigator.userAgent );\r\n\r\n if ( !mobile )\r\n {\r\n let div: HTMLElement = document.createElement( 'div' );\r\n div.style.width = width ?? 'auto';\r\n div.style.height = height ?? '256px';\r\n div.className = 'flex flex-row justify-center';\r\n\r\n for ( let i = 0; i < sources.length; ++i )\r\n {\r\n this.image( sources[i], captions[i], div );\r\n }\r\n\r\n this.root.appendChild( div );\r\n }\r\n else\r\n {\r\n for ( let i = 0; i < sources.length; ++i )\r\n {\r\n this.image( sources[i], captions[i] );\r\n }\r\n }\r\n }\r\n\r\n video( src: string, caption: string = '', controls: boolean = true, autoplay: boolean = false )\r\n {\r\n let video: any = document.createElement( 'video' );\r\n video.src = src;\r\n video.controls = controls;\r\n video.autoplay = autoplay;\r\n if ( autoplay )\r\n {\r\n video.muted = true;\r\n }\r\n video.loop = true;\r\n video.alt = caption;\r\n this.root.appendChild( video );\r\n }\r\n\r\n note( text: string, warning: boolean = false, title?: string, icon?: string )\r\n {\r\n console.assert( text !== undefined );\r\n\r\n const note = LX.makeContainer( [], 'border-color rounded-xl overflow-hidden text-sm text-secondary-foreground my-6', '', this.root );\r\n\r\n let header = document.createElement( 'div' );\r\n header.className = 'flex bg-muted font-semibold px-3 py-2 gap-2 text-secondary-foreground';\r\n header.appendChild( LX.makeIcon( icon ?? ( warning ? 'MessageSquareWarning' : 'NotepadText' ) ) );\r\n header.innerHTML += title ?? ( warning ? 'Important' : 'Note' );\r\n note.appendChild( header );\r\n\r\n // Node body\r\n LX.makeContainer( [], 'leading-6 p-3', text, note );\r\n }\r\n\r\n classCtor( name: string, params: any[], language: string = 'js' )\r\n {\r\n let paramsHTML = '';\r\n for ( var p of params )\r\n {\r\n const str1 = p[0]; // cpp: param js: name\r\n const str2 = p[1]; // cpp: defaultValue js: type\r\n if ( language == 'cpp' )\r\n {\r\n paramsHTML += str1 + ( str2 ? \" = <span class='desc'>\" + str2 + '</span>' : '' )\r\n + ( params.indexOf( p ) != ( params.length - 1 ) ? ', ' : '' );\r\n }\r\n else if ( language == 'js' )\r\n {\r\n paramsHTML += str1 + \": <span class='desc'>\" + str2 + '</span>'\r\n + ( params.indexOf( p ) != ( params.length - 1 ) ? ', ' : '' );\r\n }\r\n }\r\n let pr = document.createElement( 'p' );\r\n pr.innerHTML = this.iCode( \"<span class='constructor'>\" + name + '(' + paramsHTML + ')' + '</span>' );\r\n this.root.appendChild( pr );\r\n }\r\n\r\n classMethod( name: string, desc: string, params: any[], ret?: string ): HTMLElement | null\r\n {\r\n this.startCodeBulletList();\r\n\r\n let paramsHTML = '';\r\n for ( var p of params )\r\n {\r\n const name = p[0];\r\n const type = p[1];\r\n paramsHTML += name + \": <span class='desc'>\" + type + '</span>'\r\n + ( params.indexOf( p ) != ( params.length - 1 ) ? ', ' : '' );\r\n }\r\n let li = document.createElement( 'li' );\r\n li.innerHTML = this.iCode(\r\n \"<span class='method'>\" + name + ' (' + paramsHTML + ')' + ( ret ? ( ': ' + ret ) : '' ) + '</span>'\r\n );\r\n this._listQueued?.appendChild( li );\r\n\r\n this.endCodeBulletList();\r\n\r\n this.paragraph( desc );\r\n\r\n return li.parentElement;\r\n }\r\n\r\n iLink( text: string, href: string )\r\n {\r\n console.assert( text !== undefined && href !== undefined );\r\n return `<a class=\"font-semibold underline-offset-4 hover:underline\" href=\"${href}\">${text}</a>`;\r\n }\r\n\r\n iPage( text: string, page: string )\r\n {\r\n console.assert( text !== undefined && page !== undefined );\r\n const startPage = page.replace( '.html', '' );\r\n const g = globalThis as any;\r\n if ( g.setPath && g.loadPage )\r\n {\r\n const tabName = g.setPath( startPage );\r\n return `<a onclick=\"loadPage('${page}', true, '${tabName}')\">${text}</a>`;\r\n }\r\n else\r\n {\r\n console.warn( '[DocMaker] Create globalThis.setPath and globalThis.loadPage to use inline pages!' );\r\n }\r\n }\r\n\r\n iCode( text: string, codeClass?: string )\r\n {\r\n console.assert( text !== undefined );\r\n return `<code class=\"inline ${codeClass ?? ''}\">${text}</code>`;\r\n }\r\n\r\n _copySnippet( b: any )\r\n {\r\n b.innerHTML = '';\r\n b.appendChild( LX.makeIcon( 'Check' ) );\r\n b.classList.add( 'copied' );\r\n\r\n setTimeout( () => {\r\n b.innerHTML = '';\r\n b.appendChild( LX.makeIcon( 'Copy' ) );\r\n b.classList.remove( 'copied' );\r\n }, 2000 );\r\n\r\n navigator.clipboard.writeText( b.dataset['snippet'] ?? b.parentElement.innerText );\r\n console.log( 'Copied!' );\r\n }\r\n}\r\n\r\nLX.DocMaker = DocMaker;\r\n"],"names":[],"mappings":"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"}