{"version":3,"file":"html.mjs","names":["dirname","mkdir","writeFile","Projector","htmlEncode","ProjectorHtml","lang","title","background","color","classid","type","codebase","pluginspage","src","width","height","name","id","bgcolor","play","loop","menu","quality","scale","align","salign","wmode","base","allowFullScreen","allowFullScreenInteractive","allowScriptAccess","allowNetworking","fullScreenAspectRatio","flashvars","browserzoom","devicefont","swliveconnect","expressinstall","swfversion","html","constructor","path","write","recursive","getHtml","getHtmlDefault","Error","object","Map","set","param","embed","k","v","hAttr","entries","map","a","s","replace","repeat","length","join"],"sources":["../../src/projector/html.ts"],"sourcesContent":["import {dirname} from 'node:path';\nimport {mkdir, writeFile} from 'node:fs/promises';\n\nimport {Projector} from '../projector.ts';\nimport {htmlEncode} from '../util.ts';\n\n/**\n * ProjectorHtml object.\n */\nexport class ProjectorHtml extends Projector {\n\t/**\n\t * The HTML document lang.\n\t */\n\tpublic lang: string | null = null;\n\n\t/**\n\t * The HTML document title.\n\t */\n\tpublic title: string | null = null;\n\n\t/**\n\t * HTML document background style.\n\t */\n\tpublic background: string | null = null;\n\n\t/**\n\t * HTML document color style.\n\t */\n\tpublic color: string | null = null;\n\n\t/**\n\t * Required <object> classid attribute.\n\t */\n\tpublic classid: string = 'clsid:D27CDB6E-AE6D-11CF-96B8-444553540000';\n\n\t/**\n\t * Required <embed> type attribute.\n\t */\n\tpublic type: string = 'application/x-shockwave-flash';\n\n\t/**\n\t * The <object> codebase attribute.\n\t */\n\tpublic codebase: string | null = null;\n\n\t/**\n\t * The <embed> codebase attribute.\n\t */\n\tpublic pluginspage: string | null = null;\n\n\t/**\n\t * Required src/movie URL (unless using custom HTML).\n\t */\n\tpublic src: string = '';\n\n\t/**\n\t * Required movie width (unless using custom HTML).\n\t */\n\tpublic width: string | number | null = null;\n\n\t/**\n\t * Required movie height (unless using custom HTML).\n\t */\n\tpublic height: string | number | null = null;\n\n\t/**\n\t * The name for object, param, and embed elements.\n\t */\n\tpublic name: string | null = null;\n\n\t/**\n\t * The id for the object element.\n\t */\n\tpublic id: string | null = null;\n\n\t/**\n\t * The movie background color.\n\t */\n\tpublic bgcolor: string | null = null;\n\n\t/**\n\t * The play attribute.\n\t */\n\tpublic play: string | boolean | null = null;\n\n\t/**\n\t * The loop attribute.\n\t */\n\tpublic loop: string | boolean | null = null;\n\n\t/**\n\t * The menu attribute.\n\t */\n\tpublic menu: string | boolean | null = null;\n\n\t/**\n\t * The quality attribute (low | autolow | autohigh | medium | high | best).\n\t */\n\tpublic quality: string | null = null;\n\n\t/**\n\t * The scale attribute (default | noborder | exactfit | noscale).\n\t */\n\tpublic scale: string | null = null;\n\n\t/**\n\t * The align attribute (l | r | t).\n\t */\n\tpublic align: string | null = null;\n\n\t/**\n\t * The salign attribute (l | t | r | tl | tr).\n\t */\n\tpublic salign: string | null = null;\n\n\t/**\n\t * The wmode attribute (window | direct | opaque | transparent | gpu).\n\t */\n\tpublic wmode: string | null = null;\n\n\t/**\n\t * The base attribute (URL or path).\n\t */\n\tpublic base: string | null = null;\n\n\t/**\n\t * The allowFullScreen attribute (true | false).\n\t */\n\tpublic allowFullScreen: string | boolean | null = null;\n\n\t/**\n\t * The allowFullScreenInteractive attribute (true | false), for AIR.\n\t */\n\tpublic allowFullScreenInteractive: string | boolean | null = null;\n\n\t/**\n\t * The allowScriptAccess attribute (always | sameDomain | never).\n\t */\n\tpublic allowScriptAccess: string | null = null;\n\n\t/**\n\t * The allowNetworking attribute (all | internal | none), for AIR.\n\t */\n\tpublic allowNetworking: string | null = null;\n\n\t/**\n\t * The fullScreenAspectRatio attribute (portrait | landscape).\n\t */\n\tpublic fullScreenAspectRatio: string | null = null;\n\n\t/**\n\t * The flashvars attribute (variable key=value pairs).\n\t */\n\tpublic flashvars: string | null = null;\n\n\t/**\n\t * The browserzoom attribute (scale | noscale).\n\t */\n\tpublic browserzoom: string | null = null;\n\n\t/**\n\t * The devicefont attribute (try to render static text as device text).\n\t */\n\tpublic devicefont: string | boolean | null = null;\n\n\t/**\n\t * The swliveconnect attribute (liveconnect?).\n\t */\n\tpublic swliveconnect: string | boolean | null = null;\n\n\t/**\n\t * The expressinstall attribute (for express install?).\n\t */\n\tpublic expressinstall: string | null = null;\n\n\t/**\n\t * The swfversion attribute (for update checking?).\n\t */\n\tpublic swfversion: string | number | null = null;\n\n\t/**\n\t * Custom HTML to use instead of generated HTML.\n\t */\n\tpublic html:\n\t\t| string\n\t\t| ((self: this) => string)\n\t\t| ((self: this) => Promise<string>)\n\t\t| null = null;\n\n\t/**\n\t * ProjectorHtml constructor.\n\t *\n\t * @param path Output path.\n\t */\n\tconstructor(path: string) {\n\t\tsuper(path);\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic async write() {\n\t\tconst {path} = this;\n\t\tawait mkdir(dirname(path), {recursive: true});\n\t\tawait writeFile(path, await this.getHtml());\n\t}\n\n\t/**\n\t * Get HTML document code.\n\t *\n\t * @returns HTML code.\n\t */\n\tpublic async getHtml() {\n\t\tconst {html} = this;\n\t\tif (html) {\n\t\t\treturn typeof html === 'function' ? html(this) : html;\n\t\t}\n\t\treturn this.getHtmlDefault();\n\t}\n\n\t/**\n\t * Get the default HTML document code.\n\t *\n\t * @returns HTML code.\n\t */\n\tpublic getHtmlDefault() {\n\t\tconst {\n\t\t\tlang,\n\t\t\ttitle,\n\t\t\tbackground,\n\t\t\tcolor,\n\t\t\tclassid,\n\t\t\ttype,\n\t\t\tcodebase,\n\t\t\tpluginspage,\n\t\t\tsrc,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tname,\n\t\t\tbgcolor,\n\t\t\tplay,\n\t\t\tloop,\n\t\t\tmenu,\n\t\t\tquality,\n\t\t\tscale,\n\t\t\talign,\n\t\t\tsalign,\n\t\t\twmode,\n\t\t\tbase,\n\t\t\tallowFullScreen,\n\t\t\tallowFullScreenInteractive,\n\t\t\tallowScriptAccess,\n\t\t\tallowNetworking,\n\t\t\tfullScreenAspectRatio,\n\t\t\tflashvars,\n\t\t\tbrowserzoom,\n\t\t\tdevicefont,\n\t\t\tswliveconnect,\n\t\t\texpressinstall,\n\t\t\tswfversion\n\t\t} = this;\n\n\t\tif (!src) {\n\t\t\tthrow new Error('Required property: src');\n\t\t}\n\t\tif (width === null) {\n\t\t\tthrow new Error('Required property: width');\n\t\t}\n\t\tif (height === null) {\n\t\t\tthrow new Error('Required property: height');\n\t\t}\n\n\t\tconst object = new Map<string, string>();\n\t\tobject.set('classid', classid);\n\t\tif (codebase !== null) {\n\t\t\tobject.set('codebase', codebase);\n\t\t}\n\t\tobject.set('width', `${width}`);\n\t\tobject.set('height', `${height}`);\n\t\tif (id !== null) {\n\t\t\tobject.set('id', id);\n\t\t}\n\n\t\tconst param = new Map<string, string>();\n\t\tparam.set('movie', src);\n\n\t\tconst embed = new Map<string, string>();\n\t\tembed.set('type', type);\n\t\tif (pluginspage !== null) {\n\t\t\tembed.set('pluginspage', pluginspage);\n\t\t}\n\t\tembed.set('width', `${width}`);\n\t\tembed.set('height', `${height}`);\n\t\tembed.set('src', src);\n\n\t\tif (name !== null) {\n\t\t\tobject.set('name', name);\n\t\t\tparam.set('name', name);\n\t\t\tembed.set('name', name);\n\t\t}\n\n\t\tfor (const [k, v] of [\n\t\t\t['bgcolor', bgcolor],\n\t\t\t['play', play],\n\t\t\t['loop', loop],\n\t\t\t['menu', menu],\n\t\t\t['quality', quality],\n\t\t\t['scale', scale],\n\t\t\t['align', align],\n\t\t\t['salign', salign],\n\t\t\t['wmode', wmode],\n\t\t\t['base', base],\n\t\t\t['allowfullscreen', allowFullScreen],\n\t\t\t['allowfullscreeninteractive', allowFullScreenInteractive],\n\t\t\t['allowscriptsccess', allowScriptAccess],\n\t\t\t['allownetworking', allowNetworking],\n\t\t\t['fullscreenaspectratio', fullScreenAspectRatio],\n\t\t\t['flashvars', flashvars],\n\t\t\t['browserzoom', browserzoom],\n\t\t\t['devicefont', devicefont],\n\t\t\t['swliveconnect', swliveconnect],\n\t\t\t['expressinstall', expressinstall],\n\t\t\t['swfversion', swfversion]\n\t\t] as [string, string | number | boolean | null][]) {\n\t\t\tif (v !== null) {\n\t\t\t\tparam.set(k, `${v}`);\n\t\t\t\tembed.set(k, `${v}`);\n\t\t\t}\n\t\t}\n\n\t\tconst hAttr = lang === null ? '' : ` lang=\"${htmlEncode(lang, true)}\"`;\n\n\t\treturn [\n\t\t\t'<!DOCTYPE html>',\n\t\t\t`<html${hAttr}>`,\n\t\t\t' <head>',\n\t\t\t'  <meta charset=\"UTF-8\">',\n\t\t\t'  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">',\n\t\t\t...(title === null\n\t\t\t\t? []\n\t\t\t\t: [`  <title>${htmlEncode(title)}</title>`]),\n\t\t\t'  <style>',\n\t\t\t'   * {',\n\t\t\t'    margin: 0;',\n\t\t\t'    padding: 0;',\n\t\t\t'   }',\n\t\t\t'   html,',\n\t\t\t'   body {',\n\t\t\t'    height: 100%;',\n\t\t\t'   }',\n\t\t\t'   body {',\n\t\t\t...(background === null\n\t\t\t\t? []\n\t\t\t\t: [`    background: ${htmlEncode(background)};`]),\n\t\t\t...(color === null ? [] : [`    color: ${htmlEncode(color)};`]),\n\t\t\t'    font-family: Verdana, Geneva, sans-serif;',\n\t\t\t'   }',\n\t\t\t'   object,',\n\t\t\t'   embed {',\n\t\t\t'    display: block;',\n\t\t\t'    outline: 0;',\n\t\t\t'   }',\n\t\t\t'   object:focus,',\n\t\t\t'   embed:focus {',\n\t\t\t'    outline: 0;',\n\t\t\t'   }',\n\t\t\t'   .main {',\n\t\t\t'    display: table;',\n\t\t\t'    height: 100%;',\n\t\t\t'    width: 100%;',\n\t\t\t'   }',\n\t\t\t'   .player {',\n\t\t\t'    display: table-cell;',\n\t\t\t'    vertical-align: middle;',\n\t\t\t'   }',\n\t\t\t'   .player object,',\n\t\t\t'   .player embed {',\n\t\t\t'    margin: 0 auto;',\n\t\t\t'   }',\n\t\t\t'  </style>',\n\t\t\t' </head>',\n\t\t\t' <body>',\n\t\t\t'  <div class=\"main\">',\n\t\t\t'   <div class=\"player\">',\n\t\t\t'    <object',\n\t\t\t...[...object.entries()].map(\n\t\t\t\t([a, v]) => `     ${a}=\"${htmlEncode(v, true)}\"`\n\t\t\t),\n\t\t\t'    >',\n\t\t\t...[...param.entries()].map(\n\t\t\t\t([a, v]) =>\n\t\t\t\t\t`     <param name=\"${a}\" value=\"${htmlEncode(v, true)}\">`\n\t\t\t),\n\t\t\t'     <embed',\n\t\t\t...[...embed.entries()].map(\n\t\t\t\t([a, v]) => `      ${a}=\"${htmlEncode(v, true)}\"`\n\t\t\t),\n\t\t\t'     >',\n\t\t\t'    </object>',\n\t\t\t'   </div>',\n\t\t\t'  </div>',\n\t\t\t' </body>',\n\t\t\t'</html>',\n\t\t\t''\n\t\t]\n\t\t\t.map(s => s.replace(/^\\s+/, s => '\\t'.repeat(s.length)))\n\t\t\t.join('\\n');\n\t}\n}\n"],"mappings":"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","ignoreList":[]}