pict-section-form 1.1.8 → 1.2.0

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 (61) hide show
  1. package/README.md +1 -1
  2. package/docs/Configuration.md +1 -0
  3. package/docs/Layouts.md +60 -0
  4. package/docs/_version.json +3 -3
  5. package/docs/examples/README.md +1 -1
  6. package/docs/examples/change_tracking/change_tracking.js +322 -20
  7. package/docs/examples/diagram_form/diagram_form_example.min.js +2 -2
  8. package/docs/examples/dynamic_analysis/dynamic_analysis_application.js +301 -20
  9. package/docs/examples/gradebook/README.md +43 -1
  10. package/docs/examples/gradebook/gradebook_application.min.js +2 -2
  11. package/docs/examples/ndt_field_test/ndt_field_test.js +322 -20
  12. package/docs/examples/richtext_form/richtext_form_example.min.js +2 -3
  13. package/docs/examples/scope_mathematics/scope_mathematics.js +322 -20
  14. package/docs/examples/simple_table/README.md +1 -0
  15. package/docs/examples/simple_table/simple_tabular_application.min.js +2 -2
  16. package/docs/examples/superhero_studio/superhero_studio_example.min.js +2 -3
  17. package/docs/index.html +2 -2
  18. package/docs/retold-catalog.json +1 -1
  19. package/docs/retold-keyword-index.json +10252 -9612
  20. package/example_applications/complex_table/Complex-Tabular-Application.js +5 -0
  21. package/example_applications/gradebook/Gradebook-Application.js +19 -4
  22. package/example_applications/gradebook/package.json +2 -2
  23. package/example_applications/simple_table/README-SimpleTable.md +9 -0
  24. package/example_applications/simple_table/Simple-Tabular-Application.js +6 -1
  25. package/package.json +4 -4
  26. package/source/global.d.ts +1 -0
  27. package/source/providers/inputs/Pict-Provider-Input-AutofillTriggerGroup.js +30 -0
  28. package/source/providers/inputs/Pict-Provider-Input-Diagram.js +87 -0
  29. package/source/providers/inputs/Pict-Provider-Input-EntityBundleRequest.js +11 -1
  30. package/source/providers/layouts/Pict-Layout-Tabular.js +639 -1
  31. package/source/views/Pict-View-Form-Metacontroller.js +59 -0
  32. package/test/Pict-View-Form-Metacontroller-Marshal_tests.js +100 -0
  33. package/test/PictSectionForm-Tabular-Features_tests.js +293 -0
  34. package/types/source/Pict-Section-Form.d.ts +3 -0
  35. package/types/source/providers/Pict-Provider-DynamicFormSolverBehaviors.d.ts +115 -0
  36. package/types/source/providers/Pict-Provider-DynamicFormSolverBehaviors.d.ts.map +1 -1
  37. package/types/source/providers/Pict-Provider-DynamicTabularData.d.ts +24 -0
  38. package/types/source/providers/Pict-Provider-DynamicTabularData.d.ts.map +1 -1
  39. package/types/source/providers/Pict-Provider-DynamicTemplates.d.ts.map +1 -1
  40. package/types/source/providers/inputs/Pict-Provider-Input-AutofillTriggerGroup.d.ts.map +1 -1
  41. package/types/source/providers/inputs/Pict-Provider-Input-Diagram-CSS.d.ts +3 -0
  42. package/types/source/providers/inputs/Pict-Provider-Input-Diagram-CSS.d.ts.map +1 -0
  43. package/types/source/providers/inputs/Pict-Provider-Input-Diagram.d.ts +125 -0
  44. package/types/source/providers/inputs/Pict-Provider-Input-Diagram.d.ts.map +1 -0
  45. package/types/source/providers/inputs/Pict-Provider-Input-EntityBundleRequest.d.ts.map +1 -1
  46. package/types/source/providers/inputs/Pict-Provider-Input-RichText-CSS.d.ts +3 -0
  47. package/types/source/providers/inputs/Pict-Provider-Input-RichText-CSS.d.ts.map +1 -0
  48. package/types/source/providers/inputs/Pict-Provider-Input-RichText.d.ts +41 -0
  49. package/types/source/providers/inputs/Pict-Provider-Input-RichText.d.ts.map +1 -0
  50. package/types/source/providers/inputs/util/Themeify-SVG.d.ts +48 -0
  51. package/types/source/providers/inputs/util/Themeify-SVG.d.ts.map +1 -0
  52. package/types/source/providers/layouts/Pict-Layout-Tabular.d.ts +200 -0
  53. package/types/source/providers/layouts/Pict-Layout-Tabular.d.ts.map +1 -1
  54. package/types/source/services/ManifestFactory.d.ts +29 -0
  55. package/types/source/services/ManifestFactory.d.ts.map +1 -1
  56. package/types/source/templates/Pict-Template-TabularEditingControls.d.ts +26 -0
  57. package/types/source/templates/Pict-Template-TabularEditingControls.d.ts.map +1 -0
  58. package/types/source/templates/Pict-Template-TabularRowLabels.d.ts +28 -0
  59. package/types/source/templates/Pict-Template-TabularRowLabels.d.ts.map +1 -0
  60. package/types/source/views/Pict-View-Form-Metacontroller.d.ts +22 -0
  61. package/types/source/views/Pict-View-Form-Metacontroller.d.ts.map +1 -1
@@ -1,4 +1,4 @@
1
- "use strict";function _slicedToArray(t,e){return _arrayWithHoles(t)||_iterableToArrayLimit(t,e)||_unsupportedIterableToArray2(t,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray2(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray2(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?_arrayLikeToArray2(t,e):void 0}}function _arrayLikeToArray2(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}function _iterableToArrayLimit(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var n,r,o,a,s=[],c=!0,l=!1;try{if(o=(i=i.call(t)).next,0===e){if(Object(i)!==i)return;c=!1}else for(;!(c=(n=o.call(i)).done)&&(s.push(n.value),s.length!==e);c=!0);}catch(t){l=!0,r=t}finally{try{if(!c&&null!=i.return&&(a=i.return(),Object(a)!==a))return}finally{if(l)throw r}}return s}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _defineProperty(t,e,i){return(e=_toPropertyKey2(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function _toPropertyKey2(t){var e=_toPrimitive2(t,"string");return"symbol"==typeof e?e:e+""}function _toPrimitive2(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).DiagramFormExample=t()}}(function(){return function t(e,i,n){function r(a,s){if(!i[a]){if(!e[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var p=i[a]={exports:{}};e[a][0].call(p.exports,function(t){return r(e[a][1][t]||t)},p,p.exports,t,e,i,n)}return i[a].exports}for(var o="function"==typeof require&&require,a=0;a<n.length;a++)r(n[a]);return r}({1:[function(t,e,i){t("pict-application");const n=t("../../source/Pict-Section-Form.js"),r={Scope:"DiagramDemoForm",Sections:[{Hash:"Diagram",Name:"Architecture"}],Descriptors:{ArchDiagram:{Name:"Architecture Diagram",Hash:"ArchDiagram",DataType:"String",PictForm:{Section:"Diagram",Row:1,Width:12,InputType:"Diagram",Diagram:{ThemeColors:!0,Height:"480px",EditorImplementation:"react"}}}}};class o extends n.PictFormApplication{constructor(t,e,i){super(t,e,i);let r=n.DiagramInput;this.pict.addProvider(r.default_configuration.ProviderIdentifier,r.default_configuration,r),this.pict.AppData.DiagramDemoForm={ArchDiagram:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 440 240" width="440" height="240">\x3c!-- svg-source:excalidraw --\x3e<metadata>\x3c!-- payload-type:application/vnd.excalidraw+json --\x3e\x3c!-- payload-version:2 --\x3e\x3c!-- payload-start --\x3eeyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2ZXVPbOFx1MDAxNIbv+ysy2VtI9WHJXHUwMDE2d1x1MDAxMMKStNBcdTAwMTZS2I/pMMJWbFx1MDAxMcc2tpJAXHUwMDE5/vvKTog/XHUwMDEywOnAwrLcMPHRsXRy/D55JXPzodFoqutINLdcdTAwMWFNcWVzXzoxnzY30vhExIlcZlx1MDAwMz2EsuskXHUwMDFjx3aWOZC+2Pr4cZYmfDFcdTAwMTKBSvTA3/q60bjJ/upcdTAwMTHppMnfw9PB4d5Z2FX968vjXHUwMDAx7lxc9NokuzVLuls9XHUwMDE2tuKB64t86ErHIVx1MDAwMIvr6/RcdTAwMWHl11PpKK9cdTAwMTLzhHQ9pYNmXHUwMDFlm0271cgjiYrDoWiHflx1MDAxOKdr/1x1MDAwNnfgXHUwMDFlwvnK59xcdTAwMWW6cThcdTAwMGWcPGdvd6+9Z+Y5ulx0/rG6zmZu2nGYJJtcdTAwMWVXttesrHI6r1x1MDAxMlXii3uTUHc9v0sv63qBSNKGwkU0jLgt1XWlI2mNUdfJev8jryzmI9FNm1x1MDAxZox9f1x1MDAxMZaBI9KWNjkorVx1MDAxNjjz1UrZiVx1MDAxMOlcZpQhgC1cdTAwMDLoYqBcIoti7DBcZjKBQGJghlx1MDAwMSF5pTLZ1UJR2ZxcdTAwMDPuJ1wi73VaQacqoqKQSjpR4kotyi/I7FwiXGb7f1x1MDAxY1xcmuro+/DbyVevz6/GtLnIu51/yrs0jlx1MDAxYz6rXHUwMDA3mlx1MDAxNqBcYlx1MDAxOYQwZCzGfVx1MDAxOVxmq03xQ3uYf4UseruxSvSjyV9cdDY+Me9Ld7rZa8vLKG67y6LncVx1MDAxY07LgkdcdTAwMTi0SFnyhKyQPFuW/DqK71DaRu1cdTAwMDdcdTAwMTWvYlx1MDAxZSRcdTAwMTGP9XO5R/VcdTAwMTXlvlq9w/p6h8hCxLRcZmstwZuMXHUwMDAxYlnE+lx1MDAxNb0/pSRcdTAwMTfhKJRVnPJPjVxcXHUwMDE42cXi84+NldlcdTAwMDW1VfKXqEpcdTAwMTSP1Y5uvVxm3GqpXCJw7lx1MDAxOcnu2k5h8Fx1MDAwNF96kPq+4liVXHUwMDFh4Z+H01pU0tP9z4NOxDc3XHUwMDAxvvxMXHUwMDBmzuzk935tK8JmXHIrXCLvVrRcdTAwMTaaaFxyNIlcdTAwMDFcdTAwMDBgXHUwMDA05kDUQNOAXHUwMDE0Y2Syf9GKXHUwMDA2XHUwMDEzt322P/75uVx1MDAxYnTDK/9cdTAwMWOMyVS8mFx1MDAxNU23O/uT7W3/7JOIjjo9r1x1MDAxM7ieV8uKXGajbERcYlx1MDAxNK3pTvIrXHUwMDA0T9lcdTAwMWGCR1x1MDAxZHPXNP4nToTry51cdTAwMDCCXHUwMDE4hGgtI6KGpVx1MDAxZFxmXHUwMDE2tmtvyohK2ZT9V33I7PuHPd7ecc+GzPO4d+JO4VxuJIXvyyipupBVdiFkrXAhY1x1MDAxNZTvLnQvlsZcdTAwMWEuxDCFJGVsrVx1MDAxM1x1MDAxMVwiXHUwMDAwIEBpnvHsNjTaOemYX9TFn6ynOm7fXHUwMDA19lHv9MVsaPX5bEnzpS8ze1x1MDAwM4BpS2+vXHUwMDExNrBZOVx1MDAxOFx1MDAxObhlLlx1MDAxYpJBW1x1MDAwMDKCdc+XKUCoYGFPwsHbMSeyzl7MXCKYouJcdD+nXHUwMDAw30tcdTAwMDEmxIRcdTAwMTDgX9qMPYs9ZXrTX77ty/JcdTAwMDNcZlx1MDAwM3Usf2ZVW6XoXHUwMDFlXHUwMDFmST/tOClNsu1LN8h++fQ8XCJuXHUwMDE2e6Ckzf1Fwkg6TvFsYetJuVxmRNyt874sjKUrXHUwMDAz7vfvKZyPVXgkklnpKlx1MDAxZYtiV8T+XHUwMDFkXHUwMDA3sIXIXHUwMDAztK7ewtag1Vx1MDAwMLBlaG1cdTAwMTBIKKqFq2W2XHUwMDAwYohRy3zndS1e6Vx1MDAxYbxiXHUwMDAwXHUwMDAxgbig5Tq8XCJiMqQ5fz3byTtet792XHUwMDFix1winlx1MDAxNEl7OWZcdTAwMWZ5sVBldlXxT8Ptas+vwy0kXHUwMDFhTmpgzS1l+tBslneZjLVMi5qM6lx1MDAxY1x1MDAwM+BcXFx1MDAxMHdcdTAwMThTq2UwXHUwMDA0V0P8xFvPt4OwWVx1MDAxZmFcdTAwMGIgSFxyZi3tMVx1MDAxZiRYI49cdTAwMDA2jNdH8C5X/JxcdTAwMTePN0V+aSn63Pw+ciCr8rtcXPra9H6Yb7ybPIqOle6tXHUwMDFlnbGspSSdeVx1MDAxYu7AmcWUiPJcdTAwMTZkoYPQXHUwMDExnYCf+9U+NydSTHdcdTAwMWU7tM1cdTAwMWbRwdhX8liLwlZaOumTv0nry35hsv/1zUO3/1x1MDAwMGG2XHUwMDA3jCJ9\x3c!-- payload-end --\x3e</metadata><defs><style class="style-fonts">\n @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,d09GMgABAAAAAAv8AA4AAAAAFIAAAAupAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbg1ocNAZgAIEUEQgKm0yURwsmAAE2AiQDSAQgBYMYByAb4A+jooS0ssn+mZDNCa1rN6pQ6JLdauMu1o1TPPCn//t5PO39JKWGTvXoY+vNnXzrQBwoERW3/ftiy8I8CYKaLNDA80C8/gfw7z/ltIQW3t0GIelC5O5TyAiH6vy1O0+POs/S7rIEKYNQ+nwxfywJbl3b6sd++b6IJLMSDZhOaJTyxfY/rIo2s6QWopVGda+q8UcImVBphRxpBZPwLHEpOOczQD6AADAJ1BgEngtkvg6djwGIyRiVCOKtpbYcxHttQRmIz9z6ShAjAMBrY8BRUFsJVGCZETAgswIrL/2bALpQGDCwwP9HoTD/z9Xwf4R/F/ld4fx/w5ssjoSSJ4AcR5dXAIQBRyCjoKKhY2Bi410U4hLB4HIxTAaqCZIUNJfRObBNQKTGETGnggLMKgBwYyX8KHFRgzkSJC9soj82iWgCEmpGJRUAIuvFoBX8/IKCyL76xRQDB0CisRv/EaSoB2qUAMxXYs9qmOSGIQx4BGHJkKsmdF/dHheOSUJDL5xZAosCJcpVqte4czGGrxPmcmp/hv8PHXTAHvNmhQINNVUlXgj80A9CwneEAoA1IF5AmgEGIMzCoDzhFIByX1o1+PDW4JsLIy9OgUk8DbL5iVtnrv9x7y+CrKPIaqJi1pKQH437EkESXV0F9CcgYuWYvpMe4+n7z59zxSrqqdjsZF7Tmg3qtUhgshkwxiCjgJ7XO8UCKzt2Xf+nuRDSxUKMx8SCOCUC/QhQNkOSq8vJYKKn+sqZMwt9FJa5h0OFKQxuCXlbmkfIQqgy6iKr2wJk1m/TPoi0WGPQTNVQNvcgM0B7dEP/qHuIhwuyGkB14j0hgqx3biKKlXTQ6mGEkuRd1pNNCAMY/6fFR+JhardNEV38A8FuFJ2+fVtPdb6BuZitJOtXk4I0FTpxJtZi6GQMALTZo2N6iL00l45aEpmVqERQa9DaUMMJOcS8h0Mo85BzBuXgbYb6PqWESGScgHEqESqUojyt2YrBYHrGDFjAILOB/5qA01SanZIm/V1tWUz1apprFlqom3M3ZBOyCSYHcry3cFQfo39+MRqfPbs7TgG1nUztCKPUBqt/hKnKQx6GmBePUtcWmk8mSUuhsQRopCSf+U1UaKFl0e3hhWk2vXTHjFN1I+smKCnMdw+6Y94lc0HmvXAl/IH5jx/43gXm2EJ/krQky/eBH4FoXHCWYhhrH/Ol6PRXzU8OWpZruUVcTTcucbwhmxoLGIABZBqL4VsIKQX+WSs8CiG3EEUFU/1xbWeoWL2Z1vnZP9w+0pnZLSTUaUj30jGOx8NcNgdKUSbSeue+yOaDuTjvfGhPRYV0zNuebEnkMaWQMoNhHbinN9JbqY7D9h3jkXp025fIw0lbqMf35h6p4b1QEVZPj0dno0KiBzJjgWnK4UbOezhJFttTmT9o6ztqVYZbVyYYZ8ZFIbvCSuBX/2AXWUmC3Jx3hilG2alDo2QLFFnthrp8xW2IzXSokY56sjltMKgxoRZFghOXywoDdEahESWjVqX+4l2JgOg1jTL25FXRS3Exa4nFHjQVRzBKAn//HvNeD/fO8eAtU2JBM8qCA6j/x+dLG/e+XOgIBmhLpIWk2ampPqB9UFOYQ20KqETWs4VKoZLzVB5AxgRD07mH966wubngi2yq3EOtS7uj1XVR5dKzVDcDcx8frjxFdums7wNqw6V4OhaM17vJxfmZ+YPWp0ouGfMGXeQDMoviSP52VXxp4R4We2c6CovhRPglPHNmLt8G/mwEyGlglBxoHGGBygEsv4o3wZmi1EC//fM+ndWIhbrbR5NB92YlN/t8PZWvKbGmOE4HMsw3+Hve8+JNhz4f4hNMZh3ByB+1bJs0gNJ/hQhRTv0y9//fDw5czEuWJk65/Q9ygGwomI/Jfrvy85dzV8gF5svZKd8aFn6Z52nQ/RRmol5UVb1BuBsoJRy5IxkhzCKeycb4Ew8PVyIGWvnMxz+aF06iJgpmnVxK/kqulmjrrm/J9/GCFK+fUt0dn7TquaCDqajfUJeLO7RJ80QlGZO06Rr7ojoJGWvkEthjqeFHZZdzx4lYbL+4WMfjArq8xVCcODrrIo+e+eb9N0P6jBhzgKbSfjLg8eQpuIBtTGqxbY7rjrSBcOlH6s5h+Vc2YRvMNfGbN5NJvIZf6UV0I0a3ph4y0Y4gkEdZm503hd61Yyz+oZOMULFHxCUZ441y9c6cm6YHl24OOvpI45TPG8NRNBnfts2nFw7w4xuTKKQ434iUvGEZlfYUfdAepBmA0gmtILwyQkVL2ANptsHtE4tsEz1X8HYaODVhT9lUPb2ezdsSHUANcM/tihIBN7l64zyPhYm+FyY8sAm/F3+1SLnpA1mAi/1wro6LIz3qlbyupqrJBHbCXM7ioUmHAldRXEbl3qoVknxwH5LI4jQN3KBQkOWJtPT0CLtxUc+wBJedLSEhgWLW1qQ5SeQ55AqBRTHe3Zgt2hwJKcYfj0/a5FdpFWP9baL6WoOERR4YORGDjSP4dbzH6q+HG62HAgOMcf3W8xSTvBcTmoeB8gfAFFswuh3YYnVYjGz5qgw51+uharovWvVFpUYRtFcTpicYfJMqnNv6ca7P3VBj9kFt+I4Ho7tNUDvpl/bgVMswNYM0YRiWicyCYp917QFbo+3p5IOzI53qJgQOjBma/VXTr6IADpEfa2xUY0tvxCaJ3JCbYadHvmxiGCeWwiuZFXImM2OcdYy1LMNmLDuW+A0kd8sK42FFwEorjbOuJlGbxbuO2gvC8GZKQAThPzl1czVRIgY6I9/kGuFFy0QJHeREO9E7lqj0Dm863f4DiTPcnjMGN3crXjiGzXLyMstCqkdOjwrwTUvmHm89cTyRZ/ryap6HIpa233gv6TQvHZyTjygKSwfERdl8yjtQEzdQRcSl4VYi//J7J9nLLVGDBT3Hb+tqlTLho2Fmq7hYQuuql6e/aiLVfdXQHbCEJ/7jakTC035FC2H8wUc/HST0Zb25Ap45fqp6hF+rvAWF8lJ4w23OLAGWgx3FTEmliB1eqo6eF1VUXfakyrwR5u1aCj0C6+P3UIcNi0JnnBBjjHMeLVb2TlgXCTfRWZ6snZSp4Qg3SNYvZrUeh80Y3ZZfWMTXZKrWhVnLyFSpJjgwXuAVU7NQv8cpnDHVgRSN07i6D5LDpe7sYKTbdFWeXCW/pZYuLp1QtsnRlMSPww8i8StJMYyXT2brhaSNMqa1v4yFFi+wXjomozdHSKKJx4YJmStMHSPpAuUoqLVijQntu/Thxf5sPBy3wvSgMQiuKkP8Xjss2ahm2J+aHNjoOS9amyTWBBotl+zIFc8zFQkkTIp/9N2sbwwTxQ8lxX3Y0vD7+pWh399vTvqYGqzNfkTh1Ug7O0EYcjFDeWmbktGmEoYl6w7doDlstNx+oAsVpDIPhBTtKLZa4uWMVxcqfW9t1Fxcuhp6cr8buRuts4ycEHrsevG/ggCfz+bNmiGGppJ2E9EgXHfg4t049aC24GhzjaQT7lF4h3eeDMmyNa9vsnboARmSgsL8FfxwnW3Z8OE75n1+/Edmk7JgrvhaxpVnCeQZGyXEgSgO5UGIplmfaMgaE3xXs4yXL9X5aMiUb+JY/IrrdnHW5HD6faUy8BdpAAAPW9z0AACPFr1u+z/kbcQrIhQAFbZA4qu5fOQzov0Z+4s1d/htAUNNANgHsBusmwmsSDlmF00qgRY1qOIuMLbsfMH1EALChtCawzdOXOIKhQUs9ygAvutABgCAATcChdpJFOlwaKABQLlLvQsR2ufCsG1w4dwMcxEULC6SARQgO0cDGDTLk6tciUJVX/W9PcUrUKRhSmOuWslRtEQdG3N6Svjy4kMVfZn4xhbVio3oVPKHXw0Xl/wWDua68gCS0Stbul4Ckxh9FxrtjM9CV1dUa2FQImLFG4KLAK51hR+fHAFxhUVLPGrRiny1RlUTr/8ZlNNMyeKsbggFNRWg0emRzwsORf3/hwQ=); }</style></defs><rect x="0" y="0" width="440" height="240" fill="#FDFCF7"></rect><g stroke-linecap="round" transform="translate(10 10) rotate(0 60 35)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.13 12.04 C3.37 8.26, 6.87 1.8, 10.63 -0.03 M0.13 12.04 C3.12 8.17, 5.22 5.5, 10.63 -0.03 M0.27 24.08 C4.92 16.28, 10.95 11.55, 21.26 -0.07 M0.27 24.08 C4.21 18.9, 9.38 13.15, 21.26 -0.07 M-0.26 36.88 C8.35 27.25, 18.28 15.9, 31.89 -0.1 M-0.26 36.88 C11.55 22.28, 24.62 8.78, 31.89 -0.1 M-0.12 48.92 C12.48 34.79, 20.93 24.16, 42.52 -0.14 M-0.12 48.92 C10.32 37.76, 18.87 26.31, 42.52 -0.14 M0.01 60.96 C14.86 45.44, 28.26 30.23, 53.15 -0.17 M0.01 60.96 C13.74 43.99, 26.74 30.44, 53.15 -0.17 M2.77 69.98 C18.07 51.92, 32.4 34.91, 63.78 -0.21 M2.77 69.98 C24.09 45.02, 45.16 21.68, 63.78 -0.21 M13.4 69.95 C25.92 55.62, 40.85 39.33, 74.41 -0.24 M13.4 69.95 C30.76 52.32, 45.43 33.98, 74.41 -0.24 M24.03 69.91 C43.04 47.98, 65.54 23.36, 85.04 -0.28 M24.03 69.91 C36.7 54.98, 48.96 40.59, 85.04 -0.28 M34.66 69.88 C53.48 47.54, 72.15 25.61, 95.67 -0.31 M34.66 69.88 C53.13 49.45, 68.81 31.14, 95.67 -0.31 M45.29 69.84 C68.97 42.3, 88.33 17.43, 106.3 -0.34 M45.29 69.84 C61.27 50.46, 78.36 32.95, 106.3 -0.34 M55.92 69.81 C75.53 48.8, 93.94 22.76, 116.27 0.38 M55.92 69.81 C71.16 52.4, 87.74 33.25, 116.27 0.38 M66.55 69.77 C76.09 56.27, 88.91 42.92, 120.34 7.89 M66.55 69.77 C83.73 48.59, 103.03 28.89, 120.34 7.89 M77.18 69.74 C93.3 51.11, 107.52 33.04, 120.48 19.93 M77.18 69.74 C88.07 56.74, 100.18 44.11, 120.48 19.93 M87.81 69.71 C94.98 61.62, 101.92 54.66, 120.61 31.97 M87.81 69.71 C95.9 62.04, 103.73 52.49, 120.61 31.97 M97.78 70.43 C102.66 65.74, 107.76 59.79, 120.09 44.77 M97.78 70.43 C107.48 59.43, 114.94 49.4, 120.09 44.77 M108.41 70.39 C114.73 64.79, 117.59 61.49, 120.22 56.81 M108.41 70.39 C111.83 65.46, 116.53 62.03, 120.22 56.81 M119.04 70.36 C119.2 70.03, 119.85 69.5, 120.35 68.85 M119.04 70.36 C119.49 69.97, 119.69 69.44, 120.35 68.85 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M12.1 69.92 C9.67 68.86, 7.21 66.23, 0.02 59.42 M12.1 69.92 C9.74 67.34, 6.87 65.69, 0.02 59.42 M24.14 69.78 C17.93 63.41, 12.2 61.06, -0.01 48.79 M24.14 69.78 C15.96 62.35, 9.49 55.85, -0.01 48.79 M36.93 70.31 C24.5 59.72, 11.85 48.37, -0.05 38.16 M36.93 70.31 C25.38 58.65, 13.21 49.53, -0.05 38.16 M48.98 70.17 C35.07 57.14, 21.79 47.88, -0.08 27.53 M48.98 70.17 C39.44 60.71, 28.83 51.5, -0.08 27.53 M61.02 70.04 C40.1 52.3, 15.14 32.94, -0.12 16.9 M61.02 70.04 C41.71 52.33, 19.63 35.51, -0.12 16.9 M73.06 69.91 C43.86 47.06, 16.81 23.1, -0.15 6.27 M73.06 69.91 C45.69 46.61, 19.07 22.77, -0.15 6.27 M85.1 69.77 C62.47 49.46, 40 28.96, 4.34 -0.42 M85.1 69.77 C56.15 46.63, 27.53 20.47, 4.34 -0.42 M97.89 70.3 C67.96 41.72, 35.2 15.56, 17.14 0.1 M97.89 70.3 C65.39 42.82, 35.4 14.97, 17.14 0.1 M109.93 70.16 C83.7 48.26, 60.01 26.61, 29.18 -0.03 M109.93 70.16 C82.75 46.89, 54.76 22.82, 29.18 -0.03 M120.47 68.72 C102.81 53.12, 82.5 38.69, 41.22 -0.17 M120.47 68.72 C101.56 50.28, 79.16 32.11, 41.22 -0.17 M120.43 58.09 C105.69 44.4, 88.44 29.47, 53.26 -0.3 M120.43 58.09 C97.77 38.54, 75.55 20.88, 53.26 -0.3 M120.4 47.46 C105.78 34.54, 91.65 21.43, 65.3 -0.43 M120.4 47.46 C102.89 33.04, 86.57 18.17, 65.3 -0.43 M120.36 36.83 C112.87 29.93, 102.71 18.81, 78.1 0.09 M120.36 36.83 C111.51 28.89, 102.9 20.59, 78.1 0.09 M120.33 26.2 C113.37 18.65, 106.37 13.84, 90.14 -0.04 M120.33 26.2 C113.8 19.28, 107.32 14.23, 90.14 -0.04 M120.29 15.57 C117.17 12.12, 113.79 7.06, 102.18 -0.18 M120.29 15.57 C114.69 9.78, 107.8 4.78, 102.18 -0.18 M120.26 4.94 C118.59 3.27, 118.09 2.42, 114.22 -0.31 M120.26 4.94 C118.12 3.33, 116.74 1.66, 114.22 -0.31" stroke="#FDFCF7" stroke-width="1" fill="none"></path><path d="M0 0 C39.94 1.51, 76.16 -0.59, 120 0 M0 0 C31.72 -0.57, 62.7 -0.03, 120 0 M120 0 C119.66 19.34, 117.79 40.14, 120 70 M120 0 C119.39 15.68, 120.47 31.18, 120 70 M120 70 C85.41 68.61, 51.29 67.76, 0 70 M120 70 C85.18 69.23, 49.35 68.19, 0 70 M0 70 C1.25 50.78, -0.36 29.22, 0 0 M0 70 C-0.42 51.45, 0.49 34.03, 0 0" stroke="#1B1F23" stroke-width="2" fill="none"></path></g><g transform="translate(46.990234375 33.75) rotate(0 23.009765625 11.25)"><text x="23.009765625" y="15.858" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="18px" fill="#1B1F23" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Client</text></g><g stroke-linecap="round"><g transform="translate(140.5 45) rotate(0 64.5 -0.6342088808190027)"><path d="M0 0 C45.18 -1.55, 87.38 -1.83, 129 0 M0 0 C41.17 -0.4, 82.53 -0.87, 129 0" stroke="#E66C2C" stroke-width="2" fill="none"></path></g><g transform="translate(140.5 45) rotate(0 64.5 -0.6342088808190027)"><path d="M105.41 8.28 C114.43 4.74, 120.43 1.61, 129 0 M105.41 8.28 C113.17 5.76, 121.17 2.68, 129 0" stroke="#E66C2C" stroke-width="2" fill="none"></path></g><g transform="translate(140.5 45) rotate(0 64.5 -0.6342088808190027)"><path d="M105.61 -8.82 C114.47 -6.49, 120.4 -3.74, 129 0 M105.61 -8.82 C113.43 -5.93, 121.37 -3.6, 129 0" stroke="#E66C2C" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(280 10) rotate(0 75 35)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.13 12.04 C1.21 8.18, 4.21 7.75, 10.63 -0.03 M0.13 12.04 C3.6 7.55, 7.47 3.81, 10.63 -0.03 M0.27 24.08 C3.58 20.24, 8.55 12.78, 21.26 -0.07 M0.27 24.08 C5.88 17.25, 10.92 12.67, 21.26 -0.07 M-0.26 36.88 C10.02 25.67, 20.65 13.18, 31.89 -0.1 M-0.26 36.88 C7.62 28.36, 14.65 20.3, 31.89 -0.1 M-0.12 48.92 C12.06 34.53, 26.79 16.64, 42.52 -0.14 M-0.12 48.92 C12.54 33.3, 26.78 16.19, 42.52 -0.14 M0.01 60.96 C9.94 50.03, 20.45 35.67, 53.15 -0.17 M0.01 60.96 C20.68 38.16, 41.63 13.46, 53.15 -0.17 M2.77 69.98 C26.1 42.94, 50.98 13.7, 63.78 -0.21 M2.77 69.98 C25.91 44.05, 48.99 16.05, 63.78 -0.21 M13.4 69.95 C32.19 49.16, 49.53 25.74, 74.41 -0.24 M13.4 69.95 C29.44 50.52, 47.46 29.48, 74.41 -0.24 M24.03 69.91 C45.35 46.42, 62.04 24.17, 85.04 -0.28 M24.03 69.91 C46.99 43.27, 71.27 15.62, 85.04 -0.28 M34.66 69.88 C55.12 45.55, 73.76 22.69, 95.67 -0.31 M34.66 69.88 C51.95 49.67, 71.88 28.23, 95.67 -0.31 M45.29 69.84 C62.92 47.06, 83.82 23.24, 106.3 -0.34 M45.29 69.84 C68.64 44.76, 90.93 17.8, 106.3 -0.34 M55.92 69.81 C77.46 41.3, 101.17 16.75, 116.27 0.38 M55.92 69.81 C72.31 50.95, 87.75 32.4, 116.27 0.38 M66.55 69.77 C83.12 50.37, 98.63 34.25, 126.91 0.34 M66.55 69.77 C82.86 52.89, 98.23 36.19, 126.91 0.34 M77.18 69.74 C95.02 47.84, 115.77 22.82, 137.54 0.31 M77.18 69.74 C99.43 45.29, 120.49 19.38, 137.54 0.31 M87.81 69.71 C101.79 54.59, 115.03 36.03, 148.17 0.27 M87.81 69.71 C102.73 52.46, 115.38 35.26, 148.17 0.27 M97.78 70.43 C119.4 46.13, 141.86 21.99, 150.92 9.29 M97.78 70.43 C115.64 48.5, 135.74 26.93, 150.92 9.29 M108.41 70.39 C118.84 59.65, 130.24 46.58, 150.4 22.09 M108.41 70.39 C118.06 60.87, 126.54 48.5, 150.4 22.09 M119.04 70.36 C133.28 54.9, 143.17 40.69, 150.53 34.13 M119.04 70.36 C124.47 61.8, 130.87 55.3, 150.53 34.13 M129.67 70.32 C138.08 61.01, 143.89 51.57, 150.67 46.17 M129.67 70.32 C138.18 60.89, 145.4 51.84, 150.67 46.17 M140.3 70.29 C144.54 68.33, 147.25 63.02, 150.8 58.21 M140.3 70.29 C142.82 67.52, 146.35 63.35, 150.8 58.21 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M12.1 69.92 C9.11 67.09, 4.21 61.64, 0.02 59.42 M12.1 69.92 C9.79 68.13, 6.46 64.46, 0.02 59.42 M24.14 69.78 C15.58 63.78, 9.05 57.54, -0.01 48.79 M24.14 69.78 C16.83 62.24, 9.03 56.24, -0.01 48.79 M36.93 70.31 C23.88 62.09, 14.14 49.13, -0.05 38.16 M36.93 70.31 C23.3 60.14, 11.8 48.7, -0.05 38.16 M48.98 70.17 C29.6 54.31, 12.87 35.92, -0.08 27.53 M48.98 70.17 C37.2 60.59, 26.03 49.81, -0.08 27.53 M61.02 70.04 C40.96 50.84, 20.51 35.25, -0.12 16.9 M61.02 70.04 C37.02 49.27, 14.34 29.11, -0.12 16.9 M73.06 69.91 C46.3 45.82, 20.58 21.86, -0.15 6.27 M73.06 69.91 C50.34 48.51, 25.6 28.57, -0.15 6.27 M85.1 69.77 C69.99 57.22, 51.84 40.88, 4.34 -0.42 M85.1 69.77 C52.92 41.6, 20.83 15.2, 4.34 -0.42 M97.89 70.3 C64.64 43.2, 34.31 13.79, 17.14 0.1 M97.89 70.3 C79.89 56, 63.8 41.53, 17.14 0.1 M109.93 70.16 C93.19 56.45, 76.78 42.13, 29.18 -0.03 M109.93 70.16 C80.21 44.54, 51.54 17.84, 29.18 -0.03 M121.98 70.03 C91.66 42.36, 59.33 16.08, 41.22 -0.17 M121.98 70.03 C95.95 46.73, 69.52 24.41, 41.22 -0.17 M134.02 69.9 C111.6 49.02, 85.49 29.32, 53.26 -0.3 M134.02 69.9 C112.02 49.78, 89.01 32.21, 53.26 -0.3 M146.06 69.76 C121.56 47.28, 96.48 25.26, 65.3 -0.43 M146.06 69.76 C128.41 53.55, 109.43 38.53, 65.3 -0.43 M150.55 63.07 C130.35 42.81, 108.58 26.23, 78.1 0.09 M150.55 63.07 C130.79 46.19, 110.56 28.61, 78.1 0.09 M150.52 52.44 C138.3 39.91, 122.87 27.32, 90.14 -0.04 M150.52 52.44 C133.16 36.28, 115.78 21.87, 90.14 -0.04 M150.48 41.81 C133.84 25.04, 117.03 11.73, 102.18 -0.18 M150.48 41.81 C139.29 30.43, 126.96 19.83, 102.18 -0.18 M150.45 31.18 C140.08 20.81, 130.92 12.58, 114.22 -0.31 M150.45 31.18 C143.4 24.94, 135.67 18.26, 114.22 -0.31 M150.41 20.55 C141.05 15.81, 136.71 8.57, 126.26 -0.44 M150.41 20.55 C143.48 15.7, 137.09 8.26, 126.26 -0.44 M150.38 9.92 C147.46 6.35, 143.88 4.73, 139.06 0.08 M150.38 9.92 C147.63 7.76, 143.93 4.67, 139.06 0.08" stroke="#FDFCF7" stroke-width="1" fill="none"></path><path d="M0 0 C36.55 -1.88, 73.32 -0.33, 150 0 M0 0 C56.74 0.36, 112.81 -1.51, 150 0 M150 0 C148.59 24.52, 148.71 45.86, 150 70 M150 0 C149.93 21.93, 149.44 44.92, 150 70 M150 70 C115.44 68.01, 78.29 70.52, 0 70 M150 70 C115.4 69.29, 82.28 70.6, 0 70 M0 70 C-0.61 52.77, -1.39 40.63, 0 0 M0 70 C0.94 51.41, 0.25 31.78, 0 0" stroke="#1B1F23" stroke-width="2" fill="none"></path></g><g transform="translate(311.4853515625 33.75) rotate(0 43.5146484375 11.25)"><text x="43.5146484375" y="15.858" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="18px" fill="#1B1F23" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">API Server</text></g><g stroke-linecap="round"><g transform="translate(355 90.5) rotate(0 0.0393500726372622 34.5)"><path d="M0 0 C-0.92 25.45, 0.63 54.02, 0 69 M0 0 C1.14 23.73, -0.73 48.24, 0 69" stroke="#2E7D74" stroke-width="2" fill="none"></path></g><g transform="translate(355 90.5) rotate(0 0.0393500726372622 34.5)"><path d="M-8.68 45.55 C-6.5 53.7, -1.65 64.95, 0 69 M-8.68 45.55 C-4.68 53.43, -3.53 62.1, 0 69" stroke="#2E7D74" stroke-width="2" fill="none"></path></g><g transform="translate(355 90.5) rotate(0 0.0393500726372622 34.5)"><path d="M8.42 45.46 C4.1 53.6, 2.45 64.88, 0 69 M8.42 45.46 C6.48 53.41, 1.68 62.11, 0 69" stroke="#2E7D74" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(290 170) rotate(0 70 30)"><path d="M-0.79 27.14 C-0.79 27.14, -0.79 27.14, -0.79 27.14 M-0.79 27.14 C-0.79 27.14, -0.79 27.14, -0.79 27.14 M2.63 35.41 C7.54 27.77, 14.75 19.39, 26.9 7.49 M2.63 35.41 C9.41 28.41, 16.54 19.42, 26.9 7.49 M6.7 42.92 C20.35 27.52, 29.54 13.56, 42.12 2.17 M6.7 42.92 C14.37 34.12, 23.06 25.13, 42.12 2.17 M13.39 47.42 C23 35.34, 35.32 24.02, 53.41 1.38 M13.39 47.42 C26.97 30.79, 39.85 16.16, 53.41 1.38 M20.74 51.16 C33.68 34.51, 50.24 19.54, 64.04 1.34 M20.74 51.16 C29.18 41.17, 39.37 30.83, 64.04 1.34 M28.09 54.89 C42.91 37.23, 57.46 22.18, 75.33 0.56 M28.09 54.89 C41.16 38.6, 55.5 22.64, 75.33 0.56 M37.41 56.37 C53.77 34.61, 71.31 18.2, 84.65 2.03 M37.41 56.37 C55.24 35.6, 72.43 15.7, 84.65 2.03 M46.73 57.84 C61.49 38.4, 81.91 18.76, 93.96 3.51 M46.73 57.84 C62.8 39.6, 78.72 21.72, 93.96 3.51 M56.7 58.56 C67.8 43.67, 79.96 33.48, 103.94 4.23 M56.7 58.56 C68.55 46.38, 78.87 34.25, 103.94 4.23 M66.68 59.28 C76.9 46.01, 89.5 34.11, 112.6 6.46 M66.68 59.28 C78.3 45.12, 90.49 32.12, 112.6 6.46 M77.31 59.25 C94 40.27, 111.01 18.96, 119.95 10.19 M77.31 59.25 C93.09 40.29, 110.24 20.3, 119.95 10.19 M88.59 58.46 C98.33 48.01, 105.91 36.01, 126.64 14.69 M88.59 58.46 C97.36 49.76, 105.13 39.56, 126.64 14.69 M99.88 57.67 C109.84 44.1, 122.18 31.96, 133.34 19.18 M99.88 57.67 C110.29 44.47, 121.62 31.68, 133.34 19.18 M115.1 52.35 C120.41 43.77, 127.34 37.72, 137.41 26.69 M115.1 52.35 C122.29 41.98, 132.53 33.24, 137.41 26.69 M5.47 42.48 C5.47 42.48, 5.47 42.48, 5.47 42.48 M5.47 42.48 C5.47 42.48, 5.47 42.48, 5.47 42.48 M31.1 54.15 C21.87 44.18, 10.05 36.42, -0.6 26.6 M31.1 54.15 C20.21 46.26, 10.37 37.05, -0.6 26.6 M44.65 55.33 C27.7 39.85, 15.16 28.61, 4.65 20.56 M44.65 55.33 C36.37 48.09, 28.55 40.81, 4.65 20.56 M58.95 57.17 C41.34 43.75, 26.67 29.55, 10.65 15.18 M58.95 57.17 C39.74 40.5, 21.54 24.88, 10.65 15.18 M68.73 55.07 C46.05 36.46, 26.93 20.09, 15.9 9.14 M68.73 55.07 C52.85 42.48, 38.59 29.23, 15.9 9.14 M80.02 54.28 C68.86 44.91, 55.56 33.02, 24.17 5.73 M80.02 54.28 C66.57 42.64, 52.87 30.97, 24.17 5.73 M91.3 53.49 C71.86 35.31, 49.97 20.44, 33.19 2.97 M91.3 53.49 C77.58 41.57, 64.66 30.4, 33.19 2.97 M102.59 52.7 C88.67 41.4, 78.17 32.33, 42.21 0.22 M102.59 52.7 C87.82 39.33, 72.25 26.84, 42.21 0.22 M111.61 49.94 C90.64 30.07, 68.83 14.08, 53.5 -0.57 M111.61 49.94 C95.73 36.48, 78.91 20.49, 53.5 -0.57 M120.63 47.19 C104.39 30.28, 83.96 14.56, 65.54 -0.71 M120.63 47.19 C100.92 29.54, 81.61 12.85, 65.54 -0.71 M129.66 44.43 C116.36 33.33, 102.94 19.53, 77.58 -0.84 M129.66 44.43 C110.64 26.64, 90.36 10.16, 77.58 -0.84 M134.9 38.39 C127.08 29.33, 116.24 19.75, 91.89 0.99 M134.9 38.39 C122.34 28.12, 108.83 16.57, 91.89 0.99 M140.15 32.35 C128.54 22.39, 117.49 12.18, 106.19 2.83 M140.15 32.35 C130.04 24.61, 122.19 16.07, 106.19 2.83" stroke="#FDFCF7" stroke-width="1" fill="none"></path><path d="M76.1 0.31 C87.25 0.15, 101.38 2.23, 110.75 5.08 C120.12 7.94, 127.45 12.87, 132.31 17.44 C137.18 22.01, 140.86 27.43, 139.94 32.51 C139.01 37.59, 133.57 43.81, 126.79 47.92 C120 52.04, 109.58 55.33, 99.21 57.22 C88.83 59.1, 76.1 59.58, 64.53 59.22 C52.96 58.86, 39.56 57.82, 29.77 55.07 C19.98 52.32, 10.83 47.42, 5.77 42.73 C0.7 38.04, -1.74 31.95, -0.6 26.92 C0.55 21.9, 5.76 16.73, 12.64 12.59 C19.52 8.46, 29.5 4.09, 40.69 2.13 C51.88 0.16, 72.72 0.95, 79.76 0.8 C86.79 0.66, 83.02 0.99, 82.89 1.26 M38.11 4.19 C47.72 1.61, 63.46 -0.03, 75.07 0.02 C86.68 0.06, 97.95 1.77, 107.77 4.49 C117.59 7.21, 128.62 11.87, 133.98 16.34 C139.35 20.8, 140.69 26.19, 139.95 31.27 C139.21 36.35, 135.99 42.79, 129.52 46.83 C123.06 50.86, 111.82 53.5, 101.15 55.5 C90.48 57.5, 77.03 59.05, 65.5 58.83 C53.97 58.61, 41.78 56.99, 31.95 54.18 C22.12 51.37, 12.04 46.1, 6.53 41.96 C1.02 37.81, -2.04 34.25, -1.1 29.29 C-0.17 24.34, 5.33 16.67, 12.12 12.23 C18.91 7.79, 34.89 3.9, 39.65 2.66 C44.41 1.43, 40.35 4.49, 40.67 4.81" stroke="#1B1F23" stroke-width="2" fill="none"></path></g><g transform="translate(325.75643156694167 189.78679656440357) rotate(0 34.24609375 10)"><text x="34.24609375" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#1B1F23" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Database</text></g></svg>'}}onAfterInitializeAsync(t){this.pict.views.PictFormMetacontroller&&(this.pict.views.PictFormMetacontroller.viewMarshalDestination="AppData.DiagramDemoForm"),super.onAfterInitializeAsync(()=>{try{this.marshalDataFromAppDataToDynamicViews()}catch(t){this.log&&this.log.warn("[diagram_form] initial marshal failed",{error:t.message})}return t()})}demo_toggleMode(t){let e=this.pict.providers["Pict-Input-Diagram"];e&&e.toggleMode(t,e=>{e&&this.log&&this.log.warn("[diagram_form demo] toggleMode error",{error:e.message}),this._refreshModeLabel(t)})}_refreshModeLabel(t){let e=this.pict.providers["Pict-Input-Diagram"];if(!e)return;let i="edit"===e.getMode(t)?"Done":"Edit",n="undefined"!=typeof document?document.getElementById("toggle-"+t):null;n&&(n.textContent=i)}}e.exports=o,e.exports.default_configuration=Object.assign({},n.PictFormApplication.default_configuration,{Name:"Diagram Form Example",Hash:"DiagramFormExample",pict_configuration:{Product:"DiagramForm-Example",DefaultFormManifest:r}})},{"../../source/Pict-Section-Form.js":40,"pict-application":6}],2:[function(t,e,i){e.exports={name:"fable-serviceproviderbase",version:"3.0.19",description:"Simple base classes for fable services.",main:"source/Fable-ServiceProviderBase.js",scripts:{start:"node source/Fable-ServiceProviderBase.js",test:"npx quack test",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build",types:"tsc -p ./tsconfig.build.json",check:"tsc -p . --noEmit"},types:"types/source/Fable-ServiceProviderBase.d.ts",mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},repository:{type:"git",url:"https://github.com/stevenvelozo/fable-serviceproviderbase.git"},keywords:["entity","behavior"],author:"Steven Velozo <steven@velozo.com> (http://velozo.com/)",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/fable-serviceproviderbase/issues"},homepage:"https://github.com/stevenvelozo/fable-serviceproviderbase",devDependencies:{"@types/mocha":"^10.0.10",fable:"^3.1.62",quackage:"^1.0.58",typescript:"^5.9.3"}}},{}],3:[function(t,e,i){const n=t("../package.json");class r{constructor(t,e,i){this.fable,this.UUID,this.options,this.services,this.servicesMap,"object"==typeof t&&t.isFable?this.connectFable(t):this.fable=!1,this._PackageFableServiceProvider=n,this.fable?(this.UUID=t.getUUID(),this.options="object"==typeof e?e:{}):(this.options="object"!=typeof t||t.isFable?"object"==typeof e?e:{}:t,this.UUID="CORE-SVC-".concat(Math.floor(89999*Math.random()+1e4))),this.serviceType="Unknown-".concat(this.UUID),this.Hash="string"==typeof i?i:this.fable||"string"!=typeof e?"".concat(this.UUID):e}connectFable(t){if("object"!=typeof t||!t.isFable){let e="Fable Service Provider Base: Cannot connect to Fable, invalid Fable object passed in. The pFable parameter was a [".concat(typeof t,"].}");return console.log(e),new Error(e)}return this.fable||(this.fable=t),this.log||(this.log=this.fable.Logging),this.services||(this.services=this.fable.services),this.servicesMap||(this.servicesMap=this.fable.servicesMap),!0}}_defineProperty(r,"isFableService",!0),e.exports=r,e.exports.CoreServiceProviderBase=r},{"../package.json":2}],4:[function(t,e,i){!function(t,n){"object"==typeof i&&void 0!==e?n(i):n((t="undefined"!=typeof globalThis?globalThis:t||self).marked={})}(this,function(t){function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},i.apply(this,arguments)}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function r(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(i)return(i=i.call(t)).next.bind(i);if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return n(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function a(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}t.defaults={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};var s=/[&<>"']/,c=new RegExp(s.source,"g"),l=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,p=new RegExp(l.source,"g"),d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},u=function(t){return d[t]};function h(t,e){if(e){if(s.test(t))return t.replace(c,u)}else if(l.test(t))return t.replace(p,u);return t}var m=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function g(t){return t.replace(m,function(t,e){return"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""})}var f=/(^|[^\[])\^/g;function D(t,e){t="string"==typeof t?t:t.source,e=e||"";var i={replace:function(e,n){return n=(n=n.source||n).replace(f,"$1"),t=t.replace(e,n),i},getRegex:function(){return new RegExp(t,e)}};return i}var y=/[^\w:]/g,v=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function b(t,e,i){if(t){var n;try{n=decodeURIComponent(g(i)).replace(y,"").toLowerCase()}catch(t){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}e&&!v.test(i)&&(i=function(t,e){T[" "+t]||(w.test(t)?T[" "+t]=t+"/":T[" "+t]=I(t,"/",!0));t=T[" "+t];var i=-1===t.indexOf(":");return"//"===e.substring(0,2)?i?e:t.replace(x,"$1")+e:"/"===e.charAt(0)?i?e:t.replace(S,"$1")+e:t+e}(e,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(t){return null}return i}var T={},w=/^[^:]+:\/*[^/]*$/,x=/^([^:]+:)[\s\S]*$/,S=/^([^:]+:\/*[^/]*)[\s\S]*$/;var P={exec:function(){}};function A(t,e){var i=t.replace(/\|/g,function(t,e,i){for(var n=!1,r=e;--r>=0&&"\\"===i[r];)n=!n;return n?"|":" |"}).split(/ \|/),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>e)i.splice(e);else for(;i.length<e;)i.push("");for(;n<i.length;n++)i[n]=i[n].trim().replace(/\\\|/g,"|");return i}function I(t,e,i){var n=t.length;if(0===n)return"";for(var r=0;r<n;){var o=t.charAt(n-r-1);if(o!==e||i){if(o===e||!i)break;r++}else r++}return t.slice(0,n-r)}function C(t,e){if(e<1)return"";for(var i="";e>1;)1&e&&(i+=t),e>>=1,t+=t;return i+t}function F(t,e,i,n){var r=e.href,o=e.title?h(e.title):null,a=t[1].replace(/\\([\[\]])/g,"$1");if("!"!==t[0].charAt(0)){n.state.inLink=!0;var s={type:"link",raw:i,href:r,title:o,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,s}return{type:"image",raw:i,href:r,title:o,text:h(a)}}var M=function(){function e(e){this.options=e||t.defaults}var i=e.prototype;return i.space=function(t){var e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}},i.code=function(t){var e=this.rules.block.code.exec(t);if(e){var i=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:I(i,"\n")}}},i.fences=function(t){var e=this.rules.block.fences.exec(t);if(e){var i=e[0],n=function(t,e){var i=t.match(/^(\s+)(?:```)/);if(null===i)return e;var n=i[1];return e.split("\n").map(function(t){var e=t.match(/^\s+/);return null===e?t:e[0].length>=n.length?t.slice(n.length):t}).join("\n")}(i,e[3]||"");return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:n}}},i.heading=function(t){var e=this.rules.block.heading.exec(t);if(e){var i=e[2].trim();if(/#$/.test(i)){var n=I(i,"#");this.options.pedantic?i=n.trim():n&&!/ $/.test(n)||(i=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}},i.hr=function(t){var e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}},i.blockquote=function(t){var e=this.rules.block.blockquote.exec(t);if(e){var i=e[0].replace(/^ *>[ \t]?/gm,""),n=this.lexer.state.top;this.lexer.state.top=!0;var r=this.lexer.blockTokens(i);return this.lexer.state.top=n,{type:"blockquote",raw:e[0],tokens:r,text:i}}},i.list=function(t){var e=this.rules.block.list.exec(t);if(e){var i,n,r,o,a,s,c,l,p,d,u,h,m=e[1].trim(),g=m.length>1,f={type:"list",raw:"",ordered:g,start:g?+m.slice(0,-1):"",loose:!1,items:[]};m=g?"\\d{1,9}\\"+m.slice(-1):"\\"+m,this.options.pedantic&&(m=g?m:"[*+-]");for(var D=new RegExp("^( {0,3}"+m+")((?:[\t ][^\\n]*)?(?:\\n|$))");t&&(h=!1,e=D.exec(t))&&!this.rules.block.hr.test(t);){if(i=e[0],t=t.substring(i.length),l=e[2].split("\n",1)[0].replace(/^\t+/,function(t){return" ".repeat(3*t.length)}),p=t.split("\n",1)[0],this.options.pedantic?(o=2,u=l.trimLeft()):(o=(o=e[2].search(/[^ ]/))>4?1:o,u=l.slice(o),o+=e[1].length),s=!1,!l&&/^ *$/.test(p)&&(i+=p+"\n",t=t.substring(p.length+1),h=!0),!h)for(var y=new RegExp("^ {0,"+Math.min(3,o-1)+"}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))"),v=new RegExp("^ {0,"+Math.min(3,o-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),b=new RegExp("^ {0,"+Math.min(3,o-1)+"}(?:```|~~~)"),T=new RegExp("^ {0,"+Math.min(3,o-1)+"}#");t&&(p=d=t.split("\n",1)[0],this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!b.test(p))&&!T.test(p)&&!y.test(p)&&!v.test(t);){if(p.search(/[^ ]/)>=o||!p.trim())u+="\n"+p.slice(o);else{if(s)break;if(l.search(/[^ ]/)>=4)break;if(b.test(l))break;if(T.test(l))break;if(v.test(l))break;u+="\n"+p}s||p.trim()||(s=!0),i+=d+"\n",t=t.substring(d.length+1),l=p.slice(o)}f.loose||(c?f.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(u))&&(r="[ ] "!==n[0],u=u.replace(/^\[[ xX]\] +/,"")),f.items.push({type:"list_item",raw:i,task:!!n,checked:r,loose:!1,text:u}),f.raw+=i}f.items[f.items.length-1].raw=i.trimRight(),f.items[f.items.length-1].text=u.trimRight(),f.raw=f.raw.trimRight();var w=f.items.length;for(a=0;a<w;a++)if(this.lexer.state.top=!1,f.items[a].tokens=this.lexer.blockTokens(f.items[a].text,[]),!f.loose){var x=f.items[a].tokens.filter(function(t){return"space"===t.type}),S=x.length>0&&x.some(function(t){return/\n.*\n/.test(t.raw)});f.loose=S}if(f.loose)for(a=0;a<w;a++)f.items[a].loose=!0;return f}},i.html=function(t){var e=this.rules.block.html.exec(t);if(e){var i={type:"html",raw:e[0],pre:!this.options.sanitizer&&("pre"===e[1]||"script"===e[1]||"style"===e[1]),text:e[0]};if(this.options.sanitize){var n=this.options.sanitizer?this.options.sanitizer(e[0]):h(e[0]);i.type="paragraph",i.text=n,i.tokens=this.lexer.inline(n)}return i}},i.def=function(t){var e=this.rules.block.def.exec(t);if(e){var i=e[1].toLowerCase().replace(/\s+/g," "),n=e[2]?e[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline._escapes,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:i,raw:e[0],href:n,title:r}}},i.table=function(t){var e=this.rules.block.table.exec(t);if(e){var i={type:"table",header:A(e[1]).map(function(t){return{text:t}}),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=e[0];var n,r,o,a,s=i.align.length;for(n=0;n<s;n++)/^ *-+: *$/.test(i.align[n])?i.align[n]="right":/^ *:-+: *$/.test(i.align[n])?i.align[n]="center":/^ *:-+ *$/.test(i.align[n])?i.align[n]="left":i.align[n]=null;for(s=i.rows.length,n=0;n<s;n++)i.rows[n]=A(i.rows[n],i.header.length).map(function(t){return{text:t}});for(s=i.header.length,r=0;r<s;r++)i.header[r].tokens=this.lexer.inline(i.header[r].text);for(s=i.rows.length,r=0;r<s;r++)for(a=i.rows[r],o=0;o<a.length;o++)a[o].tokens=this.lexer.inline(a[o].text);return i}}},i.lheading=function(t){var e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1],tokens:this.lexer.inline(e[1])}},i.paragraph=function(t){var e=this.rules.block.paragraph.exec(t);if(e){var i="\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:i,tokens:this.lexer.inline(i)}}},i.text=function(t){var e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}},i.escape=function(t){var e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:h(e[1])}},i.tag=function(t){var e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^<a /i.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):h(e[0]):e[0]}},i.link=function(t){var e=this.rules.inline.link.exec(t);if(e){var i=e[2].trim();if(!this.options.pedantic&&/^</.test(i)){if(!/>$/.test(i))return;var n=I(i.slice(0,-1),"\\");if((i.length-n.length)%2==0)return}else{var r=function(t,e){if(-1===t.indexOf(e[1]))return-1;for(var i=t.length,n=0,r=0;r<i;r++)if("\\"===t[r])r++;else if(t[r]===e[0])n++;else if(t[r]===e[1]&&--n<0)return r;return-1}(e[2],"()");if(r>-1){var o=(0===e[0].indexOf("!")?5:4)+e[1].length+r;e[2]=e[2].substring(0,r),e[0]=e[0].substring(0,o).trim(),e[3]=""}}var a=e[2],s="";if(this.options.pedantic){var c=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);c&&(a=c[1],s=c[3])}else s=e[3]?e[3].slice(1,-1):"";return a=a.trim(),/^</.test(a)&&(a=this.options.pedantic&&!/>$/.test(i)?a.slice(1):a.slice(1,-1)),F(e,{href:a?a.replace(this.rules.inline._escapes,"$1"):a,title:s?s.replace(this.rules.inline._escapes,"$1"):s},e[0],this.lexer)}},i.reflink=function(t,e){var i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){var n=(i[2]||i[1]).replace(/\s+/g," ");if(!(n=e[n.toLowerCase()])){var r=i[0].charAt(0);return{type:"text",raw:r,text:r}}return F(i,n,i[0],this.lexer)}},i.emStrong=function(t,e,i){void 0===i&&(i="");var n=this.rules.inline.emStrong.lDelim.exec(t);if(n&&(!n[3]||!i.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=n[1]||n[2]||"";if(!r||r&&(""===i||this.rules.inline.punctuation.exec(i))){var o,a,s=n[0].length-1,c=s,l=0,p="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(p.lastIndex=0,e=e.slice(-1*t.length+s);null!=(n=p.exec(e));)if(o=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(a=o.length,n[3]||n[4])c+=a;else if(!((n[5]||n[6])&&s%3)||(s+a)%3){if(!((c-=a)>0)){a=Math.min(a,a+c+l);var d=t.slice(0,s+n.index+(n[0].length-o.length)+a);if(Math.min(s,a)%2){var u=d.slice(1,-1);return{type:"em",raw:d,text:u,tokens:this.lexer.inlineTokens(u)}}var h=d.slice(2,-2);return{type:"strong",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}else l+=a}}},i.codespan=function(t){var e=this.rules.inline.code.exec(t);if(e){var i=e[2].replace(/\n/g," "),n=/[^ ]/.test(i),r=/^ /.test(i)&&/ $/.test(i);return n&&r&&(i=i.substring(1,i.length-1)),i=h(i,!0),{type:"codespan",raw:e[0],text:i}}},i.br=function(t){var e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}},i.del=function(t){var e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}},i.autolink=function(t,e){var i,n,r=this.rules.inline.autolink.exec(t);if(r)return n="@"===r[2]?"mailto:"+(i=h(this.options.mangle?e(r[1]):r[1])):i=h(r[1]),{type:"link",raw:r[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}},i.url=function(t,e){var i;if(i=this.rules.inline.url.exec(t)){var n,r;if("@"===i[2])r="mailto:"+(n=h(this.options.mangle?e(i[0]):i[0]));else{var o;do{o=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(o!==i[0]);n=h(i[0]),r="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},i.inlineText=function(t,e){var i,n=this.rules.inline.text.exec(t);if(n)return i=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):h(n[0]):n[0]:h(this.options.smartypants?e(n[0]):n[0]),{type:"text",raw:n[0],text:i}},e}(),R={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:P,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};R.def=D(R.def).replace("label",R._label).replace("title",R._title).getRegex(),R.bullet=/(?:[*+-]|\d{1,9}[.)])/,R.listItemStart=D(/^( *)(bull) */).replace("bull",R.bullet).getRegex(),R.list=D(R.list).replace(/bull/g,R.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+R.def.source+")").getRegex(),R._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",R._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,R.html=D(R.html,"i").replace("comment",R._comment).replace("tag",R._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),R.paragraph=D(R._paragraph).replace("hr",R.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",R._tag).getRegex(),R.blockquote=D(R.blockquote).replace("paragraph",R.paragraph).getRegex(),R.normal=i({},R),R.gfm=i({},R.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),R.gfm.table=D(R.gfm.table).replace("hr",R.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",R._tag).getRegex(),R.gfm.paragraph=D(R._paragraph).replace("hr",R.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",R.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",R._tag).getRegex(),R.pedantic=i({},R.normal,{html:D("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",R._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:P,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:D(R.normal._paragraph).replace("hr",R.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",R.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var E={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:P,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:P,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function H(t){return t.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function V(t){var e,i,n="",r=t.length;for(e=0;e<r;e++)i=t.charCodeAt(e),Math.random()>.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}E._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",E.punctuation=D(E.punctuation).replace(/punctuation/g,E._punctuation).getRegex(),E.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,E.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,E._comment=D(R._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),E.emStrong.lDelim=D(E.emStrong.lDelim).replace(/punct/g,E._punctuation).getRegex(),E.emStrong.rDelimAst=D(E.emStrong.rDelimAst,"g").replace(/punct/g,E._punctuation).getRegex(),E.emStrong.rDelimUnd=D(E.emStrong.rDelimUnd,"g").replace(/punct/g,E._punctuation).getRegex(),E._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,E._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,E._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,E.autolink=D(E.autolink).replace("scheme",E._scheme).replace("email",E._email).getRegex(),E._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,E.tag=D(E.tag).replace("comment",E._comment).replace("attribute",E._attribute).getRegex(),E._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,E._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,E._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,E.link=D(E.link).replace("label",E._label).replace("href",E._href).replace("title",E._title).getRegex(),E.reflink=D(E.reflink).replace("label",E._label).replace("ref",R._label).getRegex(),E.nolink=D(E.nolink).replace("ref",R._label).getRegex(),E.reflinkSearch=D(E.reflinkSearch,"g").replace("reflink",E.reflink).replace("nolink",E.nolink).getRegex(),E.normal=i({},E),E.pedantic=i({},E.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:D(/^!?\[(label)\]\((.*?)\)/).replace("label",E._label).getRegex(),reflink:D(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",E._label).getRegex()}),E.gfm=i({},E.normal,{escape:D(E.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),E.gfm.url=D(E.gfm.url,"i").replace("email",E.gfm._extended_email).getRegex(),E.breaks=i({},E.gfm,{br:D(E.br).replace("{2,}","*").getRegex(),text:D(E.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var L=function(){function i(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||t.defaults,this.options.tokenizer=this.options.tokenizer||new M,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var i={block:R.normal,inline:E.normal};this.options.pedantic?(i.block=R.pedantic,i.inline=E.pedantic):this.options.gfm&&(i.block=R.gfm,this.options.breaks?i.inline=E.breaks:i.inline=E.gfm),this.tokenizer.rules=i}i.lex=function(t,e){return new i(e).lex(t)},i.lexInline=function(t,e){return new i(e).inlineTokens(t)};var n,r,o,a=i.prototype;return a.lex=function(t){var e;for(t=t.replace(/\r\n|\r/g,"\n"),this.blockTokens(t,this.tokens);e=this.inlineQueue.shift();)this.inlineTokens(e.src,e.tokens);return this.tokens},a.blockTokens=function(t,e){var i,n,r,o,a=this;for(void 0===e&&(e=[]),t=this.options.pedantic?t.replace(/\t/g," ").replace(/^ +$/gm,""):t.replace(/^( *)(\t+)/gm,function(t,e,i){return e+" ".repeat(i.length)});t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(n){return!!(i=n.call({lexer:a},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)})))if(i=this.tokenizer.space(t))t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);else if(i=this.tokenizer.code(t))t=t.substring(i.raw.length),!(n=e[e.length-1])||"paragraph"!==n.type&&"text"!==n.type?e.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.heading(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.hr(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.blockquote(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.list(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.html(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.def(t))t=t.substring(i.raw.length),!(n=e[e.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.lheading(t))t=t.substring(i.raw.length),e.push(i);else if(r=t,this.options.extensions&&this.options.extensions.startBlock&&function(){var e=1/0,i=t.slice(1),n=void 0;a.options.extensions.startBlock.forEach(function(t){"number"==typeof(n=t.call({lexer:this},i))&&n>=0&&(e=Math.min(e,n))}),e<1/0&&e>=0&&(r=t.substring(0,e+1))}(),this.state.top&&(i=this.tokenizer.paragraph(r)))n=e[e.length-1],o&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i),o=r.length!==t.length,t=t.substring(i.raw.length);else if(i=this.tokenizer.text(t))t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i);else if(t){var s="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(s);break}throw new Error(s)}return this.state.top=!0,e},a.inline=function(t,e){return void 0===e&&(e=[]),this.inlineQueue.push({src:t,tokens:e}),e},a.inlineTokens=function(t,e){var i,n,r,o=this;void 0===e&&(e=[]);var a,s,c,l=t;if(this.tokens.links){var p=Object.keys(this.tokens.links);if(p.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)p.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+C("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+C("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(l));)l=l.slice(0,a.index+a[0].length-2)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;t;)if(s||(c=""),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(n){return!!(i=n.call({lexer:o},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)})))if(i=this.tokenizer.escape(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.tag(t))t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):e.push(i);else if(i=this.tokenizer.link(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):e.push(i);else if(i=this.tokenizer.emStrong(t,l,c))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.codespan(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.br(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.del(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.autolink(t,V))t=t.substring(i.raw.length),e.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(t,V))){if(r=t,this.options.extensions&&this.options.extensions.startInline&&function(){var e=1/0,i=t.slice(1),n=void 0;o.options.extensions.startInline.forEach(function(t){"number"==typeof(n=t.call({lexer:this},i))&&n>=0&&(e=Math.min(e,n))}),e<1/0&&e>=0&&(r=t.substring(0,e+1))}(),i=this.tokenizer.inlineText(r,H))t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(c=i.raw.slice(-1)),s=!0,(n=e[e.length-1])&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):e.push(i);else if(t){var d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}else t=t.substring(i.raw.length),e.push(i);return e},n=i,o=[{key:"rules",get:function(){return{block:R,inline:E}}}],(r=null)&&e(n.prototype,r),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),i}(),k=function(){function e(e){this.options=e||t.defaults}var i=e.prototype;return i.code=function(t,e,i){var n=(e||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(t,n);null!=r&&r!==t&&(i=!0,t=r)}return t=t.replace(/\n$/,"")+"\n",n?'<pre><code class="'+this.options.langPrefix+h(n)+'">'+(i?t:h(t,!0))+"</code></pre>\n":"<pre><code>"+(i?t:h(t,!0))+"</code></pre>\n"},i.blockquote=function(t){return"<blockquote>\n"+t+"</blockquote>\n"},i.html=function(t){return t},i.heading=function(t,e,i,n){return this.options.headerIds?"<h"+e+' id="'+(this.options.headerPrefix+n.slug(i))+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"},i.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},i.list=function(t,e,i){var n=e?"ol":"ul";return"<"+n+(e&&1!==i?' start="'+i+'"':"")+">\n"+t+"</"+n+">\n"},i.listitem=function(t){return"<li>"+t+"</li>\n"},i.checkbox=function(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},i.paragraph=function(t){return"<p>"+t+"</p>\n"},i.table=function(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"},i.tablerow=function(t){return"<tr>\n"+t+"</tr>\n"},i.tablecell=function(t,e){var i=e.header?"th":"td";return(e.align?"<"+i+' align="'+e.align+'">':"<"+i+">")+t+"</"+i+">\n"},i.strong=function(t){return"<strong>"+t+"</strong>"},i.em=function(t){return"<em>"+t+"</em>"},i.codespan=function(t){return"<code>"+t+"</code>"},i.br=function(){return this.options.xhtml?"<br/>":"<br>"},i.del=function(t){return"<del>"+t+"</del>"},i.link=function(t,e,i){if(null===(t=b(this.options.sanitize,this.options.baseUrl,t)))return i;var n='<a href="'+t+'"';return e&&(n+=' title="'+e+'"'),n+=">"+i+"</a>"},i.image=function(t,e,i){if(null===(t=b(this.options.sanitize,this.options.baseUrl,t)))return i;var n='<img src="'+t+'" alt="'+i+'"';return e&&(n+=' title="'+e+'"'),n+=this.options.xhtml?"/>":">"},i.text=function(t){return t},e}(),_=function(){function t(){}var e=t.prototype;return e.strong=function(t){return t},e.em=function(t){return t},e.codespan=function(t){return t},e.del=function(t){return t},e.html=function(t){return t},e.text=function(t){return t},e.link=function(t,e,i){return""+i},e.image=function(t,e,i){return""+i},e.br=function(){return""},t}(),O=function(){function t(){this.seen={}}var e=t.prototype;return e.serialize=function(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},e.getNextSafeSlug=function(t,e){var i=t,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[t];do{i=t+"-"+ ++n}while(this.seen.hasOwnProperty(i))}return e||(this.seen[t]=n,this.seen[i]=0),i},e.slug=function(t,e){void 0===e&&(e={});var i=this.serialize(t);return this.getNextSafeSlug(i,e.dryrun)},t}(),U=function(){function e(e){this.options=e||t.defaults,this.options.renderer=this.options.renderer||new k,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new _,this.slugger=new O}e.parse=function(t,i){return new e(i).parse(t)},e.parseInline=function(t,i){return new e(i).parseInline(t)};var i=e.prototype;return i.parse=function(t,e){void 0===e&&(e=!0);var i,n,r,o,a,s,c,l,p,d,u,h,m,f,D,y,v,b,T,w="",x=t.length;for(i=0;i<x;i++)if(d=t[i],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[d.type])||!1===(T=this.options.extensions.renderers[d.type].call({parser:this},d))&&["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(d.type))switch(d.type){case"space":continue;case"hr":w+=this.renderer.hr();continue;case"heading":w+=this.renderer.heading(this.parseInline(d.tokens),d.depth,g(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue;case"code":w+=this.renderer.code(d.text,d.lang,d.escaped);continue;case"table":for(l="",c="",o=d.header.length,n=0;n<o;n++)c+=this.renderer.tablecell(this.parseInline(d.header[n].tokens),{header:!0,align:d.align[n]});for(l+=this.renderer.tablerow(c),p="",o=d.rows.length,n=0;n<o;n++){for(c="",a=(s=d.rows[n]).length,r=0;r<a;r++)c+=this.renderer.tablecell(this.parseInline(s[r].tokens),{header:!1,align:d.align[r]});p+=this.renderer.tablerow(c)}w+=this.renderer.table(l,p);continue;case"blockquote":p=this.parse(d.tokens),w+=this.renderer.blockquote(p);continue;case"list":for(u=d.ordered,h=d.start,m=d.loose,o=d.items.length,p="",n=0;n<o;n++)y=(D=d.items[n]).checked,v=D.task,f="",D.task&&(b=this.renderer.checkbox(y),m?D.tokens.length>0&&"paragraph"===D.tokens[0].type?(D.tokens[0].text=b+" "+D.tokens[0].text,D.tokens[0].tokens&&D.tokens[0].tokens.length>0&&"text"===D.tokens[0].tokens[0].type&&(D.tokens[0].tokens[0].text=b+" "+D.tokens[0].tokens[0].text)):D.tokens.unshift({type:"text",text:b}):f+=b),f+=this.parse(D.tokens,m),p+=this.renderer.listitem(f,v,y);w+=this.renderer.list(p,u,h);continue;case"html":w+=this.renderer.html(d.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(p=d.tokens?this.parseInline(d.tokens):d.text;i+1<x&&"text"===t[i+1].type;)p+="\n"+((d=t[++i]).tokens?this.parseInline(d.tokens):d.text);w+=e?this.renderer.paragraph(p):p;continue;default:var S='Token with "'+d.type+'" type was not found.';if(this.options.silent)return void console.error(S);throw new Error(S)}else w+=T||"";return w},i.parseInline=function(t,e){e=e||this.renderer;var i,n,r,o="",a=t.length;for(i=0;i<a;i++)if(n=t[i],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type])||!1===(r=this.options.extensions.renderers[n.type].call({parser:this},n))&&["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type))switch(n.type){case"escape":case"text":o+=e.text(n.text);break;case"html":o+=e.html(n.text);break;case"link":o+=e.link(n.href,n.title,this.parseInline(n.tokens,e));break;case"image":o+=e.image(n.href,n.title,n.text);break;case"strong":o+=e.strong(this.parseInline(n.tokens,e));break;case"em":o+=e.em(this.parseInline(n.tokens,e));break;case"codespan":o+=e.codespan(n.text);break;case"br":o+=e.br();break;case"del":o+=e.del(this.parseInline(n.tokens,e));break;default:var s='Token with "'+n.type+'" type was not found.';if(this.options.silent)return void console.error(s);throw new Error(s)}else o+=r||"";return o},e}(),j=function(){function e(e){this.options=e||t.defaults}var i=e.prototype;return i.preprocess=function(t){return t},i.postprocess=function(t){return t},e}();function B(t,e){return function(n,r,o){"function"==typeof r&&(o=r,r=null);var a=i({},r),s=function(t,e,i){return function(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t){var r="<p>An error occurred:</p><pre>"+h(n.message+"",!0)+"</pre>";return e?Promise.resolve(r):i?void i(null,r):r}if(e)return Promise.reject(n);if(!i)throw n;i(n)}}((r=i({},N.defaults,a)).silent,r.async,o);if(null==n)return s(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof n)return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(function(t){t&&t.sanitize&&!t.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}(r),r.hooks&&(r.hooks.options=r),o){var c,l=r.highlight;try{r.hooks&&(n=r.hooks.preprocess(n)),c=t(n,r)}catch(t){return s(t)}var p=function(t){var i;if(!t)try{r.walkTokens&&N.walkTokens(c,r.walkTokens),i=e(c,r),r.hooks&&(i=r.hooks.postprocess(i))}catch(e){t=e}return r.highlight=l,t?s(t):o(null,i)};if(!l||l.length<3)return p();if(delete r.highlight,!c.length)return p();var d=0;return N.walkTokens(c,function(t){"code"===t.type&&(d++,setTimeout(function(){l(t.text,t.lang,function(e,i){if(e)return p(e);null!=i&&i!==t.text&&(t.text=i,t.escaped=!0),0===--d&&p()})},0))}),void(0===d&&p())}if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(n):n).then(function(e){return t(e,r)}).then(function(t){return r.walkTokens?Promise.all(N.walkTokens(t,r.walkTokens)).then(function(){return t}):t}).then(function(t){return e(t,r)}).then(function(t){return r.hooks?r.hooks.postprocess(t):t}).catch(s);try{r.hooks&&(n=r.hooks.preprocess(n));var u=t(n,r);r.walkTokens&&N.walkTokens(u,r.walkTokens);var m=e(u,r);return r.hooks&&(m=r.hooks.postprocess(m)),m}catch(t){return s(t)}}}function N(t,e,i){return B(L.lex,U.parse)(t,e,i)}j.passThroughHooks=new Set(["preprocess","postprocess"]),N.options=N.setOptions=function(e){var n;return N.defaults=i({},N.defaults,e),n=N.defaults,t.defaults=n,N},N.getDefaults=a,N.defaults=t.defaults,N.use=function(){for(var t=N.defaults.extensions||{renderers:{},childTokens:{}},e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.forEach(function(e){var n=i({},e);if(n.async=N.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(function(e){if(!e.name)throw new Error("extension name required");if(e.renderer){var i=t.renderers[e.name];t.renderers[e.name]=i?function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=e.renderer.apply(this,n);return!1===o&&(o=i.apply(this,n)),o}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");t[e.level]?t[e.level].unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer&&function(){var t=N.defaults.renderer||new k,i=function(i){var n=t[i];t[i]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.renderer[i].apply(t,o);return!1===s&&(s=n.apply(t,o)),s}};for(var r in e.renderer)i(r);n.renderer=t}(),e.tokenizer&&function(){var t=N.defaults.tokenizer||new M,i=function(i){var n=t[i];t[i]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.tokenizer[i].apply(t,o);return!1===s&&(s=n.apply(t,o)),s}};for(var r in e.tokenizer)i(r);n.tokenizer=t}(),e.hooks&&function(){var t=N.defaults.hooks||new j,i=function(i){var n=t[i];j.passThroughHooks.has(i)?t[i]=function(r){if(N.defaults.async)return Promise.resolve(e.hooks[i].call(t,r)).then(function(e){return n.call(t,e)});var o=e.hooks[i].call(t,r);return n.call(t,o)}:t[i]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.hooks[i].apply(t,o);return!1===s&&(s=n.apply(t,o)),s}};for(var r in e.hooks)i(r);n.hooks=t}(),e.walkTokens){var r=N.defaults.walkTokens;n.walkTokens=function(t){var i=[];return i.push(e.walkTokens.call(this,t)),r&&(i=i.concat(r.call(this,t))),i}}N.setOptions(n)})},N.walkTokens=function(t,e){for(var i,n=[],o=function(){var t=i.value;switch(n=n.concat(e.call(N,t)),t.type){case"table":for(var o,a=r(t.header);!(o=a()).done;){var s=o.value;n=n.concat(N.walkTokens(s.tokens,e))}for(var c,l=r(t.rows);!(c=l()).done;)for(var p,d=r(c.value);!(p=d()).done;){var u=p.value;n=n.concat(N.walkTokens(u.tokens,e))}break;case"list":n=n.concat(N.walkTokens(t.items,e));break;default:N.defaults.extensions&&N.defaults.extensions.childTokens&&N.defaults.extensions.childTokens[t.type]?N.defaults.extensions.childTokens[t.type].forEach(function(i){n=n.concat(N.walkTokens(t[i],e))}):t.tokens&&(n=n.concat(N.walkTokens(t.tokens,e)))}},a=r(t);!(i=a()).done;)o();return n},N.parseInline=B(L.lexInline,U.parseInline),N.Parser=U,N.parser=U.parse,N.Renderer=k,N.TextRenderer=_,N.Lexer=L,N.lexer=L.lex,N.Tokenizer=M,N.Slugger=O,N.Hooks=j,N.parse=N;var G=N.options,z=N.setOptions,q=N.use,W=N.walkTokens,J=N.parseInline,K=N,X=U.parse,Y=L.lex;t.Hooks=j,t.Lexer=L,t.Parser=U,t.Renderer=k,t.Slugger=O,t.TextRenderer=_,t.Tokenizer=M,t.getDefaults=a,t.lexer=Y,t.marked=N,t.options=G,t.parse=K,t.parseInline=J,t.parser=X,t.setOptions=z,t.use=q,t.walkTokens=W})},{}],5:[function(t,e,i){e.exports={name:"pict-application",version:"1.0.34",description:"Application base class for a pict view-based application",main:"source/Pict-Application.js",scripts:{test:"npx quack test",start:"node source/Pict-Application.js",coverage:"npx quack coverage",build:"npx quack build","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-application-image:local","docker-dev-run":'docker run -it -d --name pict-application-dev -p 30001:8080 -p 38086:8086 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-application" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-application-image:local',"docker-dev-shell":"docker exec -it pict-application-dev /bin/bash",tests:"npx quack test -g",lint:"eslint source/**",types:"tsc -p ."},types:"types/source/Pict-Application.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-application.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-application/issues"},homepage:"https://github.com/stevenvelozo/pict-application#readme",devDependencies:{"@eslint/js":"^9.28.0","browser-env":"^3.3.0",eslint:"^9.28.0",pict:"^1.0.348","pict-docuserve":"^0.1.5","pict-provider":"^1.0.10","pict-view":"^1.0.66",quackage:"^1.1.0",typescript:"^5.9.3"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},dependencies:{"fable-serviceproviderbase":"^3.0.19"}}},{}],6:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json"),o={Name:"DefaultPictApplication",MainViewportViewIdentifier:"Default-View",MainViewportRenderableHash:!1,MainViewportDestinationAddress:!1,MainViewportDefaultDataAddress:!1,AutoSolveAfterInitialize:!0,AutoRenderMainViewportViewAfterInitialize:!0,AutoRenderViewsAfterInitialize:!1,AutoLoginAfterInitialize:!1,AutoLoadDataAfterLogin:!1,ConfigurationOnlyViews:[],Manifests:{},IdentifierAddressPrefix:"PICT-"};e.exports=class extends n{constructor(t,e,i){let n="object"==typeof t.settings.PictApplicationConfiguration?t.settings.PictApplicationConfiguration:{};super(t,Object.assign({},JSON.parse(JSON.stringify(o)),n,e),i),this.options,this.log,this.fable,this.UUID,this.Hash,this.servicesMap,this.serviceType="PictApplication",this._Package=r,this.pict=this.fable,this.AppData=this.fable.AppData,this.Bundle=this.fable.Bundle,this.initializeTimestamp,this.lastSolvedTimestamp,this.lastLoginTimestamp,this.lastMarshalFromViewsTimestamp,this.lastMarshalToViewsTimestamp,this.lastAutoRenderTimestamp,this.lastLoadDataTimestamp;let a=Object.keys(this.options.Manifests);if(a.length>0)for(let t=0;t<a.length;t++){let e=a[t];this.fable.instantiateServiceProvider("Manifest",this.options.Manifests[e],e)}}onPreSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onPreSolve:")),!0}onPreSolveAsync(t){return this.onPreSolve(),t()}onBeforeSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeSolve:")),!0}onBeforeSolveAsync(t){return this.onBeforeSolve(),t()}onSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onSolve:")),!0}onSolveAsync(t){return this.onSolve(),t()}solve(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing solve() function..."));let t=Object.keys(this.pict.providers),e=[];for(let i=0;i<t.length;i++){let n=this.pict.providers[t[i]];n.options.AutoSolveWithApp&&e.push(n)}e.sort((t,e)=>t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal);for(let t=0;t<e.length;t++)e[t].solve(e[t]);this.onBeforeSolve();let i=Object.keys(this.pict.views),n=[];for(let t=0;t<i.length;t++){let e=this.pict.views[i[t]];e.options.AutoInitialize&&n.push(e)}n.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let t=0;t<n.length;t++)n[t].solve();return this.onSolve(),this.onAfterSolve(),this.lastSolvedTimestamp=this.fable.log.getTimeStamp(),!0}solveAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");e.anticipate(this.onBeforeSolveAsync.bind(this));let i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync Auto Callback Error: ").concat(t),t)});let n=Object.keys(this.pict.providers),r=[];for(let t=0;t<n.length;t++){let e=this.pict.providers[n[t]];e.options.AutoSolveWithApp&&r.push(e)}r.sort((t,e)=>t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal);for(let t=0;t<r.length;t++)e.anticipate(r[t].solveAsync.bind(r[t]));let o=Object.keys(this.pict.views),a=[];for(let t=0;t<o.length;t++){let e=this.pict.views[o[t]];e.options.AutoSolveWithApp&&a.push(e)}a.sort((t,e)=>t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal);for(let t=0;t<a.length;t++)e.anticipate(a[t].solveAsync.bind(a[t]));e.anticipate(this.onSolveAsync.bind(this)),e.anticipate(this.onAfterSolveAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync() complete.")),this.lastSolvedTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterSolve:")),!0}onAfterSolveAsync(t){return this.onAfterSolve(),t()}onBeforeLoginAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeLoginAsync:")),t()}onLoginAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onLoginAsync:")),t()}loginAsync(t){const e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");let i=t;"function"!=typeof i&&(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loginAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loginAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeLoginAsync.bind(this)),e.anticipate(this.onLoginAsync.bind(this)),e.anticipate(this.onAfterLoginAsync.bind(this)),this.options.AutoLoadDataAfterLogin&&e.anticipate(t=>{if(!this.isLoggedIn())return t();this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto loading data after login...")),this.loadDataAsync(e=>{t(e)})}),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loginAsync() complete.")),this.lastLoginTimestamp=this.fable.log.getTimeStamp(),i(t)))}isLoggedIn(){return!0}onAfterLoginAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterLoginAsync:")),t()}onBeforeLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeLoadDataAsync:")),t()}onLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onLoadDataAsync:")),t()}loadDataAsync(t){const e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");let i=t;"function"!=typeof i&&(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loadDataAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loadDataAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeLoadDataAsync.bind(this));let n=Object.keys(this.pict.providers),r=[];for(let t=0;t<n.length;t++){let e=this.pict.providers[n[t]];e.options.AutoLoadDataWithApp&&r.push(e)}r.sort((t,e)=>t.options.AutoLoadDataOrdinal-e.options.AutoLoadDataOrdinal);for(const t of r)e.anticipate(t.onBeforeLoadDataAsync.bind(t));e.anticipate(this.onLoadDataAsync.bind(this));for(const t of r)e.anticipate(t.onLoadDataAsync.bind(t));e.anticipate(this.onAfterLoadDataAsync.bind(this));for(const t of r)e.anticipate(t.onAfterLoadDataAsync.bind(t));e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loadDataAsync() complete.")),this.lastLoadDataTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterLoadDataAsync:")),t()}onBeforeSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeSaveDataAsync:")),t()}onSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onSaveDataAsync:")),t()}saveDataAsync(t){const e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");let i=t;"function"!=typeof i&&(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," saveDataAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," saveDataAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeSaveDataAsync.bind(this));let n=Object.keys(this.pict.providers),r=[];for(let t=0;t<n.length;t++){let e=this.pict.providers[n[t]];e.options.AutoSaveDataWithApp&&r.push(e)}r.sort((t,e)=>t.options.AutoSaveDataOrdinal-e.options.AutoSaveDataOrdinal);for(const t of r)e.anticipate(t.onBeforeSaveDataAsync.bind(t));e.anticipate(this.onSaveDataAsync.bind(this));for(const t of r)e.anticipate(t.onSaveDataAsync.bind(t));e.anticipate(this.onAfterSaveDataAsync.bind(this));for(const t of r)e.anticipate(t.onAfterSaveDataAsync.bind(t));e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," saveDataAsync() complete.")),this.lastSaveDataTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterSaveDataAsync:")),t()}onBeforeInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeInitialize:")),!0}onBeforeInitializeAsync(t){return this.onBeforeInitialize(),t()}onInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onInitialize:")),!0}onInitializeAsync(t){return this.onInitialize(),t()}initialize(){if(this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initialize:")),this.initializeTimestamp)return this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initialize called but initialization is already completed. Aborting.")),!1;{if(this.onBeforeInitialize(),"ConfigurationOnlyViews"in this.options)for(let t=0;t<this.options.ConfigurationOnlyViews.length;t++){let e=void 0===this.options.ConfigurationOnlyViews[t].ViewIdentifier?"AutoView-".concat(this.fable.getUUID()):this.options.ConfigurationOnlyViews[t].ViewIdentifier;this.log.info("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," adding configuration only view: ").concat(e)),this.pict.addView(e,this.options.ConfigurationOnlyViews[t])}this.onInitialize();let t=Object.keys(this.pict.providers),e=[];for(let i=0;i<t.length;i++){let n=this.pict.providers[t[i]];n.options.AutoInitialize&&e.push(n)}e.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let t=0;t<e.length;t++)e[t].initialize();let i=Object.keys(this.pict.views),n=[];for(let t=0;t<i.length;t++){let e=this.pict.views[i[t]];e.options.AutoInitialize&&n.push(e)}n.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let t=0;t<n.length;t++)n[t].initialize();return this.onAfterInitialize(),this.options.AutoSolveAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto solving after initialization...")),this.solve()),this.options.AutoRenderMainViewportViewAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto rendering after initialization...")),this.render()),this.initializeTimestamp=this.fable.log.getTimeStamp(),this.onCompletionOfInitialize(),!0}}initializeAsync(t){this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync:"));let e="function"==typeof t&&t;if(e||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),e=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync Auto Callback Error: ").concat(t),t)}),this.initializeTimestamp)return this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," async initialize called but initialization is already completed. Aborting.")),this.onCompletionOfInitializeAsync(e);{let t=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");if(this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning initialization...")),"ConfigurationOnlyViews"in this.options)for(let t=0;t<this.options.ConfigurationOnlyViews.length;t++){let e=void 0===this.options.ConfigurationOnlyViews[t].ViewIdentifier?"AutoView-".concat(this.fable.getUUID()):this.options.ConfigurationOnlyViews[t].ViewIdentifier;this.log.info("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," adding configuration only view: ").concat(e)),this.pict.addView(e,this.options.ConfigurationOnlyViews[t])}t.anticipate(this.onBeforeInitializeAsync.bind(this)),t.anticipate(this.onInitializeAsync.bind(this));let i=Object.keys(this.pict.providers),n=[];for(let t=0;t<i.length;t++){let e=this.pict.providers[i[t]];e.options.AutoInitialize&&n.push(e)}n.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let e=0;e<n.length;e++)t.anticipate(n[e].initializeAsync.bind(n[e]));let r=Object.keys(this.pict.views),o=[];for(let t=0;t<r.length;t++){let e=this.pict.views[r[t]];e.options.AutoInitialize&&o.push(e)}o.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let e=0;e<o.length;e++){let i=o[e];t.anticipate(i.initializeAsync.bind(i))}t.anticipate(this.onAfterInitializeAsync.bind(this)),this.options.AutoLoginAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto login (asynchronously) after initialization...")),t.anticipate(this.loginAsync.bind(this))),this.options.AutoSolveAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto solving (asynchronously) after initialization...")),t.anticipate(this.solveAsync.bind(this))),this.options.AutoRenderMainViewportViewAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto rendering (asynchronously) after initialization...")),t.anticipate(this.renderMainViewportAsync.bind(this))),t.wait(t=>(t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync Error: ").concat(t.message||t),{stack:t.stack}),this.initializeTimestamp=this.fable.log.getTimeStamp(),this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initialization complete.")),e()))}}onAfterInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterInitialize:")),!0}onAfterInitializeAsync(t){return this.onAfterInitialize(),t()}onCompletionOfInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onCompletionOfInitialize:")),!0}onCompletionOfInitializeAsync(t){return this.onCompletionOfInitialize(),t()}onBeforeMarshalFromViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeMarshalFromViews:")),!0}onBeforeMarshalFromViewsAsync(t){return this.onBeforeMarshalFromViews(),t()}onMarshalFromViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onMarshalFromViews:")),!0}onMarshalFromViewsAsync(t){return this.onMarshalFromViews(),t()}marshalFromViews(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing marshalFromViews() function...")),this.onBeforeMarshalFromViews();let t=Object.keys(this.pict.views),e=[];for(let i=0;i<t.length;i++){let n=this.pict.views[t[i]];e.push(n)}for(let t=0;t<e.length;t++)e[t].marshalFromView();return this.onMarshalFromViews(),this.onAfterMarshalFromViews(),this.lastMarshalFromViewsTimestamp=this.fable.log.getTimeStamp(),!0}marshalFromViewsAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewsAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewsAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalFromViewsAsync.bind(this));let n=Object.keys(this.pict.views),r=[];for(let t=0;t<n.length;t++){let e=this.pict.views[n[t]];r.push(e)}for(let t=0;t<r.length;t++)e.anticipate(r[t].marshalFromViewAsync.bind(r[t]));e.anticipate(this.onMarshalFromViewsAsync.bind(this)),e.anticipate(this.onAfterMarshalFromViewsAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewsAsync() complete.")),this.lastMarshalFromViewsTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterMarshalFromViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterMarshalFromViews:")),!0}onAfterMarshalFromViewsAsync(t){return this.onAfterMarshalFromViews(),t()}onBeforeMarshalToViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeMarshalToViews:")),!0}onBeforeMarshalToViewsAsync(t){return this.onBeforeMarshalToViews(),t()}onMarshalToViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onMarshalToViews:")),!0}onMarshalToViewsAsync(t){return this.onMarshalToViews(),t()}marshalToViews(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing marshalToViews() function...")),this.onBeforeMarshalToViews();let t=Object.keys(this.pict.views),e=[];for(let i=0;i<t.length;i++){let n=this.pict.views[t[i]];e.push(n)}for(let t=0;t<e.length;t++)e[t].marshalToView();return this.onMarshalToViews(),this.onAfterMarshalToViews(),this.lastMarshalToViewsTimestamp=this.fable.log.getTimeStamp(),!0}marshalToViewsAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewsAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewsAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalToViewsAsync.bind(this));let n=Object.keys(this.pict.views),r=[];for(let t=0;t<n.length;t++){let e=this.pict.views[n[t]];r.push(e)}for(let t=0;t<r.length;t++)e.anticipate(r[t].marshalToViewAsync.bind(r[t]));e.anticipate(this.onMarshalToViewsAsync.bind(this)),e.anticipate(this.onAfterMarshalToViewsAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewsAsync() complete.")),this.lastMarshalToViewsTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterMarshalToViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterMarshalToViews:")),!0}onAfterMarshalToViewsAsync(t){return this.onAfterMarshalToViews(),t()}onBeforeRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeRender:")),!0}onBeforeRenderAsync(t){return this.onBeforeRender(),t()}render(t,e,i,n){let r="string"!=typeof t?this.options.MainViewportViewIdentifier:t,o="string"!=typeof e?this.options.MainViewportRenderableHash:e,a="string"!=typeof i?this.options.MainViewportDestinationAddress:i,s="string"!=typeof n?this.options.MainViewportDefaultDataAddress:n;this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," VIEW Renderable[").concat(o,"] Destination[").concat(a,"] TemplateDataAddress[").concat(s,"] render:")),this.onBeforeRender();let c="string"==typeof r&&this.servicesMap.PictView[r];return c?(this.onRender(),c.render(o,a,s),this.onAfterRender(),!0):(this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," could not render from View ").concat(r," because it is not a valid view.")),!1)}onRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onRender:")),!0}onRenderAsync(t){return this.onRender(),t()}renderAsync(t,e,i,n,r){let o="string"!=typeof t?this.options.MainViewportViewIdentifier:t,a="string"!=typeof e?this.options.MainViewportRenderableHash:e,s="string"!=typeof i?this.options.MainViewportDestinationAddress:i,c="string"!=typeof n?this.options.MainViewportDefaultDataAddress:n,l="function"==typeof r?r:"function"==typeof n?n:"function"==typeof i?i:"function"==typeof e?e:"function"==typeof t&&t;l||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),l=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync Auto Callback Error: ").concat(t),t)}),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," VIEW Renderable[").concat(a,"] Destination[").concat(s,"] TemplateDataAddress[").concat(c,"] renderAsync:"));let p=this.fable.newAnticipate();p.anticipate(this.onBeforeRenderAsync.bind(this));let d="string"==typeof o&&this.servicesMap.PictView[o];if(!d){let t="PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," could not asynchronously render from View ").concat(o," because it is not a valid view.");return this.pict.LogNoisiness>3&&this.log.error(t),l(new Error(t))}return p.anticipate(this.onRenderAsync.bind(this)),p.anticipate(t=>{d.renderAsync.call(d,a,s,c,t)}),p.anticipate(this.onAfterRenderAsync.bind(this)),p.wait(l)}onAfterRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterRender:")),!0}onAfterRenderAsync(t){return this.onAfterRender(),t()}renderMainViewport(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderMainViewport:")),this.render()}renderMainViewportAsync(t){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderMainViewportAsync:")),this.renderAsync(t)}renderAutoViews(){this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning renderAutoViews..."));let t=Object.keys(this.pict.views);t.sort((t,e)=>this.pict.views[t].options.AutoRenderOrdinal-this.pict.views[e].options.AutoRenderOrdinal);for(let e=0;e<t.length;e++){let i=this.pict.views[t[e]];i.options.AutoRender&&i.render()}this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync complete."))}renderAutoViewsAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync Auto Callback Error: ").concat(t),t)}),this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning renderAutoViewsAsync..."));let n=Object.keys(this.pict.views);n.sort((t,e)=>this.pict.views[t].options.AutoRenderOrdinal-this.pict.views[e].options.AutoRenderOrdinal);for(let t=0;t<n.length;t++){let i=this.pict.views[n[t]];i.options.AutoRender&&e.anticipate(i.renderAsync.bind(i))}e.wait(t=>(this.lastAutoRenderTimestamp=this.fable.log.getTimeStamp(),this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync complete.")),i(t)))}get isPictApplication(){return!0}}},{"../package.json":5,"fable-serviceproviderbase":3}],7:[function(t,e,i){
1
+ "use strict";function _slicedToArray(t,e){return _arrayWithHoles(t)||_iterableToArrayLimit(t,e)||_unsupportedIterableToArray2(t,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray2(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray2(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?_arrayLikeToArray2(t,e):void 0}}function _arrayLikeToArray2(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}function _iterableToArrayLimit(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var n,r,o,a,s=[],c=!0,l=!1;try{if(o=(i=i.call(t)).next,0===e){if(Object(i)!==i)return;c=!1}else for(;!(c=(n=o.call(i)).done)&&(s.push(n.value),s.length!==e);c=!0);}catch(t){l=!0,r=t}finally{try{if(!c&&null!=i.return&&(a=i.return(),Object(a)!==a))return}finally{if(l)throw r}}return s}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _defineProperty(t,e,i){return(e=_toPropertyKey2(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function _toPropertyKey2(t){var e=_toPrimitive2(t,"string");return"symbol"==typeof e?e:e+""}function _toPrimitive2(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).DiagramFormExample=t()}}(function(){return function t(e,i,n){function r(a,s){if(!i[a]){if(!e[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var p=i[a]={exports:{}};e[a][0].call(p.exports,function(t){return r(e[a][1][t]||t)},p,p.exports,t,e,i,n)}return i[a].exports}for(var o="function"==typeof require&&require,a=0;a<n.length;a++)r(n[a]);return r}({1:[function(t,e,i){t("pict-application");const n=t("../../source/Pict-Section-Form.js"),r={Scope:"DiagramDemoForm",Sections:[{Hash:"Diagram",Name:"Architecture"}],Descriptors:{ArchDiagram:{Name:"Architecture Diagram",Hash:"ArchDiagram",DataType:"String",PictForm:{Section:"Diagram",Row:1,Width:12,InputType:"Diagram",Diagram:{ThemeColors:!0,Height:"480px",EditorImplementation:"react"}}}}};class o extends n.PictFormApplication{constructor(t,e,i){super(t,e,i);let r=n.DiagramInput;this.pict.addProvider(r.default_configuration.ProviderIdentifier,r.default_configuration,r),this.pict.AppData.DiagramDemoForm={ArchDiagram:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 440 240" width="440" height="240">\x3c!-- svg-source:excalidraw --\x3e<metadata>\x3c!-- payload-type:application/vnd.excalidraw+json --\x3e\x3c!-- payload-version:2 --\x3e\x3c!-- payload-start --\x3eeyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2ZXVPbOFx1MDAxNIbv+ysy2VtI9WHJXHUwMDE2d1x1MDAxMMKStNBcdTAwMTZS2I/pMMJWbFx1MDAxMcc2tpJAXHUwMDE5/vvKTog/XHUwMDEywOnAwrLcMPHRsXRy/D55JXPzodFoqutINLdcdTAwMWFNcWVzXzoxnzY30vhExIlcZlx1MDAwMz2EsuskXHUwMDFjx3aWOZC+2Pr4cZYmfDFcdTAwMTKBSvTA3/q60bjJ/upcdTAwMTHppMnfw9PB4d5Z2FX968vjXHUwMDAx7lxc9NokuzVLuls9XHUwMDE2tuKB64t86ErHIVx1MDAwMIvr6/RcdTAwMWHl11PpKK9cdTAwMTLzhHQ9pYNmXHUwMDFlm0271cgjiYrDoWiHflx1MDAxOKdr/1x1MDAwNnfgXHUwMDFlwvnK59xcdTAwMWW6cThcdTAwMGWcPGdvd6+9Z+Y5ulx0/rG6zmZu2nGYJJtcdTAwMWVXttesrHI6r1x1MDAxMlXii3uTUHc9v0sv63qBSNKGwkU0jLgt1XWlI2mNUdfJev8jryzmI9FNm1x1MDAxZox9f1x1MDAxMZaBI9KWNjkorVx1MDAxNjjz1UrZiVx1MDAxMOlcZpQhgC1cdTAwMDLoYqBcIoti7DBcZjKBQGJghlx1MDAwMSF5pTLZ1UJR2ZxcdTAwMDPuJ1wi73VaQacqoqKQSjpR4kotyi/I7FwiXGb7f1x1MDAxY1xcmuro+/DbyVevz6/GtLnIu51/yrs0jlx1MDAxYz6rXHUwMDA3mlx1MDAxNqBcYlx1MDAxOYQwZCzGfVx1MDAxOVxmq03xQ3uYf4UseruxSvSjyV9cdDY+Me9Ld7rZa8vLKG67y6LncVx1MDAxY07LgkdcdTAwMTi0SFnyhKyQPFuW/DqK71DaRu1cdTAwMDdcdTAwMTWvYlx1MDAxZSRcdTAwMTGP9XO5R/VcdTAwMTXlvlq9w/p6h8hCxLRcZmstwZuMXHUwMDAxYlnE+lx1MDAxNb0/pSRcdTAwMTfhKJRVnPJPjVxcXHUwMDE42cXi84+NldlcdTAwMDW1VfKXqEpcdTAwMTSP1Y5uvVxm3GqpXCJw7lx1MDAxOcnu2k5h8Fx1MDAwNF96kPq+4liVXHUwMDFh4Z+H01pU0tP9z4NOxDc3XHUwMDAxvvxMXHUwMDBmzuzk935tK8JmXHIrXCLvVrRcdTAwMTaaaFxyNIlcdTAwMDFcdTAwMDBgXHUwMDA05kDUQNOAXHUwMDE0Y2Syf9GKXHUwMDA2XHUwMDEzt322P/75uVx1MDAxYnTDK/9cdTAwMWOMyVS8mFx1MDAxNU23O/uT7W3/7JOIjjo9r1x1MDAxM7ieV8uKXGajbERcYlx1MDAxNK3pTvIrXHUwMDA0T9lcdTAwMWGCR1x1MDAxZHPXNP4nToTry51cdTAwMDCCXHUwMDE4hGgtI6KGpVx1MDAxZFxmXHUwMDE2tmtvyohK2ZT9V33I7PuHPd7ecc+GzPO4d+JO4VxuJIXvyyipupBVdiFkrXAhY1x1MDAxNZTvLnQvlsZcdTAwMWEuxDCFJGVsrVx1MDAxM1x1MDAxMVwiXHUwMDAwIEBpnvHsNjTaOemYX9TFn6ynOm7fXHUwMDA19lHv9MVsaPX5bEnzpS8ze1x1MDAwM4BpS2+vXHUwMDExNrBZOVx1MDAxOFx1MDAxObhlLlx1MDAxYpJBW1x1MDAwMDKCdc+XKUCoYGFPwsHbMSeyzl7MXCKYouJcdD+nXHUwMDAw30tcdTAwMDEmxIRcdTAwMTDgX9qMPYs9ZXrTX77ty/JcdTAwMDNcZlx1MDAwM3Usf2ZVW6XoXHUwMDFlXHUwMDFmST/tOClNsu1LN8h++fQ8XCJuXHUwMDE2e6Ckzf1Fwkg6TvFsYetJuVxmRNyt874sjKUrXHUwMDAz7vfvKZyPVXgkklnpKlx1MDAxZYtiV8T+XHUwMDFkXHUwMDA3sIXIXHUwMDAztK7ewtag1Vx1MDAwMLBlaG1cdTAwMTBIKKqFq2W2XHUwMDAwYohRy3zndS1e6Vx1MDAxYbxiXHUwMDAwXHUwMDAxgbig5Tq8XCJiMqQ5fz3byTtet792XHUwMDFix1winlx1MDAxNEl7OWZcdTAwMWZ5sVBldlXxT8Ptas+vwy0kXHUwMDFhTmpgzS1l+tBslneZjLVMi5qM6lx1MDAxY1x1MDAwM+BcXFx1MDAxMHdcdTAwMThTq2UwXHUwMDA0V0P8xFvPt4OwWVx1MDAxZmFcdTAwMGIgSFxyZi3tMVx1MDAxZiRYI49cdTAwMDA2jNdH8C5X/JxcdTAwMTePN0V+aSn63Pw+ciCr8rtcXPra9H6Yb7ybPIqOle6tXHUwMDFlnbGspSSdeVx1MDAxYu7AmcWUiPJcdTAwMTZkoYPQXHUwMDExnYCf+9U+NydSTHdcdTAwMWU7tM1cdTAwMWbRwdhX8liLwlZaOumTv0nry35hsv/1zUO3/1x1MDAwMGG2XHUwMDA3jCJ9\x3c!-- payload-end --\x3e</metadata><defs><style class="style-fonts">\n @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,d09GMgABAAAAAAv8AA4AAAAAFIAAAAupAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbg1ocNAZgAIEUEQgKm0yURwsmAAE2AiQDSAQgBYMYByAb4A+jooS0ssn+mZDNCa1rN6pQ6JLdauMu1o1TPPCn//t5PO39JKWGTvXoY+vNnXzrQBwoERW3/ftiy8I8CYKaLNDA80C8/gfw7z/ltIQW3t0GIelC5O5TyAiH6vy1O0+POs/S7rIEKYNQ+nwxfywJbl3b6sd++b6IJLMSDZhOaJTyxfY/rIo2s6QWopVGda+q8UcImVBphRxpBZPwLHEpOOczQD6AADAJ1BgEngtkvg6djwGIyRiVCOKtpbYcxHttQRmIz9z6ShAjAMBrY8BRUFsJVGCZETAgswIrL/2bALpQGDCwwP9HoTD/z9Xwf4R/F/ld4fx/w5ssjoSSJ4AcR5dXAIQBRyCjoKKhY2Bi410U4hLB4HIxTAaqCZIUNJfRObBNQKTGETGnggLMKgBwYyX8KHFRgzkSJC9soj82iWgCEmpGJRUAIuvFoBX8/IKCyL76xRQDB0CisRv/EaSoB2qUAMxXYs9qmOSGIQx4BGHJkKsmdF/dHheOSUJDL5xZAosCJcpVqte4czGGrxPmcmp/hv8PHXTAHvNmhQINNVUlXgj80A9CwneEAoA1IF5AmgEGIMzCoDzhFIByX1o1+PDW4JsLIy9OgUk8DbL5iVtnrv9x7y+CrKPIaqJi1pKQH437EkESXV0F9CcgYuWYvpMe4+n7z59zxSrqqdjsZF7Tmg3qtUhgshkwxiCjgJ7XO8UCKzt2Xf+nuRDSxUKMx8SCOCUC/QhQNkOSq8vJYKKn+sqZMwt9FJa5h0OFKQxuCXlbmkfIQqgy6iKr2wJk1m/TPoi0WGPQTNVQNvcgM0B7dEP/qHuIhwuyGkB14j0hgqx3biKKlXTQ6mGEkuRd1pNNCAMY/6fFR+JhardNEV38A8FuFJ2+fVtPdb6BuZitJOtXk4I0FTpxJtZi6GQMALTZo2N6iL00l45aEpmVqERQa9DaUMMJOcS8h0Mo85BzBuXgbYb6PqWESGScgHEqESqUojyt2YrBYHrGDFjAILOB/5qA01SanZIm/V1tWUz1apprFlqom3M3ZBOyCSYHcry3cFQfo39+MRqfPbs7TgG1nUztCKPUBqt/hKnKQx6GmBePUtcWmk8mSUuhsQRopCSf+U1UaKFl0e3hhWk2vXTHjFN1I+smKCnMdw+6Y94lc0HmvXAl/IH5jx/43gXm2EJ/krQky/eBH4FoXHCWYhhrH/Ol6PRXzU8OWpZruUVcTTcucbwhmxoLGIABZBqL4VsIKQX+WSs8CiG3EEUFU/1xbWeoWL2Z1vnZP9w+0pnZLSTUaUj30jGOx8NcNgdKUSbSeue+yOaDuTjvfGhPRYV0zNuebEnkMaWQMoNhHbinN9JbqY7D9h3jkXp025fIw0lbqMf35h6p4b1QEVZPj0dno0KiBzJjgWnK4UbOezhJFttTmT9o6ztqVYZbVyYYZ8ZFIbvCSuBX/2AXWUmC3Jx3hilG2alDo2QLFFnthrp8xW2IzXSokY56sjltMKgxoRZFghOXywoDdEahESWjVqX+4l2JgOg1jTL25FXRS3Exa4nFHjQVRzBKAn//HvNeD/fO8eAtU2JBM8qCA6j/x+dLG/e+XOgIBmhLpIWk2ampPqB9UFOYQ20KqETWs4VKoZLzVB5AxgRD07mH966wubngi2yq3EOtS7uj1XVR5dKzVDcDcx8frjxFdums7wNqw6V4OhaM17vJxfmZ+YPWp0ouGfMGXeQDMoviSP52VXxp4R4We2c6CovhRPglPHNmLt8G/mwEyGlglBxoHGGBygEsv4o3wZmi1EC//fM+ndWIhbrbR5NB92YlN/t8PZWvKbGmOE4HMsw3+Hve8+JNhz4f4hNMZh3ByB+1bJs0gNJ/hQhRTv0y9//fDw5czEuWJk65/Q9ygGwomI/Jfrvy85dzV8gF5svZKd8aFn6Z52nQ/RRmol5UVb1BuBsoJRy5IxkhzCKeycb4Ew8PVyIGWvnMxz+aF06iJgpmnVxK/kqulmjrrm/J9/GCFK+fUt0dn7TquaCDqajfUJeLO7RJ80QlGZO06Rr7ojoJGWvkEthjqeFHZZdzx4lYbL+4WMfjArq8xVCcODrrIo+e+eb9N0P6jBhzgKbSfjLg8eQpuIBtTGqxbY7rjrSBcOlH6s5h+Vc2YRvMNfGbN5NJvIZf6UV0I0a3ph4y0Y4gkEdZm503hd61Yyz+oZOMULFHxCUZ441y9c6cm6YHl24OOvpI45TPG8NRNBnfts2nFw7w4xuTKKQ434iUvGEZlfYUfdAepBmA0gmtILwyQkVL2ANptsHtE4tsEz1X8HYaODVhT9lUPb2ezdsSHUANcM/tihIBN7l64zyPhYm+FyY8sAm/F3+1SLnpA1mAi/1wro6LIz3qlbyupqrJBHbCXM7ioUmHAldRXEbl3qoVknxwH5LI4jQN3KBQkOWJtPT0CLtxUc+wBJedLSEhgWLW1qQ5SeQ55AqBRTHe3Zgt2hwJKcYfj0/a5FdpFWP9baL6WoOERR4YORGDjSP4dbzH6q+HG62HAgOMcf3W8xSTvBcTmoeB8gfAFFswuh3YYnVYjGz5qgw51+uharovWvVFpUYRtFcTpicYfJMqnNv6ca7P3VBj9kFt+I4Ho7tNUDvpl/bgVMswNYM0YRiWicyCYp917QFbo+3p5IOzI53qJgQOjBma/VXTr6IADpEfa2xUY0tvxCaJ3JCbYadHvmxiGCeWwiuZFXImM2OcdYy1LMNmLDuW+A0kd8sK42FFwEorjbOuJlGbxbuO2gvC8GZKQAThPzl1czVRIgY6I9/kGuFFy0QJHeREO9E7lqj0Dm863f4DiTPcnjMGN3crXjiGzXLyMstCqkdOjwrwTUvmHm89cTyRZ/ryap6HIpa233gv6TQvHZyTjygKSwfERdl8yjtQEzdQRcSl4VYi//J7J9nLLVGDBT3Hb+tqlTLho2Fmq7hYQuuql6e/aiLVfdXQHbCEJ/7jakTC035FC2H8wUc/HST0Zb25Ap45fqp6hF+rvAWF8lJ4w23OLAGWgx3FTEmliB1eqo6eF1VUXfakyrwR5u1aCj0C6+P3UIcNi0JnnBBjjHMeLVb2TlgXCTfRWZ6snZSp4Qg3SNYvZrUeh80Y3ZZfWMTXZKrWhVnLyFSpJjgwXuAVU7NQv8cpnDHVgRSN07i6D5LDpe7sYKTbdFWeXCW/pZYuLp1QtsnRlMSPww8i8StJMYyXT2brhaSNMqa1v4yFFi+wXjomozdHSKKJx4YJmStMHSPpAuUoqLVijQntu/Thxf5sPBy3wvSgMQiuKkP8Xjss2ahm2J+aHNjoOS9amyTWBBotl+zIFc8zFQkkTIp/9N2sbwwTxQ8lxX3Y0vD7+pWh399vTvqYGqzNfkTh1Ug7O0EYcjFDeWmbktGmEoYl6w7doDlstNx+oAsVpDIPhBTtKLZa4uWMVxcqfW9t1Fxcuhp6cr8buRuts4ycEHrsevG/ggCfz+bNmiGGppJ2E9EgXHfg4t049aC24GhzjaQT7lF4h3eeDMmyNa9vsnboARmSgsL8FfxwnW3Z8OE75n1+/Edmk7JgrvhaxpVnCeQZGyXEgSgO5UGIplmfaMgaE3xXs4yXL9X5aMiUb+JY/IrrdnHW5HD6faUy8BdpAAAPW9z0AACPFr1u+z/kbcQrIhQAFbZA4qu5fOQzov0Z+4s1d/htAUNNANgHsBusmwmsSDlmF00qgRY1qOIuMLbsfMH1EALChtCawzdOXOIKhQUs9ygAvutABgCAATcChdpJFOlwaKABQLlLvQsR2ufCsG1w4dwMcxEULC6SARQgO0cDGDTLk6tciUJVX/W9PcUrUKRhSmOuWslRtEQdG3N6Svjy4kMVfZn4xhbVio3oVPKHXw0Xl/wWDua68gCS0Stbul4Ckxh9FxrtjM9CV1dUa2FQImLFG4KLAK51hR+fHAFxhUVLPGrRiny1RlUTr/8ZlNNMyeKsbggFNRWg0emRzwsORf3/hwQ=); }</style></defs><rect x="0" y="0" width="440" height="240" fill="#FDFCF7"></rect><g stroke-linecap="round" transform="translate(10 10) rotate(0 60 35)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.13 12.04 C3.37 8.26, 6.87 1.8, 10.63 -0.03 M0.13 12.04 C3.12 8.17, 5.22 5.5, 10.63 -0.03 M0.27 24.08 C4.92 16.28, 10.95 11.55, 21.26 -0.07 M0.27 24.08 C4.21 18.9, 9.38 13.15, 21.26 -0.07 M-0.26 36.88 C8.35 27.25, 18.28 15.9, 31.89 -0.1 M-0.26 36.88 C11.55 22.28, 24.62 8.78, 31.89 -0.1 M-0.12 48.92 C12.48 34.79, 20.93 24.16, 42.52 -0.14 M-0.12 48.92 C10.32 37.76, 18.87 26.31, 42.52 -0.14 M0.01 60.96 C14.86 45.44, 28.26 30.23, 53.15 -0.17 M0.01 60.96 C13.74 43.99, 26.74 30.44, 53.15 -0.17 M2.77 69.98 C18.07 51.92, 32.4 34.91, 63.78 -0.21 M2.77 69.98 C24.09 45.02, 45.16 21.68, 63.78 -0.21 M13.4 69.95 C25.92 55.62, 40.85 39.33, 74.41 -0.24 M13.4 69.95 C30.76 52.32, 45.43 33.98, 74.41 -0.24 M24.03 69.91 C43.04 47.98, 65.54 23.36, 85.04 -0.28 M24.03 69.91 C36.7 54.98, 48.96 40.59, 85.04 -0.28 M34.66 69.88 C53.48 47.54, 72.15 25.61, 95.67 -0.31 M34.66 69.88 C53.13 49.45, 68.81 31.14, 95.67 -0.31 M45.29 69.84 C68.97 42.3, 88.33 17.43, 106.3 -0.34 M45.29 69.84 C61.27 50.46, 78.36 32.95, 106.3 -0.34 M55.92 69.81 C75.53 48.8, 93.94 22.76, 116.27 0.38 M55.92 69.81 C71.16 52.4, 87.74 33.25, 116.27 0.38 M66.55 69.77 C76.09 56.27, 88.91 42.92, 120.34 7.89 M66.55 69.77 C83.73 48.59, 103.03 28.89, 120.34 7.89 M77.18 69.74 C93.3 51.11, 107.52 33.04, 120.48 19.93 M77.18 69.74 C88.07 56.74, 100.18 44.11, 120.48 19.93 M87.81 69.71 C94.98 61.62, 101.92 54.66, 120.61 31.97 M87.81 69.71 C95.9 62.04, 103.73 52.49, 120.61 31.97 M97.78 70.43 C102.66 65.74, 107.76 59.79, 120.09 44.77 M97.78 70.43 C107.48 59.43, 114.94 49.4, 120.09 44.77 M108.41 70.39 C114.73 64.79, 117.59 61.49, 120.22 56.81 M108.41 70.39 C111.83 65.46, 116.53 62.03, 120.22 56.81 M119.04 70.36 C119.2 70.03, 119.85 69.5, 120.35 68.85 M119.04 70.36 C119.49 69.97, 119.69 69.44, 120.35 68.85 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M12.1 69.92 C9.67 68.86, 7.21 66.23, 0.02 59.42 M12.1 69.92 C9.74 67.34, 6.87 65.69, 0.02 59.42 M24.14 69.78 C17.93 63.41, 12.2 61.06, -0.01 48.79 M24.14 69.78 C15.96 62.35, 9.49 55.85, -0.01 48.79 M36.93 70.31 C24.5 59.72, 11.85 48.37, -0.05 38.16 M36.93 70.31 C25.38 58.65, 13.21 49.53, -0.05 38.16 M48.98 70.17 C35.07 57.14, 21.79 47.88, -0.08 27.53 M48.98 70.17 C39.44 60.71, 28.83 51.5, -0.08 27.53 M61.02 70.04 C40.1 52.3, 15.14 32.94, -0.12 16.9 M61.02 70.04 C41.71 52.33, 19.63 35.51, -0.12 16.9 M73.06 69.91 C43.86 47.06, 16.81 23.1, -0.15 6.27 M73.06 69.91 C45.69 46.61, 19.07 22.77, -0.15 6.27 M85.1 69.77 C62.47 49.46, 40 28.96, 4.34 -0.42 M85.1 69.77 C56.15 46.63, 27.53 20.47, 4.34 -0.42 M97.89 70.3 C67.96 41.72, 35.2 15.56, 17.14 0.1 M97.89 70.3 C65.39 42.82, 35.4 14.97, 17.14 0.1 M109.93 70.16 C83.7 48.26, 60.01 26.61, 29.18 -0.03 M109.93 70.16 C82.75 46.89, 54.76 22.82, 29.18 -0.03 M120.47 68.72 C102.81 53.12, 82.5 38.69, 41.22 -0.17 M120.47 68.72 C101.56 50.28, 79.16 32.11, 41.22 -0.17 M120.43 58.09 C105.69 44.4, 88.44 29.47, 53.26 -0.3 M120.43 58.09 C97.77 38.54, 75.55 20.88, 53.26 -0.3 M120.4 47.46 C105.78 34.54, 91.65 21.43, 65.3 -0.43 M120.4 47.46 C102.89 33.04, 86.57 18.17, 65.3 -0.43 M120.36 36.83 C112.87 29.93, 102.71 18.81, 78.1 0.09 M120.36 36.83 C111.51 28.89, 102.9 20.59, 78.1 0.09 M120.33 26.2 C113.37 18.65, 106.37 13.84, 90.14 -0.04 M120.33 26.2 C113.8 19.28, 107.32 14.23, 90.14 -0.04 M120.29 15.57 C117.17 12.12, 113.79 7.06, 102.18 -0.18 M120.29 15.57 C114.69 9.78, 107.8 4.78, 102.18 -0.18 M120.26 4.94 C118.59 3.27, 118.09 2.42, 114.22 -0.31 M120.26 4.94 C118.12 3.33, 116.74 1.66, 114.22 -0.31" stroke="#FDFCF7" stroke-width="1" fill="none"></path><path d="M0 0 C39.94 1.51, 76.16 -0.59, 120 0 M0 0 C31.72 -0.57, 62.7 -0.03, 120 0 M120 0 C119.66 19.34, 117.79 40.14, 120 70 M120 0 C119.39 15.68, 120.47 31.18, 120 70 M120 70 C85.41 68.61, 51.29 67.76, 0 70 M120 70 C85.18 69.23, 49.35 68.19, 0 70 M0 70 C1.25 50.78, -0.36 29.22, 0 0 M0 70 C-0.42 51.45, 0.49 34.03, 0 0" stroke="#1B1F23" stroke-width="2" fill="none"></path></g><g transform="translate(46.990234375 33.75) rotate(0 23.009765625 11.25)"><text x="23.009765625" y="15.858" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="18px" fill="#1B1F23" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Client</text></g><g stroke-linecap="round"><g transform="translate(140.5 45) rotate(0 64.5 -0.6342088808190027)"><path d="M0 0 C45.18 -1.55, 87.38 -1.83, 129 0 M0 0 C41.17 -0.4, 82.53 -0.87, 129 0" stroke="#E66C2C" stroke-width="2" fill="none"></path></g><g transform="translate(140.5 45) rotate(0 64.5 -0.6342088808190027)"><path d="M105.41 8.28 C114.43 4.74, 120.43 1.61, 129 0 M105.41 8.28 C113.17 5.76, 121.17 2.68, 129 0" stroke="#E66C2C" stroke-width="2" fill="none"></path></g><g transform="translate(140.5 45) rotate(0 64.5 -0.6342088808190027)"><path d="M105.61 -8.82 C114.47 -6.49, 120.4 -3.74, 129 0 M105.61 -8.82 C113.43 -5.93, 121.37 -3.6, 129 0" stroke="#E66C2C" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(280 10) rotate(0 75 35)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.13 12.04 C1.21 8.18, 4.21 7.75, 10.63 -0.03 M0.13 12.04 C3.6 7.55, 7.47 3.81, 10.63 -0.03 M0.27 24.08 C3.58 20.24, 8.55 12.78, 21.26 -0.07 M0.27 24.08 C5.88 17.25, 10.92 12.67, 21.26 -0.07 M-0.26 36.88 C10.02 25.67, 20.65 13.18, 31.89 -0.1 M-0.26 36.88 C7.62 28.36, 14.65 20.3, 31.89 -0.1 M-0.12 48.92 C12.06 34.53, 26.79 16.64, 42.52 -0.14 M-0.12 48.92 C12.54 33.3, 26.78 16.19, 42.52 -0.14 M0.01 60.96 C9.94 50.03, 20.45 35.67, 53.15 -0.17 M0.01 60.96 C20.68 38.16, 41.63 13.46, 53.15 -0.17 M2.77 69.98 C26.1 42.94, 50.98 13.7, 63.78 -0.21 M2.77 69.98 C25.91 44.05, 48.99 16.05, 63.78 -0.21 M13.4 69.95 C32.19 49.16, 49.53 25.74, 74.41 -0.24 M13.4 69.95 C29.44 50.52, 47.46 29.48, 74.41 -0.24 M24.03 69.91 C45.35 46.42, 62.04 24.17, 85.04 -0.28 M24.03 69.91 C46.99 43.27, 71.27 15.62, 85.04 -0.28 M34.66 69.88 C55.12 45.55, 73.76 22.69, 95.67 -0.31 M34.66 69.88 C51.95 49.67, 71.88 28.23, 95.67 -0.31 M45.29 69.84 C62.92 47.06, 83.82 23.24, 106.3 -0.34 M45.29 69.84 C68.64 44.76, 90.93 17.8, 106.3 -0.34 M55.92 69.81 C77.46 41.3, 101.17 16.75, 116.27 0.38 M55.92 69.81 C72.31 50.95, 87.75 32.4, 116.27 0.38 M66.55 69.77 C83.12 50.37, 98.63 34.25, 126.91 0.34 M66.55 69.77 C82.86 52.89, 98.23 36.19, 126.91 0.34 M77.18 69.74 C95.02 47.84, 115.77 22.82, 137.54 0.31 M77.18 69.74 C99.43 45.29, 120.49 19.38, 137.54 0.31 M87.81 69.71 C101.79 54.59, 115.03 36.03, 148.17 0.27 M87.81 69.71 C102.73 52.46, 115.38 35.26, 148.17 0.27 M97.78 70.43 C119.4 46.13, 141.86 21.99, 150.92 9.29 M97.78 70.43 C115.64 48.5, 135.74 26.93, 150.92 9.29 M108.41 70.39 C118.84 59.65, 130.24 46.58, 150.4 22.09 M108.41 70.39 C118.06 60.87, 126.54 48.5, 150.4 22.09 M119.04 70.36 C133.28 54.9, 143.17 40.69, 150.53 34.13 M119.04 70.36 C124.47 61.8, 130.87 55.3, 150.53 34.13 M129.67 70.32 C138.08 61.01, 143.89 51.57, 150.67 46.17 M129.67 70.32 C138.18 60.89, 145.4 51.84, 150.67 46.17 M140.3 70.29 C144.54 68.33, 147.25 63.02, 150.8 58.21 M140.3 70.29 C142.82 67.52, 146.35 63.35, 150.8 58.21 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M0.06 70.05 C0.06 70.05, 0.06 70.05, 0.06 70.05 M12.1 69.92 C9.11 67.09, 4.21 61.64, 0.02 59.42 M12.1 69.92 C9.79 68.13, 6.46 64.46, 0.02 59.42 M24.14 69.78 C15.58 63.78, 9.05 57.54, -0.01 48.79 M24.14 69.78 C16.83 62.24, 9.03 56.24, -0.01 48.79 M36.93 70.31 C23.88 62.09, 14.14 49.13, -0.05 38.16 M36.93 70.31 C23.3 60.14, 11.8 48.7, -0.05 38.16 M48.98 70.17 C29.6 54.31, 12.87 35.92, -0.08 27.53 M48.98 70.17 C37.2 60.59, 26.03 49.81, -0.08 27.53 M61.02 70.04 C40.96 50.84, 20.51 35.25, -0.12 16.9 M61.02 70.04 C37.02 49.27, 14.34 29.11, -0.12 16.9 M73.06 69.91 C46.3 45.82, 20.58 21.86, -0.15 6.27 M73.06 69.91 C50.34 48.51, 25.6 28.57, -0.15 6.27 M85.1 69.77 C69.99 57.22, 51.84 40.88, 4.34 -0.42 M85.1 69.77 C52.92 41.6, 20.83 15.2, 4.34 -0.42 M97.89 70.3 C64.64 43.2, 34.31 13.79, 17.14 0.1 M97.89 70.3 C79.89 56, 63.8 41.53, 17.14 0.1 M109.93 70.16 C93.19 56.45, 76.78 42.13, 29.18 -0.03 M109.93 70.16 C80.21 44.54, 51.54 17.84, 29.18 -0.03 M121.98 70.03 C91.66 42.36, 59.33 16.08, 41.22 -0.17 M121.98 70.03 C95.95 46.73, 69.52 24.41, 41.22 -0.17 M134.02 69.9 C111.6 49.02, 85.49 29.32, 53.26 -0.3 M134.02 69.9 C112.02 49.78, 89.01 32.21, 53.26 -0.3 M146.06 69.76 C121.56 47.28, 96.48 25.26, 65.3 -0.43 M146.06 69.76 C128.41 53.55, 109.43 38.53, 65.3 -0.43 M150.55 63.07 C130.35 42.81, 108.58 26.23, 78.1 0.09 M150.55 63.07 C130.79 46.19, 110.56 28.61, 78.1 0.09 M150.52 52.44 C138.3 39.91, 122.87 27.32, 90.14 -0.04 M150.52 52.44 C133.16 36.28, 115.78 21.87, 90.14 -0.04 M150.48 41.81 C133.84 25.04, 117.03 11.73, 102.18 -0.18 M150.48 41.81 C139.29 30.43, 126.96 19.83, 102.18 -0.18 M150.45 31.18 C140.08 20.81, 130.92 12.58, 114.22 -0.31 M150.45 31.18 C143.4 24.94, 135.67 18.26, 114.22 -0.31 M150.41 20.55 C141.05 15.81, 136.71 8.57, 126.26 -0.44 M150.41 20.55 C143.48 15.7, 137.09 8.26, 126.26 -0.44 M150.38 9.92 C147.46 6.35, 143.88 4.73, 139.06 0.08 M150.38 9.92 C147.63 7.76, 143.93 4.67, 139.06 0.08" stroke="#FDFCF7" stroke-width="1" fill="none"></path><path d="M0 0 C36.55 -1.88, 73.32 -0.33, 150 0 M0 0 C56.74 0.36, 112.81 -1.51, 150 0 M150 0 C148.59 24.52, 148.71 45.86, 150 70 M150 0 C149.93 21.93, 149.44 44.92, 150 70 M150 70 C115.44 68.01, 78.29 70.52, 0 70 M150 70 C115.4 69.29, 82.28 70.6, 0 70 M0 70 C-0.61 52.77, -1.39 40.63, 0 0 M0 70 C0.94 51.41, 0.25 31.78, 0 0" stroke="#1B1F23" stroke-width="2" fill="none"></path></g><g transform="translate(311.4853515625 33.75) rotate(0 43.5146484375 11.25)"><text x="43.5146484375" y="15.858" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="18px" fill="#1B1F23" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">API Server</text></g><g stroke-linecap="round"><g transform="translate(355 90.5) rotate(0 0.0393500726372622 34.5)"><path d="M0 0 C-0.92 25.45, 0.63 54.02, 0 69 M0 0 C1.14 23.73, -0.73 48.24, 0 69" stroke="#2E7D74" stroke-width="2" fill="none"></path></g><g transform="translate(355 90.5) rotate(0 0.0393500726372622 34.5)"><path d="M-8.68 45.55 C-6.5 53.7, -1.65 64.95, 0 69 M-8.68 45.55 C-4.68 53.43, -3.53 62.1, 0 69" stroke="#2E7D74" stroke-width="2" fill="none"></path></g><g transform="translate(355 90.5) rotate(0 0.0393500726372622 34.5)"><path d="M8.42 45.46 C4.1 53.6, 2.45 64.88, 0 69 M8.42 45.46 C6.48 53.41, 1.68 62.11, 0 69" stroke="#2E7D74" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(290 170) rotate(0 70 30)"><path d="M-0.79 27.14 C-0.79 27.14, -0.79 27.14, -0.79 27.14 M-0.79 27.14 C-0.79 27.14, -0.79 27.14, -0.79 27.14 M2.63 35.41 C7.54 27.77, 14.75 19.39, 26.9 7.49 M2.63 35.41 C9.41 28.41, 16.54 19.42, 26.9 7.49 M6.7 42.92 C20.35 27.52, 29.54 13.56, 42.12 2.17 M6.7 42.92 C14.37 34.12, 23.06 25.13, 42.12 2.17 M13.39 47.42 C23 35.34, 35.32 24.02, 53.41 1.38 M13.39 47.42 C26.97 30.79, 39.85 16.16, 53.41 1.38 M20.74 51.16 C33.68 34.51, 50.24 19.54, 64.04 1.34 M20.74 51.16 C29.18 41.17, 39.37 30.83, 64.04 1.34 M28.09 54.89 C42.91 37.23, 57.46 22.18, 75.33 0.56 M28.09 54.89 C41.16 38.6, 55.5 22.64, 75.33 0.56 M37.41 56.37 C53.77 34.61, 71.31 18.2, 84.65 2.03 M37.41 56.37 C55.24 35.6, 72.43 15.7, 84.65 2.03 M46.73 57.84 C61.49 38.4, 81.91 18.76, 93.96 3.51 M46.73 57.84 C62.8 39.6, 78.72 21.72, 93.96 3.51 M56.7 58.56 C67.8 43.67, 79.96 33.48, 103.94 4.23 M56.7 58.56 C68.55 46.38, 78.87 34.25, 103.94 4.23 M66.68 59.28 C76.9 46.01, 89.5 34.11, 112.6 6.46 M66.68 59.28 C78.3 45.12, 90.49 32.12, 112.6 6.46 M77.31 59.25 C94 40.27, 111.01 18.96, 119.95 10.19 M77.31 59.25 C93.09 40.29, 110.24 20.3, 119.95 10.19 M88.59 58.46 C98.33 48.01, 105.91 36.01, 126.64 14.69 M88.59 58.46 C97.36 49.76, 105.13 39.56, 126.64 14.69 M99.88 57.67 C109.84 44.1, 122.18 31.96, 133.34 19.18 M99.88 57.67 C110.29 44.47, 121.62 31.68, 133.34 19.18 M115.1 52.35 C120.41 43.77, 127.34 37.72, 137.41 26.69 M115.1 52.35 C122.29 41.98, 132.53 33.24, 137.41 26.69 M5.47 42.48 C5.47 42.48, 5.47 42.48, 5.47 42.48 M5.47 42.48 C5.47 42.48, 5.47 42.48, 5.47 42.48 M31.1 54.15 C21.87 44.18, 10.05 36.42, -0.6 26.6 M31.1 54.15 C20.21 46.26, 10.37 37.05, -0.6 26.6 M44.65 55.33 C27.7 39.85, 15.16 28.61, 4.65 20.56 M44.65 55.33 C36.37 48.09, 28.55 40.81, 4.65 20.56 M58.95 57.17 C41.34 43.75, 26.67 29.55, 10.65 15.18 M58.95 57.17 C39.74 40.5, 21.54 24.88, 10.65 15.18 M68.73 55.07 C46.05 36.46, 26.93 20.09, 15.9 9.14 M68.73 55.07 C52.85 42.48, 38.59 29.23, 15.9 9.14 M80.02 54.28 C68.86 44.91, 55.56 33.02, 24.17 5.73 M80.02 54.28 C66.57 42.64, 52.87 30.97, 24.17 5.73 M91.3 53.49 C71.86 35.31, 49.97 20.44, 33.19 2.97 M91.3 53.49 C77.58 41.57, 64.66 30.4, 33.19 2.97 M102.59 52.7 C88.67 41.4, 78.17 32.33, 42.21 0.22 M102.59 52.7 C87.82 39.33, 72.25 26.84, 42.21 0.22 M111.61 49.94 C90.64 30.07, 68.83 14.08, 53.5 -0.57 M111.61 49.94 C95.73 36.48, 78.91 20.49, 53.5 -0.57 M120.63 47.19 C104.39 30.28, 83.96 14.56, 65.54 -0.71 M120.63 47.19 C100.92 29.54, 81.61 12.85, 65.54 -0.71 M129.66 44.43 C116.36 33.33, 102.94 19.53, 77.58 -0.84 M129.66 44.43 C110.64 26.64, 90.36 10.16, 77.58 -0.84 M134.9 38.39 C127.08 29.33, 116.24 19.75, 91.89 0.99 M134.9 38.39 C122.34 28.12, 108.83 16.57, 91.89 0.99 M140.15 32.35 C128.54 22.39, 117.49 12.18, 106.19 2.83 M140.15 32.35 C130.04 24.61, 122.19 16.07, 106.19 2.83" stroke="#FDFCF7" stroke-width="1" fill="none"></path><path d="M76.1 0.31 C87.25 0.15, 101.38 2.23, 110.75 5.08 C120.12 7.94, 127.45 12.87, 132.31 17.44 C137.18 22.01, 140.86 27.43, 139.94 32.51 C139.01 37.59, 133.57 43.81, 126.79 47.92 C120 52.04, 109.58 55.33, 99.21 57.22 C88.83 59.1, 76.1 59.58, 64.53 59.22 C52.96 58.86, 39.56 57.82, 29.77 55.07 C19.98 52.32, 10.83 47.42, 5.77 42.73 C0.7 38.04, -1.74 31.95, -0.6 26.92 C0.55 21.9, 5.76 16.73, 12.64 12.59 C19.52 8.46, 29.5 4.09, 40.69 2.13 C51.88 0.16, 72.72 0.95, 79.76 0.8 C86.79 0.66, 83.02 0.99, 82.89 1.26 M38.11 4.19 C47.72 1.61, 63.46 -0.03, 75.07 0.02 C86.68 0.06, 97.95 1.77, 107.77 4.49 C117.59 7.21, 128.62 11.87, 133.98 16.34 C139.35 20.8, 140.69 26.19, 139.95 31.27 C139.21 36.35, 135.99 42.79, 129.52 46.83 C123.06 50.86, 111.82 53.5, 101.15 55.5 C90.48 57.5, 77.03 59.05, 65.5 58.83 C53.97 58.61, 41.78 56.99, 31.95 54.18 C22.12 51.37, 12.04 46.1, 6.53 41.96 C1.02 37.81, -2.04 34.25, -1.1 29.29 C-0.17 24.34, 5.33 16.67, 12.12 12.23 C18.91 7.79, 34.89 3.9, 39.65 2.66 C44.41 1.43, 40.35 4.49, 40.67 4.81" stroke="#1B1F23" stroke-width="2" fill="none"></path></g><g transform="translate(325.75643156694167 189.78679656440357) rotate(0 34.24609375 10)"><text x="34.24609375" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#1B1F23" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Database</text></g></svg>'}}onAfterInitializeAsync(t){this.pict.views.PictFormMetacontroller&&(this.pict.views.PictFormMetacontroller.viewMarshalDestination="AppData.DiagramDemoForm"),super.onAfterInitializeAsync(()=>{try{this.marshalDataFromAppDataToDynamicViews()}catch(t){this.log&&this.log.warn("[diagram_form] initial marshal failed",{error:t.message})}return t()})}demo_toggleMode(t){let e=this.pict.providers["Pict-Input-Diagram"];e&&e.toggleMode(t,e=>{e&&this.log&&this.log.warn("[diagram_form demo] toggleMode error",{error:e.message}),this._refreshModeLabel(t)})}_refreshModeLabel(t){let e=this.pict.providers["Pict-Input-Diagram"];if(!e)return;let i="edit"===e.getMode(t)?"Done":"Edit",n="undefined"!=typeof document?document.getElementById("toggle-"+t):null;n&&(n.textContent=i)}}e.exports=o,e.exports.default_configuration=Object.assign({},n.PictFormApplication.default_configuration,{Name:"Diagram Form Example",Hash:"DiagramFormExample",pict_configuration:{Product:"DiagramForm-Example",DefaultFormManifest:r}})},{"../../source/Pict-Section-Form.js":40,"pict-application":6}],2:[function(t,e,i){e.exports={name:"fable-serviceproviderbase",version:"3.0.19",description:"Simple base classes for fable services.",main:"source/Fable-ServiceProviderBase.js",scripts:{start:"node source/Fable-ServiceProviderBase.js",test:"npx quack test",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build",types:"tsc -p ./tsconfig.build.json",check:"tsc -p . --noEmit"},types:"types/source/Fable-ServiceProviderBase.d.ts",mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},repository:{type:"git",url:"https://github.com/stevenvelozo/fable-serviceproviderbase.git"},keywords:["entity","behavior"],author:"Steven Velozo <steven@velozo.com> (http://velozo.com/)",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/fable-serviceproviderbase/issues"},homepage:"https://github.com/stevenvelozo/fable-serviceproviderbase",devDependencies:{"@types/mocha":"^10.0.10",fable:"^3.1.62",quackage:"^1.0.58",typescript:"^5.9.3"}}},{}],3:[function(t,e,i){const n=t("../package.json");class r{constructor(t,e,i){this.fable,this.UUID,this.options,this.services,this.servicesMap,"object"==typeof t&&t.isFable?this.connectFable(t):this.fable=!1,this._PackageFableServiceProvider=n,this.fable?(this.UUID=t.getUUID(),this.options="object"==typeof e?e:{}):(this.options="object"!=typeof t||t.isFable?"object"==typeof e?e:{}:t,this.UUID="CORE-SVC-".concat(Math.floor(89999*Math.random()+1e4))),this.serviceType="Unknown-".concat(this.UUID),this.Hash="string"==typeof i?i:this.fable||"string"!=typeof e?"".concat(this.UUID):e}connectFable(t){if("object"!=typeof t||!t.isFable){let e="Fable Service Provider Base: Cannot connect to Fable, invalid Fable object passed in. The pFable parameter was a [".concat(typeof t,"].}");return console.log(e),new Error(e)}return this.fable||(this.fable=t),this.log||(this.log=this.fable.Logging),this.services||(this.services=this.fable.services),this.servicesMap||(this.servicesMap=this.fable.servicesMap),!0}}_defineProperty(r,"isFableService",!0),e.exports=r,e.exports.CoreServiceProviderBase=r},{"../package.json":2}],4:[function(t,e,i){!function(t,n){"object"==typeof i&&void 0!==e?n(i):n((t="undefined"!=typeof globalThis?globalThis:t||self).marked={})}(this,function(t){function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},i.apply(this,arguments)}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function r(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(i)return(i=i.call(t)).next.bind(i);if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return n(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}function a(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}t.defaults={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};var s=/[&<>"']/,c=new RegExp(s.source,"g"),l=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,p=new RegExp(l.source,"g"),d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},u=function(t){return d[t]};function h(t,e){if(e){if(s.test(t))return t.replace(c,u)}else if(l.test(t))return t.replace(p,u);return t}var m=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function g(t){return t.replace(m,function(t,e){return"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""})}var f=/(^|[^\[])\^/g;function D(t,e){t="string"==typeof t?t:t.source,e=e||"";var i={replace:function(e,n){return n=(n=n.source||n).replace(f,"$1"),t=t.replace(e,n),i},getRegex:function(){return new RegExp(t,e)}};return i}var y=/[^\w:]/g,v=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function b(t,e,i){if(t){var n;try{n=decodeURIComponent(g(i)).replace(y,"").toLowerCase()}catch(t){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}e&&!v.test(i)&&(i=function(t,e){T[" "+t]||(w.test(t)?T[" "+t]=t+"/":T[" "+t]=C(t,"/",!0));t=T[" "+t];var i=-1===t.indexOf(":");return"//"===e.substring(0,2)?i?e:t.replace(x,"$1")+e:"/"===e.charAt(0)?i?e:t.replace(S,"$1")+e:t+e}(e,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(t){return null}return i}var T={},w=/^[^:]+:\/*[^/]*$/,x=/^([^:]+:)[\s\S]*$/,S=/^([^:]+:\/*[^/]*)[\s\S]*$/;var P={exec:function(){}};function A(t,e){var i=t.replace(/\|/g,function(t,e,i){for(var n=!1,r=e;--r>=0&&"\\"===i[r];)n=!n;return n?"|":" |"}).split(/ \|/),n=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>e)i.splice(e);else for(;i.length<e;)i.push("");for(;n<i.length;n++)i[n]=i[n].trim().replace(/\\\|/g,"|");return i}function C(t,e,i){var n=t.length;if(0===n)return"";for(var r=0;r<n;){var o=t.charAt(n-r-1);if(o!==e||i){if(o===e||!i)break;r++}else r++}return t.slice(0,n-r)}function I(t,e){if(e<1)return"";for(var i="";e>1;)1&e&&(i+=t),e>>=1,t+=t;return i+t}function F(t,e,i,n){var r=e.href,o=e.title?h(e.title):null,a=t[1].replace(/\\([\[\]])/g,"$1");if("!"!==t[0].charAt(0)){n.state.inLink=!0;var s={type:"link",raw:i,href:r,title:o,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,s}return{type:"image",raw:i,href:r,title:o,text:h(a)}}var M=function(){function e(e){this.options=e||t.defaults}var i=e.prototype;return i.space=function(t){var e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}},i.code=function(t){var e=this.rules.block.code.exec(t);if(e){var i=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:C(i,"\n")}}},i.fences=function(t){var e=this.rules.block.fences.exec(t);if(e){var i=e[0],n=function(t,e){var i=t.match(/^(\s+)(?:```)/);if(null===i)return e;var n=i[1];return e.split("\n").map(function(t){var e=t.match(/^\s+/);return null===e?t:e[0].length>=n.length?t.slice(n.length):t}).join("\n")}(i,e[3]||"");return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:n}}},i.heading=function(t){var e=this.rules.block.heading.exec(t);if(e){var i=e[2].trim();if(/#$/.test(i)){var n=C(i,"#");this.options.pedantic?i=n.trim():n&&!/ $/.test(n)||(i=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}},i.hr=function(t){var e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}},i.blockquote=function(t){var e=this.rules.block.blockquote.exec(t);if(e){var i=e[0].replace(/^ *>[ \t]?/gm,""),n=this.lexer.state.top;this.lexer.state.top=!0;var r=this.lexer.blockTokens(i);return this.lexer.state.top=n,{type:"blockquote",raw:e[0],tokens:r,text:i}}},i.list=function(t){var e=this.rules.block.list.exec(t);if(e){var i,n,r,o,a,s,c,l,p,d,u,h,m=e[1].trim(),g=m.length>1,f={type:"list",raw:"",ordered:g,start:g?+m.slice(0,-1):"",loose:!1,items:[]};m=g?"\\d{1,9}\\"+m.slice(-1):"\\"+m,this.options.pedantic&&(m=g?m:"[*+-]");for(var D=new RegExp("^( {0,3}"+m+")((?:[\t ][^\\n]*)?(?:\\n|$))");t&&(h=!1,e=D.exec(t))&&!this.rules.block.hr.test(t);){if(i=e[0],t=t.substring(i.length),l=e[2].split("\n",1)[0].replace(/^\t+/,function(t){return" ".repeat(3*t.length)}),p=t.split("\n",1)[0],this.options.pedantic?(o=2,u=l.trimLeft()):(o=(o=e[2].search(/[^ ]/))>4?1:o,u=l.slice(o),o+=e[1].length),s=!1,!l&&/^ *$/.test(p)&&(i+=p+"\n",t=t.substring(p.length+1),h=!0),!h)for(var y=new RegExp("^ {0,"+Math.min(3,o-1)+"}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))"),v=new RegExp("^ {0,"+Math.min(3,o-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),b=new RegExp("^ {0,"+Math.min(3,o-1)+"}(?:```|~~~)"),T=new RegExp("^ {0,"+Math.min(3,o-1)+"}#");t&&(p=d=t.split("\n",1)[0],this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!b.test(p))&&!T.test(p)&&!y.test(p)&&!v.test(t);){if(p.search(/[^ ]/)>=o||!p.trim())u+="\n"+p.slice(o);else{if(s)break;if(l.search(/[^ ]/)>=4)break;if(b.test(l))break;if(T.test(l))break;if(v.test(l))break;u+="\n"+p}s||p.trim()||(s=!0),i+=d+"\n",t=t.substring(d.length+1),l=p.slice(o)}f.loose||(c?f.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(u))&&(r="[ ] "!==n[0],u=u.replace(/^\[[ xX]\] +/,"")),f.items.push({type:"list_item",raw:i,task:!!n,checked:r,loose:!1,text:u}),f.raw+=i}f.items[f.items.length-1].raw=i.trimRight(),f.items[f.items.length-1].text=u.trimRight(),f.raw=f.raw.trimRight();var w=f.items.length;for(a=0;a<w;a++)if(this.lexer.state.top=!1,f.items[a].tokens=this.lexer.blockTokens(f.items[a].text,[]),!f.loose){var x=f.items[a].tokens.filter(function(t){return"space"===t.type}),S=x.length>0&&x.some(function(t){return/\n.*\n/.test(t.raw)});f.loose=S}if(f.loose)for(a=0;a<w;a++)f.items[a].loose=!0;return f}},i.html=function(t){var e=this.rules.block.html.exec(t);if(e){var i={type:"html",raw:e[0],pre:!this.options.sanitizer&&("pre"===e[1]||"script"===e[1]||"style"===e[1]),text:e[0]};if(this.options.sanitize){var n=this.options.sanitizer?this.options.sanitizer(e[0]):h(e[0]);i.type="paragraph",i.text=n,i.tokens=this.lexer.inline(n)}return i}},i.def=function(t){var e=this.rules.block.def.exec(t);if(e){var i=e[1].toLowerCase().replace(/\s+/g," "),n=e[2]?e[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline._escapes,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:i,raw:e[0],href:n,title:r}}},i.table=function(t){var e=this.rules.block.table.exec(t);if(e){var i={type:"table",header:A(e[1]).map(function(t){return{text:t}}),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=e[0];var n,r,o,a,s=i.align.length;for(n=0;n<s;n++)/^ *-+: *$/.test(i.align[n])?i.align[n]="right":/^ *:-+: *$/.test(i.align[n])?i.align[n]="center":/^ *:-+ *$/.test(i.align[n])?i.align[n]="left":i.align[n]=null;for(s=i.rows.length,n=0;n<s;n++)i.rows[n]=A(i.rows[n],i.header.length).map(function(t){return{text:t}});for(s=i.header.length,r=0;r<s;r++)i.header[r].tokens=this.lexer.inline(i.header[r].text);for(s=i.rows.length,r=0;r<s;r++)for(a=i.rows[r],o=0;o<a.length;o++)a[o].tokens=this.lexer.inline(a[o].text);return i}}},i.lheading=function(t){var e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1],tokens:this.lexer.inline(e[1])}},i.paragraph=function(t){var e=this.rules.block.paragraph.exec(t);if(e){var i="\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:i,tokens:this.lexer.inline(i)}}},i.text=function(t){var e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}},i.escape=function(t){var e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:h(e[1])}},i.tag=function(t){var e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^<a /i.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):h(e[0]):e[0]}},i.link=function(t){var e=this.rules.inline.link.exec(t);if(e){var i=e[2].trim();if(!this.options.pedantic&&/^</.test(i)){if(!/>$/.test(i))return;var n=C(i.slice(0,-1),"\\");if((i.length-n.length)%2==0)return}else{var r=function(t,e){if(-1===t.indexOf(e[1]))return-1;for(var i=t.length,n=0,r=0;r<i;r++)if("\\"===t[r])r++;else if(t[r]===e[0])n++;else if(t[r]===e[1]&&--n<0)return r;return-1}(e[2],"()");if(r>-1){var o=(0===e[0].indexOf("!")?5:4)+e[1].length+r;e[2]=e[2].substring(0,r),e[0]=e[0].substring(0,o).trim(),e[3]=""}}var a=e[2],s="";if(this.options.pedantic){var c=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);c&&(a=c[1],s=c[3])}else s=e[3]?e[3].slice(1,-1):"";return a=a.trim(),/^</.test(a)&&(a=this.options.pedantic&&!/>$/.test(i)?a.slice(1):a.slice(1,-1)),F(e,{href:a?a.replace(this.rules.inline._escapes,"$1"):a,title:s?s.replace(this.rules.inline._escapes,"$1"):s},e[0],this.lexer)}},i.reflink=function(t,e){var i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){var n=(i[2]||i[1]).replace(/\s+/g," ");if(!(n=e[n.toLowerCase()])){var r=i[0].charAt(0);return{type:"text",raw:r,text:r}}return F(i,n,i[0],this.lexer)}},i.emStrong=function(t,e,i){void 0===i&&(i="");var n=this.rules.inline.emStrong.lDelim.exec(t);if(n&&(!n[3]||!i.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=n[1]||n[2]||"";if(!r||r&&(""===i||this.rules.inline.punctuation.exec(i))){var o,a,s=n[0].length-1,c=s,l=0,p="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(p.lastIndex=0,e=e.slice(-1*t.length+s);null!=(n=p.exec(e));)if(o=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(a=o.length,n[3]||n[4])c+=a;else if(!((n[5]||n[6])&&s%3)||(s+a)%3){if(!((c-=a)>0)){a=Math.min(a,a+c+l);var d=t.slice(0,s+n.index+(n[0].length-o.length)+a);if(Math.min(s,a)%2){var u=d.slice(1,-1);return{type:"em",raw:d,text:u,tokens:this.lexer.inlineTokens(u)}}var h=d.slice(2,-2);return{type:"strong",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}else l+=a}}},i.codespan=function(t){var e=this.rules.inline.code.exec(t);if(e){var i=e[2].replace(/\n/g," "),n=/[^ ]/.test(i),r=/^ /.test(i)&&/ $/.test(i);return n&&r&&(i=i.substring(1,i.length-1)),i=h(i,!0),{type:"codespan",raw:e[0],text:i}}},i.br=function(t){var e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}},i.del=function(t){var e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}},i.autolink=function(t,e){var i,n,r=this.rules.inline.autolink.exec(t);if(r)return n="@"===r[2]?"mailto:"+(i=h(this.options.mangle?e(r[1]):r[1])):i=h(r[1]),{type:"link",raw:r[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}},i.url=function(t,e){var i;if(i=this.rules.inline.url.exec(t)){var n,r;if("@"===i[2])r="mailto:"+(n=h(this.options.mangle?e(i[0]):i[0]));else{var o;do{o=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(o!==i[0]);n=h(i[0]),r="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},i.inlineText=function(t,e){var i,n=this.rules.inline.text.exec(t);if(n)return i=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):h(n[0]):n[0]:h(this.options.smartypants?e(n[0]):n[0]),{type:"text",raw:n[0],text:i}},e}(),R={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:P,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};R.def=D(R.def).replace("label",R._label).replace("title",R._title).getRegex(),R.bullet=/(?:[*+-]|\d{1,9}[.)])/,R.listItemStart=D(/^( *)(bull) */).replace("bull",R.bullet).getRegex(),R.list=D(R.list).replace(/bull/g,R.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+R.def.source+")").getRegex(),R._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",R._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,R.html=D(R.html,"i").replace("comment",R._comment).replace("tag",R._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),R.paragraph=D(R._paragraph).replace("hr",R.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",R._tag).getRegex(),R.blockquote=D(R.blockquote).replace("paragraph",R.paragraph).getRegex(),R.normal=i({},R),R.gfm=i({},R.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),R.gfm.table=D(R.gfm.table).replace("hr",R.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",R._tag).getRegex(),R.gfm.paragraph=D(R._paragraph).replace("hr",R.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",R.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",R._tag).getRegex(),R.pedantic=i({},R.normal,{html:D("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",R._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:P,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:D(R.normal._paragraph).replace("hr",R.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",R.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var E={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:P,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:P,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function H(t){return t.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function V(t){var e,i,n="",r=t.length;for(e=0;e<r;e++)i=t.charCodeAt(e),Math.random()>.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}E._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",E.punctuation=D(E.punctuation).replace(/punctuation/g,E._punctuation).getRegex(),E.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,E.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,E._comment=D(R._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),E.emStrong.lDelim=D(E.emStrong.lDelim).replace(/punct/g,E._punctuation).getRegex(),E.emStrong.rDelimAst=D(E.emStrong.rDelimAst,"g").replace(/punct/g,E._punctuation).getRegex(),E.emStrong.rDelimUnd=D(E.emStrong.rDelimUnd,"g").replace(/punct/g,E._punctuation).getRegex(),E._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,E._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,E._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,E.autolink=D(E.autolink).replace("scheme",E._scheme).replace("email",E._email).getRegex(),E._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,E.tag=D(E.tag).replace("comment",E._comment).replace("attribute",E._attribute).getRegex(),E._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,E._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,E._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,E.link=D(E.link).replace("label",E._label).replace("href",E._href).replace("title",E._title).getRegex(),E.reflink=D(E.reflink).replace("label",E._label).replace("ref",R._label).getRegex(),E.nolink=D(E.nolink).replace("ref",R._label).getRegex(),E.reflinkSearch=D(E.reflinkSearch,"g").replace("reflink",E.reflink).replace("nolink",E.nolink).getRegex(),E.normal=i({},E),E.pedantic=i({},E.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:D(/^!?\[(label)\]\((.*?)\)/).replace("label",E._label).getRegex(),reflink:D(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",E._label).getRegex()}),E.gfm=i({},E.normal,{escape:D(E.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),E.gfm.url=D(E.gfm.url,"i").replace("email",E.gfm._extended_email).getRegex(),E.breaks=i({},E.gfm,{br:D(E.br).replace("{2,}","*").getRegex(),text:D(E.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var k=function(){function i(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||t.defaults,this.options.tokenizer=this.options.tokenizer||new M,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var i={block:R.normal,inline:E.normal};this.options.pedantic?(i.block=R.pedantic,i.inline=E.pedantic):this.options.gfm&&(i.block=R.gfm,this.options.breaks?i.inline=E.breaks:i.inline=E.gfm),this.tokenizer.rules=i}i.lex=function(t,e){return new i(e).lex(t)},i.lexInline=function(t,e){return new i(e).inlineTokens(t)};var n,r,o,a=i.prototype;return a.lex=function(t){var e;for(t=t.replace(/\r\n|\r/g,"\n"),this.blockTokens(t,this.tokens);e=this.inlineQueue.shift();)this.inlineTokens(e.src,e.tokens);return this.tokens},a.blockTokens=function(t,e){var i,n,r,o,a=this;for(void 0===e&&(e=[]),t=this.options.pedantic?t.replace(/\t/g," ").replace(/^ +$/gm,""):t.replace(/^( *)(\t+)/gm,function(t,e,i){return e+" ".repeat(i.length)});t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(n){return!!(i=n.call({lexer:a},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)})))if(i=this.tokenizer.space(t))t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);else if(i=this.tokenizer.code(t))t=t.substring(i.raw.length),!(n=e[e.length-1])||"paragraph"!==n.type&&"text"!==n.type?e.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.heading(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.hr(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.blockquote(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.list(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.html(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.def(t))t=t.substring(i.raw.length),!(n=e[e.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.lheading(t))t=t.substring(i.raw.length),e.push(i);else if(r=t,this.options.extensions&&this.options.extensions.startBlock&&function(){var e=1/0,i=t.slice(1),n=void 0;a.options.extensions.startBlock.forEach(function(t){"number"==typeof(n=t.call({lexer:this},i))&&n>=0&&(e=Math.min(e,n))}),e<1/0&&e>=0&&(r=t.substring(0,e+1))}(),this.state.top&&(i=this.tokenizer.paragraph(r)))n=e[e.length-1],o&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i),o=r.length!==t.length,t=t.substring(i.raw.length);else if(i=this.tokenizer.text(t))t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i);else if(t){var s="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(s);break}throw new Error(s)}return this.state.top=!0,e},a.inline=function(t,e){return void 0===e&&(e=[]),this.inlineQueue.push({src:t,tokens:e}),e},a.inlineTokens=function(t,e){var i,n,r,o=this;void 0===e&&(e=[]);var a,s,c,l=t;if(this.tokens.links){var p=Object.keys(this.tokens.links);if(p.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)p.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+I("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+I("a",a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(l));)l=l.slice(0,a.index+a[0].length-2)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;t;)if(s||(c=""),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(n){return!!(i=n.call({lexer:o},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)})))if(i=this.tokenizer.escape(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.tag(t))t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):e.push(i);else if(i=this.tokenizer.link(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):e.push(i);else if(i=this.tokenizer.emStrong(t,l,c))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.codespan(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.br(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.del(t))t=t.substring(i.raw.length),e.push(i);else if(i=this.tokenizer.autolink(t,V))t=t.substring(i.raw.length),e.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(t,V))){if(r=t,this.options.extensions&&this.options.extensions.startInline&&function(){var e=1/0,i=t.slice(1),n=void 0;o.options.extensions.startInline.forEach(function(t){"number"==typeof(n=t.call({lexer:this},i))&&n>=0&&(e=Math.min(e,n))}),e<1/0&&e>=0&&(r=t.substring(0,e+1))}(),i=this.tokenizer.inlineText(r,H))t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(c=i.raw.slice(-1)),s=!0,(n=e[e.length-1])&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):e.push(i);else if(t){var d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}else t=t.substring(i.raw.length),e.push(i);return e},n=i,o=[{key:"rules",get:function(){return{block:R,inline:E}}}],(r=null)&&e(n.prototype,r),o&&e(n,o),Object.defineProperty(n,"prototype",{writable:!1}),i}(),L=function(){function e(e){this.options=e||t.defaults}var i=e.prototype;return i.code=function(t,e,i){var n=(e||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(t,n);null!=r&&r!==t&&(i=!0,t=r)}return t=t.replace(/\n$/,"")+"\n",n?'<pre><code class="'+this.options.langPrefix+h(n)+'">'+(i?t:h(t,!0))+"</code></pre>\n":"<pre><code>"+(i?t:h(t,!0))+"</code></pre>\n"},i.blockquote=function(t){return"<blockquote>\n"+t+"</blockquote>\n"},i.html=function(t){return t},i.heading=function(t,e,i,n){return this.options.headerIds?"<h"+e+' id="'+(this.options.headerPrefix+n.slug(i))+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"},i.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},i.list=function(t,e,i){var n=e?"ol":"ul";return"<"+n+(e&&1!==i?' start="'+i+'"':"")+">\n"+t+"</"+n+">\n"},i.listitem=function(t){return"<li>"+t+"</li>\n"},i.checkbox=function(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},i.paragraph=function(t){return"<p>"+t+"</p>\n"},i.table=function(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"},i.tablerow=function(t){return"<tr>\n"+t+"</tr>\n"},i.tablecell=function(t,e){var i=e.header?"th":"td";return(e.align?"<"+i+' align="'+e.align+'">':"<"+i+">")+t+"</"+i+">\n"},i.strong=function(t){return"<strong>"+t+"</strong>"},i.em=function(t){return"<em>"+t+"</em>"},i.codespan=function(t){return"<code>"+t+"</code>"},i.br=function(){return this.options.xhtml?"<br/>":"<br>"},i.del=function(t){return"<del>"+t+"</del>"},i.link=function(t,e,i){if(null===(t=b(this.options.sanitize,this.options.baseUrl,t)))return i;var n='<a href="'+t+'"';return e&&(n+=' title="'+e+'"'),n+=">"+i+"</a>"},i.image=function(t,e,i){if(null===(t=b(this.options.sanitize,this.options.baseUrl,t)))return i;var n='<img src="'+t+'" alt="'+i+'"';return e&&(n+=' title="'+e+'"'),n+=this.options.xhtml?"/>":">"},i.text=function(t){return t},e}(),_=function(){function t(){}var e=t.prototype;return e.strong=function(t){return t},e.em=function(t){return t},e.codespan=function(t){return t},e.del=function(t){return t},e.html=function(t){return t},e.text=function(t){return t},e.link=function(t,e,i){return""+i},e.image=function(t,e,i){return""+i},e.br=function(){return""},t}(),O=function(){function t(){this.seen={}}var e=t.prototype;return e.serialize=function(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},e.getNextSafeSlug=function(t,e){var i=t,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[t];do{i=t+"-"+ ++n}while(this.seen.hasOwnProperty(i))}return e||(this.seen[t]=n,this.seen[i]=0),i},e.slug=function(t,e){void 0===e&&(e={});var i=this.serialize(t);return this.getNextSafeSlug(i,e.dryrun)},t}(),U=function(){function e(e){this.options=e||t.defaults,this.options.renderer=this.options.renderer||new L,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new _,this.slugger=new O}e.parse=function(t,i){return new e(i).parse(t)},e.parseInline=function(t,i){return new e(i).parseInline(t)};var i=e.prototype;return i.parse=function(t,e){void 0===e&&(e=!0);var i,n,r,o,a,s,c,l,p,d,u,h,m,f,D,y,v,b,T,w="",x=t.length;for(i=0;i<x;i++)if(d=t[i],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[d.type])||!1===(T=this.options.extensions.renderers[d.type].call({parser:this},d))&&["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(d.type))switch(d.type){case"space":continue;case"hr":w+=this.renderer.hr();continue;case"heading":w+=this.renderer.heading(this.parseInline(d.tokens),d.depth,g(this.parseInline(d.tokens,this.textRenderer)),this.slugger);continue;case"code":w+=this.renderer.code(d.text,d.lang,d.escaped);continue;case"table":for(l="",c="",o=d.header.length,n=0;n<o;n++)c+=this.renderer.tablecell(this.parseInline(d.header[n].tokens),{header:!0,align:d.align[n]});for(l+=this.renderer.tablerow(c),p="",o=d.rows.length,n=0;n<o;n++){for(c="",a=(s=d.rows[n]).length,r=0;r<a;r++)c+=this.renderer.tablecell(this.parseInline(s[r].tokens),{header:!1,align:d.align[r]});p+=this.renderer.tablerow(c)}w+=this.renderer.table(l,p);continue;case"blockquote":p=this.parse(d.tokens),w+=this.renderer.blockquote(p);continue;case"list":for(u=d.ordered,h=d.start,m=d.loose,o=d.items.length,p="",n=0;n<o;n++)y=(D=d.items[n]).checked,v=D.task,f="",D.task&&(b=this.renderer.checkbox(y),m?D.tokens.length>0&&"paragraph"===D.tokens[0].type?(D.tokens[0].text=b+" "+D.tokens[0].text,D.tokens[0].tokens&&D.tokens[0].tokens.length>0&&"text"===D.tokens[0].tokens[0].type&&(D.tokens[0].tokens[0].text=b+" "+D.tokens[0].tokens[0].text)):D.tokens.unshift({type:"text",text:b}):f+=b),f+=this.parse(D.tokens,m),p+=this.renderer.listitem(f,v,y);w+=this.renderer.list(p,u,h);continue;case"html":w+=this.renderer.html(d.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(p=d.tokens?this.parseInline(d.tokens):d.text;i+1<x&&"text"===t[i+1].type;)p+="\n"+((d=t[++i]).tokens?this.parseInline(d.tokens):d.text);w+=e?this.renderer.paragraph(p):p;continue;default:var S='Token with "'+d.type+'" type was not found.';if(this.options.silent)return void console.error(S);throw new Error(S)}else w+=T||"";return w},i.parseInline=function(t,e){e=e||this.renderer;var i,n,r,o="",a=t.length;for(i=0;i<a;i++)if(n=t[i],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[n.type])||!1===(r=this.options.extensions.renderers[n.type].call({parser:this},n))&&["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type))switch(n.type){case"escape":case"text":o+=e.text(n.text);break;case"html":o+=e.html(n.text);break;case"link":o+=e.link(n.href,n.title,this.parseInline(n.tokens,e));break;case"image":o+=e.image(n.href,n.title,n.text);break;case"strong":o+=e.strong(this.parseInline(n.tokens,e));break;case"em":o+=e.em(this.parseInline(n.tokens,e));break;case"codespan":o+=e.codespan(n.text);break;case"br":o+=e.br();break;case"del":o+=e.del(this.parseInline(n.tokens,e));break;default:var s='Token with "'+n.type+'" type was not found.';if(this.options.silent)return void console.error(s);throw new Error(s)}else o+=r||"";return o},e}(),j=function(){function e(e){this.options=e||t.defaults}var i=e.prototype;return i.preprocess=function(t){return t},i.postprocess=function(t){return t},e}();function B(t,e){return function(n,r,o){"function"==typeof r&&(o=r,r=null);var a=i({},r),s=function(t,e,i){return function(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t){var r="<p>An error occurred:</p><pre>"+h(n.message+"",!0)+"</pre>";return e?Promise.resolve(r):i?void i(null,r):r}if(e)return Promise.reject(n);if(!i)throw n;i(n)}}((r=i({},N.defaults,a)).silent,r.async,o);if(null==n)return s(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof n)return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(function(t){t&&t.sanitize&&!t.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}(r),r.hooks&&(r.hooks.options=r),o){var c,l=r.highlight;try{r.hooks&&(n=r.hooks.preprocess(n)),c=t(n,r)}catch(t){return s(t)}var p=function(t){var i;if(!t)try{r.walkTokens&&N.walkTokens(c,r.walkTokens),i=e(c,r),r.hooks&&(i=r.hooks.postprocess(i))}catch(e){t=e}return r.highlight=l,t?s(t):o(null,i)};if(!l||l.length<3)return p();if(delete r.highlight,!c.length)return p();var d=0;return N.walkTokens(c,function(t){"code"===t.type&&(d++,setTimeout(function(){l(t.text,t.lang,function(e,i){if(e)return p(e);null!=i&&i!==t.text&&(t.text=i,t.escaped=!0),0===--d&&p()})},0))}),void(0===d&&p())}if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(n):n).then(function(e){return t(e,r)}).then(function(t){return r.walkTokens?Promise.all(N.walkTokens(t,r.walkTokens)).then(function(){return t}):t}).then(function(t){return e(t,r)}).then(function(t){return r.hooks?r.hooks.postprocess(t):t}).catch(s);try{r.hooks&&(n=r.hooks.preprocess(n));var u=t(n,r);r.walkTokens&&N.walkTokens(u,r.walkTokens);var m=e(u,r);return r.hooks&&(m=r.hooks.postprocess(m)),m}catch(t){return s(t)}}}function N(t,e,i){return B(k.lex,U.parse)(t,e,i)}j.passThroughHooks=new Set(["preprocess","postprocess"]),N.options=N.setOptions=function(e){var n;return N.defaults=i({},N.defaults,e),n=N.defaults,t.defaults=n,N},N.getDefaults=a,N.defaults=t.defaults,N.use=function(){for(var t=N.defaults.extensions||{renderers:{},childTokens:{}},e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];n.forEach(function(e){var n=i({},e);if(n.async=N.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(function(e){if(!e.name)throw new Error("extension name required");if(e.renderer){var i=t.renderers[e.name];t.renderers[e.name]=i?function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=e.renderer.apply(this,n);return!1===o&&(o=i.apply(this,n)),o}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");t[e.level]?t[e.level].unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer&&function(){var t=N.defaults.renderer||new L,i=function(i){var n=t[i];t[i]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.renderer[i].apply(t,o);return!1===s&&(s=n.apply(t,o)),s}};for(var r in e.renderer)i(r);n.renderer=t}(),e.tokenizer&&function(){var t=N.defaults.tokenizer||new M,i=function(i){var n=t[i];t[i]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.tokenizer[i].apply(t,o);return!1===s&&(s=n.apply(t,o)),s}};for(var r in e.tokenizer)i(r);n.tokenizer=t}(),e.hooks&&function(){var t=N.defaults.hooks||new j,i=function(i){var n=t[i];j.passThroughHooks.has(i)?t[i]=function(r){if(N.defaults.async)return Promise.resolve(e.hooks[i].call(t,r)).then(function(e){return n.call(t,e)});var o=e.hooks[i].call(t,r);return n.call(t,o)}:t[i]=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var s=e.hooks[i].apply(t,o);return!1===s&&(s=n.apply(t,o)),s}};for(var r in e.hooks)i(r);n.hooks=t}(),e.walkTokens){var r=N.defaults.walkTokens;n.walkTokens=function(t){var i=[];return i.push(e.walkTokens.call(this,t)),r&&(i=i.concat(r.call(this,t))),i}}N.setOptions(n)})},N.walkTokens=function(t,e){for(var i,n=[],o=function(){var t=i.value;switch(n=n.concat(e.call(N,t)),t.type){case"table":for(var o,a=r(t.header);!(o=a()).done;){var s=o.value;n=n.concat(N.walkTokens(s.tokens,e))}for(var c,l=r(t.rows);!(c=l()).done;)for(var p,d=r(c.value);!(p=d()).done;){var u=p.value;n=n.concat(N.walkTokens(u.tokens,e))}break;case"list":n=n.concat(N.walkTokens(t.items,e));break;default:N.defaults.extensions&&N.defaults.extensions.childTokens&&N.defaults.extensions.childTokens[t.type]?N.defaults.extensions.childTokens[t.type].forEach(function(i){n=n.concat(N.walkTokens(t[i],e))}):t.tokens&&(n=n.concat(N.walkTokens(t.tokens,e)))}},a=r(t);!(i=a()).done;)o();return n},N.parseInline=B(k.lexInline,U.parseInline),N.Parser=U,N.parser=U.parse,N.Renderer=L,N.TextRenderer=_,N.Lexer=k,N.lexer=k.lex,N.Tokenizer=M,N.Slugger=O,N.Hooks=j,N.parse=N;var G=N.options,z=N.setOptions,q=N.use,W=N.walkTokens,J=N.parseInline,K=N,X=U.parse,Y=k.lex;t.Hooks=j,t.Lexer=k,t.Parser=U,t.Renderer=L,t.Slugger=O,t.TextRenderer=_,t.Tokenizer=M,t.getDefaults=a,t.lexer=Y,t.marked=N,t.options=G,t.parse=K,t.parseInline=J,t.parser=X,t.setOptions=z,t.use=q,t.walkTokens=W})},{}],5:[function(t,e,i){e.exports={name:"pict-application",version:"1.0.34",description:"Application base class for a pict view-based application",main:"source/Pict-Application.js",scripts:{test:"npx quack test",start:"node source/Pict-Application.js",coverage:"npx quack coverage",build:"npx quack build","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-application-image:local","docker-dev-run":'docker run -it -d --name pict-application-dev -p 30001:8080 -p 38086:8086 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-application" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-application-image:local',"docker-dev-shell":"docker exec -it pict-application-dev /bin/bash",tests:"npx quack test -g",lint:"eslint source/**",types:"tsc -p ."},types:"types/source/Pict-Application.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-application.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-application/issues"},homepage:"https://github.com/stevenvelozo/pict-application#readme",devDependencies:{"@eslint/js":"^9.28.0","browser-env":"^3.3.0",eslint:"^9.28.0",pict:"^1.0.348","pict-docuserve":"^0.1.5","pict-provider":"^1.0.10","pict-view":"^1.0.66",quackage:"^1.1.0",typescript:"^5.9.3"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},dependencies:{"fable-serviceproviderbase":"^3.0.19"}}},{}],6:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json"),o={Name:"DefaultPictApplication",MainViewportViewIdentifier:"Default-View",MainViewportRenderableHash:!1,MainViewportDestinationAddress:!1,MainViewportDefaultDataAddress:!1,AutoSolveAfterInitialize:!0,AutoRenderMainViewportViewAfterInitialize:!0,AutoRenderViewsAfterInitialize:!1,AutoLoginAfterInitialize:!1,AutoLoadDataAfterLogin:!1,ConfigurationOnlyViews:[],Manifests:{},IdentifierAddressPrefix:"PICT-"};e.exports=class extends n{constructor(t,e,i){let n="object"==typeof t.settings.PictApplicationConfiguration?t.settings.PictApplicationConfiguration:{};super(t,Object.assign({},JSON.parse(JSON.stringify(o)),n,e),i),this.options,this.log,this.fable,this.UUID,this.Hash,this.servicesMap,this.serviceType="PictApplication",this._Package=r,this.pict=this.fable,this.AppData=this.fable.AppData,this.Bundle=this.fable.Bundle,this.initializeTimestamp,this.lastSolvedTimestamp,this.lastLoginTimestamp,this.lastMarshalFromViewsTimestamp,this.lastMarshalToViewsTimestamp,this.lastAutoRenderTimestamp,this.lastLoadDataTimestamp;let a=Object.keys(this.options.Manifests);if(a.length>0)for(let t=0;t<a.length;t++){let e=a[t];this.fable.instantiateServiceProvider("Manifest",this.options.Manifests[e],e)}}onPreSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onPreSolve:")),!0}onPreSolveAsync(t){return this.onPreSolve(),t()}onBeforeSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeSolve:")),!0}onBeforeSolveAsync(t){return this.onBeforeSolve(),t()}onSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onSolve:")),!0}onSolveAsync(t){return this.onSolve(),t()}solve(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing solve() function..."));let t=Object.keys(this.pict.providers),e=[];for(let i=0;i<t.length;i++){let n=this.pict.providers[t[i]];n.options.AutoSolveWithApp&&e.push(n)}e.sort((t,e)=>t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal);for(let t=0;t<e.length;t++)e[t].solve(e[t]);this.onBeforeSolve();let i=Object.keys(this.pict.views),n=[];for(let t=0;t<i.length;t++){let e=this.pict.views[i[t]];e.options.AutoInitialize&&n.push(e)}n.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let t=0;t<n.length;t++)n[t].solve();return this.onSolve(),this.onAfterSolve(),this.lastSolvedTimestamp=this.fable.log.getTimeStamp(),!0}solveAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");e.anticipate(this.onBeforeSolveAsync.bind(this));let i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync Auto Callback Error: ").concat(t),t)});let n=Object.keys(this.pict.providers),r=[];for(let t=0;t<n.length;t++){let e=this.pict.providers[n[t]];e.options.AutoSolveWithApp&&r.push(e)}r.sort((t,e)=>t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal);for(let t=0;t<r.length;t++)e.anticipate(r[t].solveAsync.bind(r[t]));let o=Object.keys(this.pict.views),a=[];for(let t=0;t<o.length;t++){let e=this.pict.views[o[t]];e.options.AutoSolveWithApp&&a.push(e)}a.sort((t,e)=>t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal);for(let t=0;t<a.length;t++)e.anticipate(a[t].solveAsync.bind(a[t]));e.anticipate(this.onSolveAsync.bind(this)),e.anticipate(this.onAfterSolveAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync() complete.")),this.lastSolvedTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterSolve:")),!0}onAfterSolveAsync(t){return this.onAfterSolve(),t()}onBeforeLoginAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeLoginAsync:")),t()}onLoginAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onLoginAsync:")),t()}loginAsync(t){const e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");let i=t;"function"!=typeof i&&(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loginAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loginAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeLoginAsync.bind(this)),e.anticipate(this.onLoginAsync.bind(this)),e.anticipate(this.onAfterLoginAsync.bind(this)),this.options.AutoLoadDataAfterLogin&&e.anticipate(t=>{if(!this.isLoggedIn())return t();this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto loading data after login...")),this.loadDataAsync(e=>{t(e)})}),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loginAsync() complete.")),this.lastLoginTimestamp=this.fable.log.getTimeStamp(),i(t)))}isLoggedIn(){return!0}onAfterLoginAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterLoginAsync:")),t()}onBeforeLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeLoadDataAsync:")),t()}onLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onLoadDataAsync:")),t()}loadDataAsync(t){const e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");let i=t;"function"!=typeof i&&(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loadDataAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loadDataAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeLoadDataAsync.bind(this));let n=Object.keys(this.pict.providers),r=[];for(let t=0;t<n.length;t++){let e=this.pict.providers[n[t]];e.options.AutoLoadDataWithApp&&r.push(e)}r.sort((t,e)=>t.options.AutoLoadDataOrdinal-e.options.AutoLoadDataOrdinal);for(const t of r)e.anticipate(t.onBeforeLoadDataAsync.bind(t));e.anticipate(this.onLoadDataAsync.bind(this));for(const t of r)e.anticipate(t.onLoadDataAsync.bind(t));e.anticipate(this.onAfterLoadDataAsync.bind(this));for(const t of r)e.anticipate(t.onAfterLoadDataAsync.bind(t));e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," loadDataAsync() complete.")),this.lastLoadDataTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterLoadDataAsync:")),t()}onBeforeSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeSaveDataAsync:")),t()}onSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onSaveDataAsync:")),t()}saveDataAsync(t){const e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");let i=t;"function"!=typeof i&&(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," saveDataAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," saveDataAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeSaveDataAsync.bind(this));let n=Object.keys(this.pict.providers),r=[];for(let t=0;t<n.length;t++){let e=this.pict.providers[n[t]];e.options.AutoSaveDataWithApp&&r.push(e)}r.sort((t,e)=>t.options.AutoSaveDataOrdinal-e.options.AutoSaveDataOrdinal);for(const t of r)e.anticipate(t.onBeforeSaveDataAsync.bind(t));e.anticipate(this.onSaveDataAsync.bind(this));for(const t of r)e.anticipate(t.onSaveDataAsync.bind(t));e.anticipate(this.onAfterSaveDataAsync.bind(this));for(const t of r)e.anticipate(t.onAfterSaveDataAsync.bind(t));e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," saveDataAsync() complete.")),this.lastSaveDataTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterSaveDataAsync:")),t()}onBeforeInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeInitialize:")),!0}onBeforeInitializeAsync(t){return this.onBeforeInitialize(),t()}onInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onInitialize:")),!0}onInitializeAsync(t){return this.onInitialize(),t()}initialize(){if(this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initialize:")),this.initializeTimestamp)return this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initialize called but initialization is already completed. Aborting.")),!1;{if(this.onBeforeInitialize(),"ConfigurationOnlyViews"in this.options)for(let t=0;t<this.options.ConfigurationOnlyViews.length;t++){let e=void 0===this.options.ConfigurationOnlyViews[t].ViewIdentifier?"AutoView-".concat(this.fable.getUUID()):this.options.ConfigurationOnlyViews[t].ViewIdentifier;this.log.info("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," adding configuration only view: ").concat(e)),this.pict.addView(e,this.options.ConfigurationOnlyViews[t])}this.onInitialize();let t=Object.keys(this.pict.providers),e=[];for(let i=0;i<t.length;i++){let n=this.pict.providers[t[i]];n.options.AutoInitialize&&e.push(n)}e.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let t=0;t<e.length;t++)e[t].initialize();let i=Object.keys(this.pict.views),n=[];for(let t=0;t<i.length;t++){let e=this.pict.views[i[t]];e.options.AutoInitialize&&n.push(e)}n.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let t=0;t<n.length;t++)n[t].initialize();return this.onAfterInitialize(),this.options.AutoSolveAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto solving after initialization...")),this.solve()),this.options.AutoRenderMainViewportViewAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto rendering after initialization...")),this.render()),this.initializeTimestamp=this.fable.log.getTimeStamp(),this.onCompletionOfInitialize(),!0}}initializeAsync(t){this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync:"));let e="function"==typeof t&&t;if(e||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),e=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync Auto Callback Error: ").concat(t),t)}),this.initializeTimestamp)return this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," async initialize called but initialization is already completed. Aborting.")),this.onCompletionOfInitializeAsync(e);{let t=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");if(this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning initialization...")),"ConfigurationOnlyViews"in this.options)for(let t=0;t<this.options.ConfigurationOnlyViews.length;t++){let e=void 0===this.options.ConfigurationOnlyViews[t].ViewIdentifier?"AutoView-".concat(this.fable.getUUID()):this.options.ConfigurationOnlyViews[t].ViewIdentifier;this.log.info("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," adding configuration only view: ").concat(e)),this.pict.addView(e,this.options.ConfigurationOnlyViews[t])}t.anticipate(this.onBeforeInitializeAsync.bind(this)),t.anticipate(this.onInitializeAsync.bind(this));let i=Object.keys(this.pict.providers),n=[];for(let t=0;t<i.length;t++){let e=this.pict.providers[i[t]];e.options.AutoInitialize&&n.push(e)}n.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let e=0;e<n.length;e++)t.anticipate(n[e].initializeAsync.bind(n[e]));let r=Object.keys(this.pict.views),o=[];for(let t=0;t<r.length;t++){let e=this.pict.views[r[t]];e.options.AutoInitialize&&o.push(e)}o.sort((t,e)=>t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal);for(let e=0;e<o.length;e++){let i=o[e];t.anticipate(i.initializeAsync.bind(i))}t.anticipate(this.onAfterInitializeAsync.bind(this)),this.options.AutoLoginAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto login (asynchronously) after initialization...")),t.anticipate(this.loginAsync.bind(this))),this.options.AutoSolveAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto solving (asynchronously) after initialization...")),t.anticipate(this.solveAsync.bind(this))),this.options.AutoRenderMainViewportViewAfterInitialize&&(this.pict.LogNoisiness>1&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," auto rendering (asynchronously) after initialization...")),t.anticipate(this.renderMainViewportAsync.bind(this))),t.wait(t=>(t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync Error: ").concat(t.message||t),{stack:t.stack}),this.initializeTimestamp=this.fable.log.getTimeStamp(),this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initialization complete.")),e()))}}onAfterInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterInitialize:")),!0}onAfterInitializeAsync(t){return this.onAfterInitialize(),t()}onCompletionOfInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onCompletionOfInitialize:")),!0}onCompletionOfInitializeAsync(t){return this.onCompletionOfInitialize(),t()}onBeforeMarshalFromViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeMarshalFromViews:")),!0}onBeforeMarshalFromViewsAsync(t){return this.onBeforeMarshalFromViews(),t()}onMarshalFromViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onMarshalFromViews:")),!0}onMarshalFromViewsAsync(t){return this.onMarshalFromViews(),t()}marshalFromViews(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing marshalFromViews() function...")),this.onBeforeMarshalFromViews();let t=Object.keys(this.pict.views),e=[];for(let i=0;i<t.length;i++){let n=this.pict.views[t[i]];e.push(n)}for(let t=0;t<e.length;t++)e[t].marshalFromView();return this.onMarshalFromViews(),this.onAfterMarshalFromViews(),this.lastMarshalFromViewsTimestamp=this.fable.log.getTimeStamp(),!0}marshalFromViewsAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewsAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewsAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalFromViewsAsync.bind(this));let n=Object.keys(this.pict.views),r=[];for(let t=0;t<n.length;t++){let e=this.pict.views[n[t]];r.push(e)}for(let t=0;t<r.length;t++)e.anticipate(r[t].marshalFromViewAsync.bind(r[t]));e.anticipate(this.onMarshalFromViewsAsync.bind(this)),e.anticipate(this.onAfterMarshalFromViewsAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewsAsync() complete.")),this.lastMarshalFromViewsTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterMarshalFromViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterMarshalFromViews:")),!0}onAfterMarshalFromViewsAsync(t){return this.onAfterMarshalFromViews(),t()}onBeforeMarshalToViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeMarshalToViews:")),!0}onBeforeMarshalToViewsAsync(t){return this.onBeforeMarshalToViews(),t()}onMarshalToViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onMarshalToViews:")),!0}onMarshalToViewsAsync(t){return this.onMarshalToViews(),t()}marshalToViews(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing marshalToViews() function...")),this.onBeforeMarshalToViews();let t=Object.keys(this.pict.views),e=[];for(let i=0;i<t.length;i++){let n=this.pict.views[t[i]];e.push(n)}for(let t=0;t<e.length;t++)e[t].marshalToView();return this.onMarshalToViews(),this.onAfterMarshalToViews(),this.lastMarshalToViewsTimestamp=this.fable.log.getTimeStamp(),!0}marshalToViewsAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewsAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewsAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalToViewsAsync.bind(this));let n=Object.keys(this.pict.views),r=[];for(let t=0;t<n.length;t++){let e=this.pict.views[n[t]];r.push(e)}for(let t=0;t<r.length;t++)e.anticipate(r[t].marshalToViewAsync.bind(r[t]));e.anticipate(this.onMarshalToViewsAsync.bind(this)),e.anticipate(this.onAfterMarshalToViewsAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewsAsync() complete.")),this.lastMarshalToViewsTimestamp=this.fable.log.getTimeStamp(),i(t)))}onAfterMarshalToViews(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterMarshalToViews:")),!0}onAfterMarshalToViewsAsync(t){return this.onAfterMarshalToViews(),t()}onBeforeRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeRender:")),!0}onBeforeRenderAsync(t){return this.onBeforeRender(),t()}render(t,e,i,n){let r="string"!=typeof t?this.options.MainViewportViewIdentifier:t,o="string"!=typeof e?this.options.MainViewportRenderableHash:e,a="string"!=typeof i?this.options.MainViewportDestinationAddress:i,s="string"!=typeof n?this.options.MainViewportDefaultDataAddress:n;this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," VIEW Renderable[").concat(o,"] Destination[").concat(a,"] TemplateDataAddress[").concat(s,"] render:")),this.onBeforeRender();let c="string"==typeof r&&this.servicesMap.PictView[r];return c?(this.onRender(),c.render(o,a,s),this.onAfterRender(),!0):(this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," could not render from View ").concat(r," because it is not a valid view.")),!1)}onRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onRender:")),!0}onRenderAsync(t){return this.onRender(),t()}renderAsync(t,e,i,n,r){let o="string"!=typeof t?this.options.MainViewportViewIdentifier:t,a="string"!=typeof e?this.options.MainViewportRenderableHash:e,s="string"!=typeof i?this.options.MainViewportDestinationAddress:i,c="string"!=typeof n?this.options.MainViewportDefaultDataAddress:n,l="function"==typeof r?r:"function"==typeof n?n:"function"==typeof i?i:"function"==typeof e?e:"function"==typeof t&&t;l||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),l=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync Auto Callback Error: ").concat(t),t)}),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," VIEW Renderable[").concat(a,"] Destination[").concat(s,"] TemplateDataAddress[").concat(c,"] renderAsync:"));let p=this.fable.newAnticipate();p.anticipate(this.onBeforeRenderAsync.bind(this));let d="string"==typeof o&&this.servicesMap.PictView[o];if(!d){let t="PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," could not asynchronously render from View ").concat(o," because it is not a valid view.");return this.pict.LogNoisiness>3&&this.log.error(t),l(new Error(t))}return p.anticipate(this.onRenderAsync.bind(this)),p.anticipate(t=>{d.renderAsync.call(d,a,s,c,t)}),p.anticipate(this.onAfterRenderAsync.bind(this)),p.wait(l)}onAfterRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterRender:")),!0}onAfterRenderAsync(t){return this.onAfterRender(),t()}renderMainViewport(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderMainViewport:")),this.render()}renderMainViewportAsync(t){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderMainViewportAsync:")),this.renderAsync(t)}renderAutoViews(){this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning renderAutoViews..."));let t=Object.keys(this.pict.views);t.sort((t,e)=>this.pict.views[t].options.AutoRenderOrdinal-this.pict.views[e].options.AutoRenderOrdinal);for(let e=0;e<t.length;e++){let i=this.pict.views[t[e]];i.options.AutoRender&&i.render()}this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync complete."))}renderAutoViewsAsync(t){let e=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t&&t;i||(this.log.warn("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync Auto Callback Error: ").concat(t),t)}),this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning renderAutoViewsAsync..."));let n=Object.keys(this.pict.views);n.sort((t,e)=>this.pict.views[t].options.AutoRenderOrdinal-this.pict.views[e].options.AutoRenderOrdinal);for(let t=0;t<n.length;t++){let i=this.pict.views[n[t]];i.options.AutoRender&&e.anticipate(i.renderAsync.bind(i))}e.wait(t=>(this.lastAutoRenderTimestamp=this.fable.log.getTimeStamp(),this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync complete.")),i(t)))}get isPictApplication(){return!0}}},{"../package.json":5,"fable-serviceproviderbase":3}],7:[function(t,e,i){
2
2
  /**
3
3
  * Theme Diagram Adapter
4
4
  *
@@ -39,4 +39,4 @@
39
39
  * @author Steven Velozo <steven@velozo.com>
40
40
  * @license MIT
41
41
  */
42
- const n=[{Key:"primaryColor",Var:"--theme-color-background-panel",Fallback:"#ffffff"},{Key:"primaryTextColor",Var:"--theme-color-text-primary",Fallback:"#1a1a1a"},{Key:"primaryBorderColor",Var:"--theme-color-brand-primary",Fallback:"#3357c7"},{Key:"secondaryColor",Var:"--theme-color-background-secondary",Fallback:"#f5f5f5"},{Key:"secondaryTextColor",Var:"--theme-color-text-secondary",Fallback:"#454545"},{Key:"secondaryBorderColor",Var:"--theme-color-border-default",Fallback:"#d6d6d6"},{Key:"tertiaryColor",Var:"--theme-color-background-tertiary",Fallback:"#ebebeb"},{Key:"tertiaryTextColor",Var:"--theme-color-text-secondary",Fallback:"#454545"},{Key:"tertiaryBorderColor",Var:"--theme-color-border-light",Fallback:"#e9e9e9"},{Key:"background",Var:"--theme-color-background-panel",Fallback:"#ffffff"},{Key:"mainBkg",Var:"--theme-color-background-panel",Fallback:"#ffffff"},{Key:"secondBkg",Var:"--theme-color-background-secondary",Fallback:"#f5f5f5"},{Key:"lineColor",Var:"--theme-color-text-secondary",Fallback:"#454545"},{Key:"textColor",Var:"--theme-color-text-primary",Fallback:"#1a1a1a"},{Key:"noteBkgColor",Var:"--theme-color-background-tertiary",Fallback:"#ebebeb"},{Key:"noteTextColor",Var:"--theme-color-text-primary",Fallback:"#1a1a1a"},{Key:"noteBorderColor",Var:"--theme-color-border-default",Fallback:"#d6d6d6"},{Key:"errorBkgColor",Var:"--theme-color-status-error",Fallback:"#b62828"},{Key:"errorTextColor",Var:"--theme-color-text-on-brand",Fallback:"#ffffff"},{Key:"fontFamily",Var:"--theme-typography-family-sans",Fallback:"inherit"}];function r(t,e,i){if("undefined"==typeof window||"undefined"==typeof document)return e||"";let n=i||document.documentElement;return n?(getComputedStyle(n).getPropertyValue(t)||"").trim()||e||"":e||""}function o(t){let e={};for(let t=0;t<n.length;t++){let i=n[t];e[i.Key]=r(i.Var,i.Fallback)}if(t&&"object"==typeof t){let i=Object.keys(t);for(let n=0;n<i.length;n++)e[i[n]]=t[i[n]]}return e}function a(t,e){if(!t||"function"!=typeof t.initialize)return!1;let i=e||{},n=i.themeVariables,r=i.config||{},a=o(n),s=Object.assign({startOnLoad:!1,theme:"base",securityLevel:"loose"},r,{themeVariables:a});return t.initialize(s),!0}function s(t){if("undefined"==typeof document)return null;let e="undefined"!=typeof mermaid?mermaid:null;if(!e||"function"!=typeof e.run)return null;let i=function(t){let e="pre.mermaid[data-mermaid-source]";if(!t)return document.querySelectorAll(e);if("string"==typeof t){let i=document.querySelector(t);return i?i.querySelectorAll(e):[]}if(t.querySelectorAll)return t.querySelectorAll(e);return[]}(t);if(!i||i.length<1)return null;for(let t=0;t<i.length;t++){let e=i[t],n=e.getAttribute("data-mermaid-source");null!==n&&(e.textContent=n),e.removeAttribute("data-processed"),e.classList&&"function"==typeof e.classList.remove&&e.classList.remove("mermaid-rendered")}try{let t=e.run({nodes:i});return t&&"function"==typeof t.then?t.then(function(){return c(i),t}):(c(i),t)}catch(t){return Promise.reject(t)}}function c(t){if("undefined"==typeof document)return 0;let e;if(t)if("string"==typeof t){let i=document.querySelector(t);e=i?i.querySelectorAll("pre.mermaid"):[]}else if(void 0!==t.length)e=t;else{if(!t.querySelectorAll)return 0;e=t.querySelectorAll("pre.mermaid")}else e=document.querySelectorAll("pre.mermaid");let i=0;for(let t=0;t<e.length;t++){let n=e[t];if(!n||!n.querySelectorAll)continue;let r=n.querySelectorAll('.node rect[style*="!important"], .node polygon[style*="!important"], .node circle[style*="!important"], .node ellipse[style*="!important"], .node path[style*="!important"], .cluster rect[style*="!important"]');for(let t=0;t<r.length;t++){let e=r[t],n=e.getAttribute("style")||"";n.indexOf("!important")<0||(e.setAttribute("style",n.replace(/\s*!important\s*/gi,"")),i++)}}return i}e.exports={MERMAID_TOKEN_MAP:n,readCSSVar:r,getMermaidTokenMap:function(){return n.map(t=>({Key:t.Key,Var:t.Var,Fallback:t.Fallback}))},buildMermaidThemeVariables:o,initializeMermaid:a,stashMermaidSource:function(t){if(t&&!(t.length<1))for(let e=0;e<t.length;e++){let i=t[e];i&&"function"==typeof i.getAttribute&&(i.hasAttribute("data-mermaid-source")||i.setAttribute("data-mermaid-source",i.textContent))}},refreshMermaidDiagrams:s,stripMermaidStyleImportance:c,adaptMermaid:function(t,e,i){let n=i||{},r={themeVariables:n.themeOverrides,config:n.configOverrides};a(e,r);let o=function(t){if("function"==typeof n.onBeforeRefresh)try{n.onBeforeRefresh(t||{})}catch(t){}a(e,r);let i=s(n.refreshScope);return i&&"function"==typeof i.then&&"function"==typeof n.onAfterRefresh&&i.then(()=>{try{n.onAfterRefresh(t||{})}catch(t){}},()=>{try{n.onAfterRefresh(t||{})}catch(t){}}),i},c=function(){},l=!1;return t&&"function"==typeof t.onApply&&(c=t.onApply(function(t,e){o(e||{})}),l=!0),{dispose:function(){"function"==typeof c&&c()},refresh:o,reinitialize:function(){a(e,r)},subscribed:l}}}},{}],8:[function(t,e,i){e.exports={name:"pict-provider",version:"1.0.13",description:"Pict Provider Base Class",main:"source/Pict-Provider.js",scripts:{start:"node source/Pict-Provider.js",test:"npx quack test",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-provider-image:local","docker-dev-run":'docker run -it -d --name pict-provider-dev -p 24125:8080 -p 30027:8086 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-provider" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-provider-image:local',"docker-dev-shell":"docker exec -it pict-provider-dev /bin/bash",lint:"eslint source/**",types:"tsc -p ."},types:"types/source/Pict-Provider.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-provider.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-provider/issues"},homepage:"https://github.com/stevenvelozo/pict-provider#readme",devDependencies:{"@eslint/js":"^9.39.1",eslint:"^9.39.1",pict:"^1.0.351","pict-docuserve":"^0.1.5",quackage:"^1.1.0",typescript:"^5.9.3"},dependencies:{"fable-serviceproviderbase":"^3.0.19"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]}}},{}],9:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json"),o={ProviderIdentifier:!1,AutoInitialize:!0,AutoInitializeOrdinal:0,AutoLoadDataWithApp:!0,AutoLoadDataOrdinal:0,AutoSolveWithApp:!0,AutoSolveOrdinal:0,Manifests:{},Templates:[]};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(o)),e),i),this.fable,this.pict,this.log,this.options,this.UUID,this.Hash,this.options.ProviderIdentifier||(this.options.ProviderIdentifier="AutoProviderID-".concat(this.fable.getUUID())),this.serviceType="PictProvider",this._Package=r,this.pict=this.fable,this.AppData=this.pict.AppData,this.Bundle=this.pict.Bundle,this.initializeTimestamp=!1,this.lastSolvedTimestamp=!1;for(let t=0;t<this.options.Templates.length;t++){let e=this.options.Templates[t];e.hasOwnProperty("Postfix")&&e.hasOwnProperty("Template")?(e.Source||(e.Source="PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," options object.")),this.pict.TemplateProvider.addDefaultTemplate(e.Prefix,e.Postfix,e.Template,e.Source)):this.log.error("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," could not load Default Template ").concat(t," in the options array."),e)}}onBeforeInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onBeforeInitialize:")),!0}onBeforeInitializeAsync(t){return this.onBeforeInitialize(),t()}onInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onInitialize:")),!0}onInitializeAsync(t){return this.onInitialize(),t()}initialize(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow PROVIDER [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialize:")),this.initializeTimestamp?(this.log.warn("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialize called but initialization is already completed. Aborting.")),!1):(this.onBeforeInitialize(),this.onInitialize(),this.onAfterInitialize(),this.initializeTimestamp=this.pict.log.getTimeStamp(),!0)}initializeAsync(t){if(this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow PROVIDER [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initializeAsync:")),this.initializeTimestamp)return this.log.warn("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," async initialize called but initialization is already completed. Aborting.")),t();{let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate");this.pict.LogNoisiness>0&&this.log.info("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," beginning initialization...")),e.anticipate(this.onBeforeInitializeAsync.bind(this)),e.anticipate(this.onInitializeAsync.bind(this)),e.anticipate(this.onAfterInitializeAsync.bind(this)),e.wait(e=>(this.initializeTimestamp=this.pict.log.getTimeStamp(),e?this.log.error("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialization failed: ").concat(e.message||e),{Stack:e.stack}):this.pict.LogNoisiness>0&&this.log.info("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialization complete.")),t()))}}onAfterInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onAfterInitialize:")),!0}onAfterInitializeAsync(t){return this.onAfterInitialize(),t()}onPreRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onPreRender:")),!0}onPreRenderAsync(t){return this.onPreRender(),t()}render(){return this.onPreRender()}renderAsync(t){return this.onPreRender(),t()}onPreSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onPreSolve:")),!0}onPreSolveAsync(t){return this.onPreSolve(),t()}solve(){return this.onPreSolve()}solveAsync(t){return this.onPreSolve(),t()}onBeforeLoadDataAsync(t){return t()}onLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onLoadDataAsync:")),t()}onAfterLoadDataAsync(t){return t()}onBeforeSaveDataAsync(t){return t()}onSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onSaveDataAsync:")),t()}onAfterSaveDataAsync(t){return t()}}},{"../package.json":8,"fable-serviceproviderbase":3}],10:[function(t,e,i){const n={javascript:{tokenizer:/(\/\/[^\n]*|\/\*[\s\S]*?\*\/)|(["'])(?:(?!\2|\\).|\\.)*?\2|(`(?:[^`\\]|\\.)*?`)|(\/(?![/*])(?:\\.|\[(?:\\.|[^\]])*\]|[^/\\\n])+\/[gimsuvy]*)/g,keywords:/\b(async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|export|extends|finally|for|from|function|get|if|import|in|instanceof|let|new|of|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/g,builtins:/\b(true|false|null|undefined|NaN|Infinity|console|window|document|Math|JSON|Array|Object|String|Number|Boolean|Date|RegExp|Map|Set|Promise|Error|Symbol|parseInt|parseFloat|require|module|exports)\b/g,numbers:/\b(\d+\.?\d*(?:e[+-]?\d+)?|0x[0-9a-fA-F]+|0b[01]+|0o[0-7]+)\b/g},json:{tokenizer:/(\/\/[^\n]*|\/\*[\s\S]*?\*\/)|("(?:[^"\\]|\\.)*")/g,keywords:/\b(true|false|null)\b/g,numbers:/-?\b\d+\.?\d*(?:e[+-]?\d+)?\b/g},html:{tokenizer:/(<!--[\s\S]*?-->)|(["'])(?:(?!\2|\\).|\\.)*?\2|(<\/?[a-zA-Z][a-zA-Z0-9-]*(?:\s+[a-zA-Z-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*\/?>)/g,tagGroupIndex:3},css:{tokenizer:/(\/\*[\s\S]*?\*\/)|(["'])(?:(?!\2|\\).|\\.)*?\2/g,selectors:/([.#]?[a-zA-Z_][\w-]*(?:\s*[>+~]\s*[.#]?[a-zA-Z_][\w-]*)*)\s*\{/g,properties:/\b([a-zA-Z-]+)\s*:/g,numbers:/\b(\d+\.?\d*)(px|em|rem|%|vh|vw|s|ms|deg|fr)?\b/g,keywords:/\b(important|inherit|initial|unset|none|auto|block|inline|flex|grid)\b/g},sql:{tokenizer:/(--[^\n]*|\/\*[\s\S]*?\*\/)|(["'])(?:(?!\2|\\).|\\.)*?\2/g,keywords:/\b(SELECT|FROM|WHERE|AND|OR|INSERT|INTO|VALUES|UPDATE|SET|DELETE|CREATE|TABLE|DROP|ALTER|ADD|COLUMN|INDEX|JOIN|LEFT|RIGHT|INNER|OUTER|ON|AS|ORDER|BY|GROUP|HAVING|LIMIT|OFFSET|UNION|ALL|DISTINCT|COUNT|SUM|AVG|MIN|MAX|NOT|NULL|IS|IN|BETWEEN|LIKE|EXISTS|CASE|WHEN|THEN|ELSE|END|PRIMARY|KEY|FOREIGN|REFERENCES|CONSTRAINT|DEFAULT|CHECK|UNIQUE|CASCADE|GRANT|REVOKE|COMMIT|ROLLBACK|BEGIN|TRANSACTION|INT|VARCHAR|DATETIME|AUTO_INCREMENT|CURRENT_TIMESTAMP)\b/gi,numbers:/\b\d+\.?\d*\b/g}};function r(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function o(t,e){let i=t;return e.selectors&&(e.selectors.lastIndex=0,i=i.replace(e.selectors,'<span class="function-name">$1</span>{')),e.properties&&(e.properties.lastIndex=0,i=i.replace(e.properties,'<span class="property">$1</span>:')),e.keywords&&(e.keywords.lastIndex=0,i=i.replace(e.keywords,'<span class="keyword">$1</span>')),e.builtins&&(e.builtins.lastIndex=0,i=i.replace(e.builtins,'<span class="keyword">$1</span>')),e.numbers&&(e.numbers.lastIndex=0,i=i.replace(e.numbers,t=>'<span class="number">'.concat(t,"</span>"))),i}function a(t){let e="",i=t,n=i.match(/^(<\/?)([a-zA-Z][a-zA-Z0-9-]*)/);if(!n)return r(t);e+=r(n[1]),e+='<span class="tag">'+r(n[2])+"</span>",i=i.substring(n[0].length);let o,a=/^(\s+)([a-zA-Z-]+)(?:(\s*=\s*)(["'])([^"']*?)\4)?/;for(;null!==(o=i.match(a));)e+=o[1],e+='<span class="attr-name">'+r(o[2])+"</span>",o[3]&&(e+=r(o[3]),e+='<span class="attr-value">'+r(o[4])+r(o[5])+r(o[4])+"</span>"),i=i.substring(o[0].length);return e+=r(i),e}n.js=n.javascript,n.htm=n.html,e.exports=function(t){return function(e){let i=e.textContent,s="string"==typeof t?t.toLowerCase():"javascript",c=n[s];if(!c)return void(e.innerHTML=r(i));if(!c.tokenizer)return void(e.innerHTML=o(r(i),c));let l,p="",d=0,u=c.tagGroupIndex||0;for(c.tokenizer.lastIndex=0;null!==(l=c.tokenizer.exec(i));){if(l.index>d){p+=o(r(i.substring(d,l.index)),c)}let t=l[0];l[1]?p+='<span class="comment">'.concat(r(t),"</span>"):u>0&&l[u]?p+=a(t):p+='<span class="string">'.concat(r(t),"</span>"),d=c.tokenizer.lastIndex}if(d<i.length){p+=o(r(i.substring(d)),c)}e.innerHTML=p}},e.exports.LanguageDefinitions=n},{}],11:[function(t,e,i){e.exports={RenderOnLoad:!0,DefaultRenderable:"CodeEditor-Wrap",DefaultDestinationAddress:"#CodeEditor-Container-Div",Templates:[{Hash:"CodeEditor-Container",Template:"\x3c!-- CodeEditor-Container Rendering Soon --\x3e"}],Renderables:[{RenderableHash:"CodeEditor-Wrap",TemplateHash:"CodeEditor-Container",DestinationAddress:"#CodeEditor-Container-Div"}],TargetElementAddress:"#CodeEditor-Container-Div",CodeDataAddress:!1,Language:"javascript",ReadOnly:!1,Tab:"\t",IndentOn:/[({[]$/,MoveToNewLine:/^[)}\]]/,AddClosing:!0,CatchTab:!0,LineNumbers:!0,DefaultCode:"// Enter your code here\n",CSS:".pict-code-editor-wrap\n{\n\tdisplay: flex;\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\tfont-size: 14px;\n\tline-height: 1.5;\n\tborder: 1px solid var(--theme-color-border-default, #D0D0D0);\n\tborder-radius: 4px;\n\toverflow: hidden;\n}\n.pict-code-editor-wrap .pict-code-line-numbers\n{\n\twidth: 40px;\n\tmin-width: 40px;\n\t/* padding-top/bottom are stamped at runtime from the editor's\n\t computed padding so row 1 of the gutter aligns with row 1 of\n\t the code; only horizontal padding is stylesheet-owned. */\n\tpadding: 0;\n\ttext-align: right;\n\tbackground: var(--theme-color-editor-linenumber-background, var(--theme-color-background-secondary, #F5F5F5));\n\tborder-right: 1px solid var(--theme-color-editor-gutter-border, var(--theme-color-border-default, #D0D0D0));\n\tcolor: var(--theme-color-editor-linenumber-text, var(--theme-color-text-muted, #999));\n\tfont-size: 13px;\n\t/* line-height, padding-top, padding-bottom, and font-family are\n\t intentionally NOT declared here. PictSectionCode._syncGutterMetrics()\n\t copies them from the editor's computed styles at init and on every\n\t editor resize, so the gutter is guaranteed to track the editor.\n\t Declaring them in CSS would either be redundant (when matching) or\n\t actively wrong (when the editor's metrics diverge — e.g. theme scale\n\t changes the editor's font-size). See codejar-linenumbers for the\n\t canonical version of this pattern. */\n\tuser-select: none;\n\tpointer-events: none;\n\tbox-sizing: border-box;\n}\n.pict-code-editor-wrap .pict-code-line-numbers span\n{\n\tdisplay: block;\n\tpadding: 0 8px 0 0;\n}\n.pict-code-editor-wrap .pict-code-editor\n{\n\tmargin: 0;\n\tpadding: 10px 10px 10px 8px;\n\tmin-height: 100px;\n\tflex: 1;\n\tmin-width: 0;\n\toutline: none;\n\ttab-size: 4;\n\twhite-space: pre;\n\toverflow-wrap: normal;\n\tcolor: var(--theme-color-text-primary, #383A42);\n\tbackground: var(--theme-color-background-panel, #FAFAFA);\n\tcaret-color: var(--theme-color-brand-primary, #526FFF);\n\tborder-radius: 0 4px 4px 0;\n}\n.pict-code-editor-wrap .pict-code-editor.pict-code-no-line-numbers\n{\n\tpadding-left: 10px;\n\tborder-radius: 4px;\n}\n.pict-code-editor-wrap .pict-code-editor::selection,\n.pict-code-editor-wrap .pict-code-editor *::selection\n{\n\tbackground: var(--theme-color-editor-selection-background, var(--theme-color-selection-background, #B3D4FC));\n}\n/* Syntax token colors — each class binds to a Color.Syntax.* token from\n pict-provider-theme. Fallback hexes match the One Light palette so apps\n that don't install the theme provider look the same as before. */\n.pict-code-editor-wrap .pict-code-editor .keyword { color: var(--theme-color-syntax-keyword, #A626A4); }\n.pict-code-editor-wrap .pict-code-editor .string { color: var(--theme-color-syntax-string, #50A14F); }\n.pict-code-editor-wrap .pict-code-editor .number { color: var(--theme-color-syntax-number, #986801); }\n.pict-code-editor-wrap .pict-code-editor .comment { color: var(--theme-color-syntax-comment, #A0A1A7); font-style: italic; }\n.pict-code-editor-wrap .pict-code-editor .operator { color: var(--theme-color-syntax-operator, #0184BC); }\n.pict-code-editor-wrap .pict-code-editor .punctuation { color: var(--theme-color-syntax-punctuation, #383A42); }\n.pict-code-editor-wrap .pict-code-editor .function-name { color: var(--theme-color-syntax-function, #4078F2); }\n.pict-code-editor-wrap .pict-code-editor .property { color: var(--theme-color-syntax-property, #E45649); }\n.pict-code-editor-wrap .pict-code-editor .tag { color: var(--theme-color-syntax-tag, #E45649); }\n.pict-code-editor-wrap .pict-code-editor .attr-name { color: var(--theme-color-syntax-attrname, #986801); }\n.pict-code-editor-wrap .pict-code-editor .attr-value { color: var(--theme-color-syntax-attrvalue, #50A14F); }\n.pict-code-editor-wrap .pict-code-editor .builtin { color: var(--theme-color-syntax-builtin, #986801); }\n.pict-code-editor-wrap .pict-code-editor .type { color: var(--theme-color-syntax-type, #C18401); }\n.pict-code-editor-wrap .pict-code-editor .variable { color: var(--theme-color-syntax-variable, #383A42); }\n\n/* highlight.js class aliases — when host apps render code blocks with\n highlight.js (e.g. markdown previews via CodeJar's hljs integration),\n the output uses .hljs / .hljs-* classes rather than the bare token\n classes pict-section-code emits. Mapping them here lets one stylesheet\n theme both editor surfaces (bare classes) and hljs-rendered surfaces\n without the host needing a separate per-app github.css. Rules are\n intentionally unscoped (no .pict-code-editor-wrap parent) so they\n apply globally wherever hljs paints. */\n.hljs { color: var(--theme-color-text-primary, #383A42); background: transparent; }\n.hljs-keyword,\n.hljs-keyword.hljs-typeof,\n.hljs-selector-tag,\n.hljs-literal { color: var(--theme-color-syntax-keyword, #A626A4); }\n.hljs-string,\n.hljs-regexp,\n.hljs-template-tag,\n.hljs-template-variable { color: var(--theme-color-syntax-string, #50A14F); }\n.hljs-number,\n.hljs-meta { color: var(--theme-color-syntax-number, #986801); }\n.hljs-comment,\n.hljs-quote { color: var(--theme-color-syntax-comment, #A0A1A7); font-style: italic; }\n.hljs-operator,\n.hljs-link { color: var(--theme-color-syntax-operator, #0184BC); }\n.hljs-punctuation { color: var(--theme-color-syntax-punctuation, #383A42); }\n.hljs-function .hljs-title,\n.hljs-title.function_,\n.hljs-title.class_ { color: var(--theme-color-syntax-function, #4078F2); }\n.hljs-variable,\n.hljs-variable.language_,\n.hljs-params { color: var(--theme-color-syntax-variable, #383A42); }\n.hljs-type,\n.hljs-class .hljs-title { color: var(--theme-color-syntax-type, #C18401); }\n.hljs-built_in,\n.hljs-builtin-name { color: var(--theme-color-syntax-builtin, #986801); }\n.hljs-attr,\n.hljs-property { color: var(--theme-color-syntax-property, #E45649); }\n.hljs-tag,\n.hljs-name { color: var(--theme-color-syntax-tag, #E45649); }\n.hljs-attribute { color: var(--theme-color-syntax-attrname, #986801); }\n.hljs-symbol { color: var(--theme-color-syntax-attrvalue, #50A14F); }\n.hljs-emphasis { font-style: italic; }\n.hljs-strong { font-weight: bold; }\n.hljs-deletion { color: var(--theme-color-status-error, #B62828); background: rgba(220, 50, 47, 0.08); }\n.hljs-addition { color: var(--theme-color-status-success, #2E7A3A); background: rgba(80, 161, 79, 0.10); }\n"}},{}],12:[function(t,e,i){const n=t("pict-view"),r=t("./Pict-Code-Highlighter.js"),o=t("./Pict-Section-Code-DefaultConfiguration.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},o,e),i),this.initialRenderComplete=!1,this.codeJar=null,this._highlightFunction=null,this._language=this.options.Language||"javascript"}onBeforeInitialize(){return super.onBeforeInitialize(),this._codeJarPrototype=null,this.targetElement=!1,this._highlightFunction=r(this._language),super.onBeforeInitialize()}connectCodeJarPrototype(t){if("function"!=typeof t)return"undefined"!=typeof window&&"function"==typeof window.CodeJar?(this.log.trace("PICT-Code Found CodeJar in window.CodeJar."),void(this._codeJarPrototype=window.CodeJar)):(this.log.error("PICT-Code No CodeJar prototype found. Include codejar via script tag or call connectCodeJarPrototype(CodeJar) explicitly."),!1);this._codeJarPrototype=t}onAfterRender(t){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t)}onAfterInitialRender(){if(this._codeJarPrototype||this.connectCodeJarPrototype(),!this._codeJarPrototype)return this.log.error("PICT-Code Cannot initialize editor; no CodeJar prototype available."),!1;if(this.codeJar)return this.log.error("PICT-Code editor is already initialized!"),!1;let t=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-Code Could not find target element [".concat(this.options.TargetElementAddress,"]!")),this.targetElement=!1,!1;this.targetElement=t[0],this._buildEditorDOM();let e=this._resolveCodeContent(),i={};this.options.Tab&&(i.tab=this.options.Tab),this.options.IndentOn&&(i.indentOn=this.options.IndentOn),this.options.MoveToNewLine&&(i.moveToNewLine=this.options.MoveToNewLine),void 0!==this.options.AddClosing&&(i.addClosing=this.options.AddClosing),void 0!==this.options.CatchTab&&(i.catchTab=this.options.CatchTab),this.customConfigureEditorOptions(i);let n=this._editorElement;if(this.codeJar=this._codeJarPrototype(n,this._highlightFunction,i),this._resetEditorWrapStyles(),e&&this.codeJar.updateCode(e),this.codeJar.onUpdate(t=>{this._updateLineNumbers(),this.onCodeChange(t)}),this._updateLineNumbers(),this._lineNumbersElement){let t=this._lineNumbersElement;n.addEventListener("scroll",function(){t.style.transform="translateY(-"+n.scrollTop+"px)"},{passive:!0})}if(this._syncGutterMetrics(),this._lineNumbersElement&&"function"==typeof ResizeObserver){let t=this;this._editorResizeObserver=new ResizeObserver(function(){t._syncGutterMetrics()}),this._editorResizeObserver.observe(n)}if(this._lineNumbersElement&&"function"==typeof MutationObserver){let t=this;this._editorStyleObserver=new MutationObserver(function(){t._syncGutterMetrics()}),this._editorStyleObserver.observe(n,{attributes:!0,attributeFilter:["style","class"]})}this.options.ReadOnly&&n.setAttribute("contenteditable","false")}_buildEditorDOM(){this.targetElement.innerHTML="";let t=document.createElement("div");if(t.className="pict-code-editor-wrap",this.options.LineNumbers){let e=document.createElement("div");e.className="pict-code-line-numbers",t.appendChild(e),this._lineNumbersElement=e}let e=document.createElement("div");e.className="pict-code-editor language-"+this._language,this.options.LineNumbers||(e.className+=" pict-code-no-line-numbers"),t.appendChild(e),this.targetElement.appendChild(t),this._editorElement=e,this._wrapElement=t}_updateLineNumbers(){if(!this.options.LineNumbers||!this._lineNumbersElement||!this._editorElement)return;let t=(this._editorElement.textContent||"").split("\n").length,e="";for(let i=1;i<=t;i++)e+="<span>".concat(i,"</span>");this._lineNumbersElement.innerHTML=e,this._syncGutterMetrics()}_syncGutterMetrics(){if(!this._lineNumbersElement||!this._editorElement)return;if("undefined"==typeof window||"function"!=typeof window.getComputedStyle)return;let t=window.getComputedStyle(this._editorElement),e=t.lineHeight;if(e&&"normal"!==e&&(this._lineNumbersElement.style.lineHeight=e),t.paddingTop&&(this._lineNumbersElement.style.paddingTop=t.paddingTop),t.paddingBottom&&(this._lineNumbersElement.style.paddingBottom=t.paddingBottom),t.fontFamily&&(this._lineNumbersElement.style.fontFamily=t.fontFamily),"undefined"!=typeof console&&console.warn){let t=this._lineNumbersElement.querySelector("span");if(t){let i=t.getBoundingClientRect().height,n=parseFloat(e);i&&n&&Math.abs(i-n)>.5&&console.warn("[pict-section-code] gutter/editor row-height mismatch: gutter "+i+"px vs editor "+n+"px — line numbers will drift. Check for CSS overriding .pict-code-line-numbers line-height.")}}}syncMetrics(){this._syncGutterMetrics()}_resetEditorWrapStyles(){this._editorElement&&(this._editorElement.style.whiteSpace="pre",this._editorElement.style.overflowWrap="normal")}_resolveCodeContent(){if(this.options.CodeDataAddress){const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let e=this.fable.manifest.getValueByHash(t,this.options.CodeDataAddress);if("string"==typeof e)return e;this.log.warn("PICT-Code Address [".concat(this.options.CodeDataAddress,"] did not return a string; it was ").concat(typeof e,"."))}return this.options.DefaultCode||""}customConfigureEditorOptions(t){}onCodeChange(t){if(this.options.CodeDataAddress){const e={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};this.fable.manifest.setValueByHash(e,this.options.CodeDataAddress,t)}}getCode(){return this.codeJar?this.codeJar.toString():(this.log.warn("PICT-Code getCode called before editor initialized."),"")}setCode(t){this.codeJar?(this.codeJar.updateCode(t),this._updateLineNumbers()):this.log.warn("PICT-Code setCode called before editor initialized.")}setLanguage(t){if(this._language=t,this._highlightFunction=r(t),this._editorElement&&(this._editorElement.className="pict-code-editor language-"+t,this.options.LineNumbers||(this._editorElement.className+=" pict-code-no-line-numbers")),this.codeJar){let t=this.codeJar.toString();this.codeJar.destroy(),this.codeJar=this._codeJarPrototype(this._editorElement,this._highlightFunction,{tab:this.options.Tab,catchTab:this.options.CatchTab,addClosing:this.options.AddClosing}),this._resetEditorWrapStyles(),this.codeJar.updateCode(t),this.codeJar.onUpdate(t=>{this._updateLineNumbers(),this.onCodeChange(t)})}}setHighlightFunction(t){if("function"==typeof t){if(this._highlightFunction=t,this.codeJar){let t=this.codeJar.toString();this.codeJar.destroy(),this.codeJar=this._codeJarPrototype(this._editorElement,this._highlightFunction,{tab:this.options.Tab,catchTab:this.options.CatchTab,addClosing:this.options.AddClosing}),this._resetEditorWrapStyles(),this.codeJar.updateCode(t),this.codeJar.onUpdate(t=>{this._updateLineNumbers(),this.onCodeChange(t)})}}else this.log.error("PICT-Code setHighlightFunction requires a function.")}setReadOnly(t){this.options.ReadOnly=t,this._editorElement&&this._editorElement.setAttribute("contenteditable",t?"false":"true")}destroy(){this._editorResizeObserver&&(this._editorResizeObserver.disconnect(),this._editorResizeObserver=null),this._editorStyleObserver&&(this._editorStyleObserver.disconnect(),this._editorStyleObserver=null),this.codeJar&&(this.codeJar.destroy(),this.codeJar=null)}marshalToView(){if(super.marshalToView(),this.codeJar&&this.options.CodeDataAddress){let t=this._resolveCodeContent();"string"==typeof t&&(this.codeJar.updateCode(t),this._updateLineNumbers())}}marshalFromView(){super.marshalFromView(),this.codeJar&&this.options.CodeDataAddress&&this.onCodeChange(this.codeJar.toString())}},e.exports.default_configuration=o,e.exports.createHighlighter=r;const a=t("./demos");e.exports.demos=a.demos,e.exports.registerWithDocuserve=a.registerWithDocuserve},{"./Pict-Code-Highlighter.js":10,"./Pict-Section-Code-DefaultConfiguration.js":11,"./demos":13,"pict-view":38}],13:[function(t,e,i){const n=t("../Pict-Section-Code.js");function r(t,e,i){let r="demo-code-"+(i.Hash||"unnamed")+"-"+Date.now();e.innerHTML='<div id="'+r+'"></div>';let o={ViewIdentifier:"Demo-Code-"+r,DefaultDestinationAddress:"#"+r,Templates:[{Hash:"CodeEditor-Container",Template:"\x3c!-- demo code editor renders here --\x3e"}],Renderables:[{RenderableHash:"CodeEditor-Wrap",TemplateHash:"CodeEditor-Container",DestinationAddress:"#"+r}],TargetElementAddress:"#"+r,Language:i.Language||"javascript",ReadOnly:!!i.ReadOnly,LineNumbers:!1!==i.LineNumbers,Tab:i.Tab||"\t",AddClosing:!1!==i.AddClosing,CatchTab:!1!==i.CatchTab,DefaultCode:i.Code||"// example code\n",AutoRender:!1,RenderOnLoad:!1},a=t.addView(o.ViewIdentifier,o,n);if(!a)return null;if("undefined"!=typeof window&&(window.CodeJarModules&&"function"==typeof window.CodeJarModules.CodeJar?a.connectCodeJarPrototype(window.CodeJarModules.CodeJar):"function"==typeof window.CodeJar&&a.connectCodeJarPrototype(window.CodeJar),window.CodeJarModules&&window.CodeJarModules.hljs)){let t=window.CodeJarModules.hljs,e=o.Language;a._highlightFunction=function(i){i.removeAttribute("data-highlighted"),delete i.dataset.highlighted,i.className=i.className.replace(/\bhljs\b/g,"").replace(/\blanguage-\S+/g,"").trim(),i.classList.add("language-"+e);try{t.highlightElement(i)}catch(t){}}}try{a.render()}catch(t){}return a}const o=[{DemoSchemaVersion:1,Hash:"javascript-editor",Group:"pict",Module:"pict-section-code",Name:"JavaScript editor",Description:"Default pict-section-code configuration — line numbers on, highlight.js for JavaScript, two-space tab.",Spec:{Hash:"javascript-editor",Language:"javascript",LineNumbers:!0,Tab:" ",Code:"// A small example — try editing me.\nfunction fibonacci(n) {\n if (n <= 1) return n;\n return fibonacci(n - 1) + fibonacci(n - 2);\n}\n\nfor (let i = 0; i < 10; i++) {\n console.log(`fib(${i}) =`, fibonacci(i));\n}\n"},Mount:r,Sources:[{Name:"spec.json",Language:"json",Content:'{\n "Language": "javascript",\n "LineNumbers": true,\n "Tab": " ",\n "Code": "function fibonacci(n) { … }"\n}'}]},{DemoSchemaVersion:1,Hash:"json-readonly",Group:"pict",Module:"pict-section-code",Name:"JSON viewer (read-only)",Description:'Read-only mode with line numbers off — useful for embedded "show me the payload" surfaces in dashboards.',Spec:{Hash:"json-readonly",Language:"json",ReadOnly:!0,LineNumbers:!1,Code:'{\n "version": "1.0.7",\n "syntax": {\n "keyword": "#A626A4",\n "string": "#50A14F",\n "number": "#986801",\n "function": "#4078F2"\n },\n "features": ["highlighting", "line-numbers", "readonly", "themed"]\n}\n'},Mount:r,Sources:[{Name:"spec.json",Language:"json",Content:'{\n "Language": "json",\n "ReadOnly": true,\n "LineNumbers": false\n}'}]},{DemoSchemaVersion:1,Hash:"css-editor",Group:"pict",Module:"pict-section-code",Name:"CSS editor (4-space tab)",Description:"CSS-flavoured highlighting with a 4-space tab and bracket auto-close turned off — leaner editing for stylesheet snippets.",Spec:{Hash:"css-editor",Language:"css",LineNumbers:!0,Tab:" ",AddClosing:!1,Code:"/* Theme-aware token usage */\n.docuserve-demo-title {\n color: var(--theme-color-text-primary, #3D3229);\n font-size: 1.5em;\n font-weight: 600;\n}\n\n.docuserve-demo-description {\n color: var(--theme-color-text-secondary, #5E5549);\n line-height: 1.55;\n}\n"},Mount:r,Sources:[{Name:"spec.json",Language:"json",Content:'{\n "Language": "css",\n "LineNumbers": true,\n "Tab": " ",\n "AddClosing": false\n}'}]}];e.exports=o,e.exports.demos=o,e.exports.registerWithDocuserve=function(t){return t&&t.providers&&t.providers["Docuserve-Demos"]?t.providers["Docuserve-Demos"].registerAll(o):0}},{"../Pict-Section-Code.js":12}],14:[function(t,e,i){e.exports=t("./views/Pict-View-Content.js"),e.exports.PictContentProvider=t("./providers/Pict-Provider-Content.js"),e.exports.PictContentDemoView=t("./views/PictView-Content-Demo.js")},{"./providers/Pict-Provider-Content.js":15,"./views/Pict-View-Content.js":16,"./views/PictView-Content-Demo.js":17}],15:[function(t,e,i){const n=t("pict-provider"),r=t("pict-section-code").createHighlighter;e.exports=class extends n{constructor(t,e,i){super(t,e,i)}highlightCode(t,e){if(!t)return"";let i={textContent:t,innerHTML:""};return r(e)(i),i.innerHTML}generateLineNumbers(t){if(!t)return"<span>1</span>";let e=t.split("\n").length,i="";for(let t=1;t<=e;t++)i+="<span>"+t+"</span>";return i}parseMarkdown(t,e,i,n){if(!t)return"";let r=t.split("\n"),o=[],a=!1,s=0,c="",l=[],p=!1,d="",u=!1,h=[],m=!1,g=[],f=[],D=()=>{f.length>0&&(o.push("<p>"+f.map(t=>this.parseInline(t,e,i,n)).join(" ")+"</p>"),f=[])};for(let t=0;t<r.length;t++){let y=r[t];if(!a&&y.trim().match(/^\$\$/)){m?(o.push('<div class="pict-content-katex-display">'+g.join("\n")+"</div>"),m=!1,g=[]):(D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),u&&(o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),u=!1,h=[]),m=!0);continue}if(m){g.push(y);continue}let v=y.match(/^(`{3,})/);if(v){let t=v[1].length;if(a){if(t>=s&&y.trim()===v[1]){if("mermaid"===c)o.push('<pre class="mermaid">'+l.join("\n")+"</pre>");else if("excalidraw"===c){let t,e=l.join("\n");try{t=encodeURIComponent(e)}catch(e){t=""}o.push('<div class="pict-excalidraw-fence" data-scene="'+t+'"><div class="pict-excalidraw-fence-loading">Rendering Excalidraw diagram…</div></div>')}else{let t=l.join("\n"),e=this.highlightCode(t,c),i=this.generateLineNumbers(t);o.push('<div class="pict-content-code-wrap"><div class="pict-content-code-line-numbers">'+i+'</div><pre><code class="language-'+this.escapeHTML(c)+'">'+e+"</code></pre></div>")}a=!1,s=0,c="",l=[];continue}l.push(y);continue}D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),u&&(o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),u=!1,h=[]),s=t,c=y.replace(/^`{3,}/,"").trim(),a=!0;continue}if(a){l.push(y);continue}if(y.match(/^>\s?/)){u||(D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),u=!0,h=[]),h.push(y.replace(/^>\s?/,""));continue}if(u&&(o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),u=!1,h=[]),y.match(/^(-{3,}|\*{3,}|_{3,})\s*$/)){D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),o.push("<hr>");continue}let b=y.match(/^(#{1,6})\s+(.+)/);if(b){D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1);let t=b[1].length,r=this.parseInline(b[2],e,i,n),a=b[2].toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-");o.push("<h"+t+' id="'+a+'">'+r+"</h"+t+">");continue}let T=y.match(/^(\s*)[-*+]\s+(.*)/);if(T){D(),p&&"ul"===d||(p&&o.push("ul"===d?"</ul>":"</ol>"),o.push("<ul>"),p=!0,d="ul"),o.push("<li>"+this.parseInline(T[2],e,i,n)+"</li>");continue}let w=y.match(/^(\s*)\d+\.\s+(.*)/);if(w)D(),p&&"ol"===d||(p&&o.push("ul"===d?"</ul>":"</ol>"),o.push("<ol>"),p=!0,d="ol"),o.push("<li>"+this.parseInline(w[2],e,i,n)+"</li>");else{if(p&&y.match(/^\s+\S/)&&o.length>0&&o[o.length-1].endsWith("</li>")){let t=o.length-1,r=o[t].slice(0,-5);o[t]=r+" "+this.parseInline(y.trim(),e,i,n)+"</li>";continue}if(p&&""!==y.trim()&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),""!==y.trim()){if(y.match(/^\|/)&&t+1<r.length&&r[t+1].match(/^\|[\s-:|]+\|/)){D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1);let a="<table>",s=y.split("|").filter(t=>""!==t.trim());a+="<thead><tr>";for(let t=0;t<s.length;t++)a+="<th>"+this.parseInline(s[t].trim(),e,i,n)+"</th>";for(a+="</tr></thead>",t++,a+="<tbody>";t+1<r.length&&r[t+1].match(/^\|/);){t++;let o=r[t].split("|").filter(t=>""!==t.trim());a+="<tr>";for(let t=0;t<o.length;t++)a+="<td>"+this.parseInline(o[t].trim(),e,i,n)+"</td>";a+="</tr>"}a+="</tbody></table>",o.push(a);continue}f.push(y)}else D()}}if(D(),p&&o.push("ul"===d?"</ul>":"</ol>"),u&&o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),a){let t=l.join("\n"),e=this.highlightCode(t,c),i=this.generateLineNumbers(t);o.push('<div class="pict-content-code-wrap"><div class="pict-content-code-line-numbers">'+i+"</div><pre><code>"+e+"</code></pre></div>")}return o.join("\n")}parseInline(t,e,i,n){if(!t)return"";let r=t,o=[];return r=r.replace(/`([^`]+)`/g,(t,e)=>{let i=o.length;return o.push("<code>"+e+"</code>"),"\0CODEINLINE"+i+"\0"}),r=r.replace(/\$([^\$\s][^\$]*?[^\$\s])\$/g,'<span class="pict-content-katex-inline">$1</span>'),r=r.replace(/\$([^\$\s])\$/g,'<span class="pict-content-katex-inline">$1</span>'),r=r.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(t,e,n)=>{let r=n;if("function"==typeof i){let t=i(n,e);t&&(r=t)}return'<img src="'+r+'" alt="'+e+'">'}),r=r.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(t,i,n)=>{if("function"==typeof e){let t=e(n,i);if(t){let e=t.target?' target="'+t.target+'"':"",n=t.rel?' rel="'+t.rel+'"':"";return'<a href="'+t.href+'"'+e+n+">"+i+"</a>"}}return n.match(/^https?:\/\//)?'<a href="'+n+'" target="_blank" rel="noopener">'+i+"</a>":'<a href="'+n+'">'+i+"</a>"}),r=r.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),r=r.replace(/(^|[^A-Za-z0-9_])__([^_]+?)__(?![A-Za-z0-9_])/g,"$1<strong>$2</strong>"),r=r.replace(/\*([^*]+)\*/g,"<em>$1</em>"),r=r.replace(/(^|[^A-Za-z0-9_])_([^_]+?)_(?![A-Za-z0-9_])/g,"$1<em>$2</em>"),r=r.replace(/\x00CODEINLINE(\d+)\x00/g,(t,e)=>o[parseInt(e)]),"function"==typeof n&&(r=this._applyVocabularyLinks(r,n)),r}_applyVocabularyLinks(t,e){if(!t||"function"!=typeof e)return t;let i={},n=t.split(/(<[^>]+>)/g),r=0,o=["code","a","pre","span"];for(let t=0;t<n.length;t++){let a=n[t];if("<"===a.charAt(0)){let t=a.match(/^<(\w+)/);t&&-1!==o.indexOf(t[1].toLowerCase())&&r++;let e=a.match(/^<\/(\w+)/);e&&-1!==o.indexOf(e[1].toLowerCase())&&(r=Math.max(0,r-1));continue}r>0||(n[t]=a.replace(/\b([A-Za-z][A-Za-z0-9_-]{1,30})\b/g,(t,n)=>{if(n.length<3)return t;let r=n.toLowerCase();if(i[r])return t;let o=e(r);if(!o)return t;i[r]=!0;let a=(o.short||"").replace(/"/g,"&quot;");return'<span class="pict-vocab-term" data-vocab-slug="'+o.slug+'" data-vocab-title="'+(o.title||"").replace(/"/g,"&quot;")+'" data-vocab-short="'+a+'">'+t+"</span>"}))}return n.join("")}escapeHTML(t){return t?t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"):""}},e.exports.default_configuration={ProviderIdentifier:"Pict-Content",AutoInitialize:!0,AutoInitializeOrdinal:0}},{"pict-provider":9,"pict-section-code":12}],16:[function(t,e,i){const n=t("pict-view");class r extends n{constructor(t,e,i){super(t,e,i)}displayContent(t,e){let i=e||"Pict-Content-Body";this.pict.ContentAssignment.assignContent("#"+i,t);let n=document.getElementById(i);n&&n.parentElement&&(n.parentElement.scrollTop=0),n&&!n.classList.contains("pict-content")&&n.classList.add("pict-content"),this.enableFullscreenViewers(i,{skipMermaid:!0}),this.renderMermaidDiagrams(i),this.renderExcalidrawDiagrams(i),this.renderKaTeXEquations(i)}renderExcalidrawDiagrams(t){if("undefined"==typeof document)return;let e=t||"Pict-Content-Body",i=document.getElementById(e);if(!i)return;let n=i.querySelectorAll(".pict-excalidraw-fence:not([data-rendered])");if(n.length<1)return;let r="undefined"!=typeof window?window.PictSectionExcalidrawVendor:null;if(r&&"function"==typeof r.exportToSvg)for(let t=0;t<n.length;t++){let e,i=n[t],o=i.getAttribute("data-scene")||"",a="";try{a=decodeURIComponent(o)}catch(t){a=""}try{e=JSON.parse(a)}catch(t){this._renderExcalidrawFenceError(i,"Invalid scene JSON: "+t.message);continue}let s={elements:e.elements||[],appState:Object.assign({exportEmbedScene:!0},e.appState||{}),files:e.files||{}};r.exportToSvg(s).then(t=>{t&&(t.removeAttribute("width"),t.removeAttribute("height"),t.setAttribute("style","max-width: 100%; height: auto;"),i.innerHTML="",i.appendChild(t),i.setAttribute("data-rendered","true"))}).catch(t=>{this._renderExcalidrawFenceError(i,"Excalidraw render failed: "+(t&&t.message?t.message:t))})}else this.log&&this.log.warn&&!this._excalidrawBundleWarnLogged&&(this.log.warn("pict-excalidraw fence(s) found but pict-section-excalidraw wrapper bundle is not loaded — leaving as placeholders."),this._excalidrawBundleWarnLogged=!0)}_renderExcalidrawFenceError(t,e){t.setAttribute("data-rendered","true"),t.classList.add("pict-excalidraw-fence-error"),t.innerHTML='<div class="pict-excalidraw-fence-error-message"></div>';let i=t.querySelector(".pict-excalidraw-fence-error-message");i&&(i.textContent=e),this.log&&this.log.warn&&this.log.warn("pict-excalidraw fence: "+e)}_ensureMermaidAdapter(){if(this._mermaidAdapter)return this._mermaidAdapter;if("undefined"==typeof mermaid||"undefined"==typeof window)return null;let e=this.pict&&this.pict.providers&&this.pict.providers.Theme;try{if(e&&e.diagram&&"function"==typeof e.diagram.adaptMermaid)this._mermaidAdapter=e.diagram.adaptMermaid(mermaid,{});else{let e=t("pict-provider-theme/source/Theme-Diagram-Adapter.js");e.initializeMermaid(mermaid),this._mermaidAdapter={refresh:function(){return e.refreshMermaidDiagrams()},reinitialize:function(){e.initializeMermaid(mermaid)},dispose:function(){},subscribed:!1}}}catch(t){this.log&&this.log.warn&&this.log.warn("Mermaid theme adapter init failed: "+t.message),this._mermaidAdapter=null}return this._mermaidAdapter}renderMermaidDiagrams(t){if("undefined"==typeof mermaid)return;let e=t||"Pict-Content-Body",i=document.getElementById(e);if(!i)return;let n=i.querySelectorAll("pre.mermaid");if(n.length<1)return;this._ensureMermaidAdapter();let r=this.pict&&this.pict.providers&&this.pict.providers.Theme;if(r&&r.diagram&&"function"==typeof r.diagram.stashMermaidSource)r.diagram.stashMermaidSource(n);else for(let t=0;t<n.length;t++){let e=n[t];e.hasAttribute("data-mermaid-source")||e.setAttribute("data-mermaid-source",e.textContent)}try{let t=mermaid.run({nodes:n});if(t&&"function"==typeof t.then)t.then(()=>{let t=this.pict&&this.pict.providers&&this.pict.providers.Theme;t&&t.diagram&&"function"==typeof t.diagram.stripMermaidStyleImportance&&t.diagram.stripMermaidStyleImportance(n),this.enableFullscreenViewers(e,{onlyMermaid:!0})}).catch(t=>{this.log.error("Mermaid rendering error: "+(t&&t.message?t.message:t))});else{let t=this.pict&&this.pict.providers&&this.pict.providers.Theme;t&&t.diagram&&"function"==typeof t.diagram.stripMermaidStyleImportance&&t.diagram.stripMermaidStyleImportance(n),this.enableFullscreenViewers(e,{onlyMermaid:!0})}}catch(t){this.log.error("Mermaid rendering error: "+t.message)}}renderKaTeXEquations(t){if("undefined"==typeof katex)return;let e=t||"Pict-Content-Body",i=document.getElementById(e);if(!i)return;let n=i.querySelectorAll(".pict-content-katex-inline");for(let t=0;t<n.length;t++)try{katex.render(n[t].textContent,n[t],{throwOnError:!1,displayMode:!1})}catch(t){this.log.warn("KaTeX inline error: "+t.message)}let r=i.querySelectorAll(".pict-content-katex-display");for(let t=0;t<r.length;t++)try{katex.render(r[t].textContent,r[t],{throwOnError:!1,displayMode:!0})}catch(t){this.log.warn("KaTeX display error: "+t.message)}}enableFullscreenViewers(t,e){let i=t||"Pict-Content-Body",n=document.getElementById(i);if(!n)return;let r=e||{};if(!r.onlyMermaid){let t=n.querySelectorAll("img:not([data-fullscreen-source])");for(let e=0;e<t.length;e++){let i=t[e];i.setAttribute("data-fullscreen-source","image");let n=i.getAttribute("alt");if(!n){n=(i.getAttribute("src")||"").split("/").pop().split("?")[0]||"Image"}i.setAttribute("data-fullscreen-title",n)}let e=n.querySelectorAll(".pict-content-code-wrap:not([data-code-actions-wired])");for(let t=0;t<e.length;t++)this._wireCodeActions(e[t])}if(!r.skipMermaid){let t=n.querySelectorAll("pre.mermaid:not([data-fullscreen-source])");for(let e=0;e<t.length;e++){let i=t[e];i.querySelector("svg")&&(i.setAttribute("data-fullscreen-source","mermaid"),i.setAttribute("data-fullscreen-title","Mermaid Diagram"))}}n.__pictFullscreenWired||(n.__pictFullscreenWired=!0,n.addEventListener("click",t=>{let e=t.target;for(;e&&e!==n&&!e.hasAttribute("data-fullscreen-source");)e=e.parentElement;e&&e!==n&&e.hasAttribute("data-fullscreen-source")&&(t.preventDefault(),this._openFullscreen(e))}))}_wireCodeActions(t){if(!t||t.hasAttribute("data-code-actions-wired"))return;t.setAttribute("data-code-actions-wired","true");let e=t.querySelector('code[class*="language-"]'),i="Code";if(e){let t=(e.getAttribute("class")||"").match(/language-(\S+)/);t&&(i=t[1]+" code")}t.setAttribute("data-code-language",i);let n=document.createElement("div");n.className="pict-content-code-container";let r=document.createElement("div");r.className="pict-content-code-actions",r.setAttribute("aria-hidden","false");let o=document.createElement("button");o.type="button",o.className="pict-content-code-action-btn",o.setAttribute("aria-label","Open code in fullscreen"),o.setAttribute("title","Open in fullscreen"),o.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true"><polyline points="3 6 3 3 6 3"></polyline><polyline points="13 6 13 3 10 3"></polyline><polyline points="3 10 3 13 6 13"></polyline><polyline points="13 10 13 13 10 13"></polyline></svg>';let a=document.createElement("button");a.type="button",a.className="pict-content-code-action-btn",a.setAttribute("aria-label","Copy code to clipboard"),a.setAttribute("title","Copy code"),a.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true"><rect x="5" y="5" width="9" height="9" rx="1.25"></rect><path d="M11 5V3.25A1.25 1.25 0 0 0 9.75 2H3.25A1.25 1.25 0 0 0 2 3.25v6.5A1.25 1.25 0 0 0 3.25 11H5"></path></svg>',r.appendChild(o),r.appendChild(a),t.parentNode.insertBefore(n,t),n.appendChild(t),n.appendChild(r),o.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this._openCodeFullscreen(t)}),a.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this._copyCodeToClipboard(t,a)})}_openCodeFullscreen(t){let e=this._buildFullscreenOverlay();t.setAttribute("data-fullscreen-source","code"),t.setAttribute("data-fullscreen-title",t.getAttribute("data-code-language")||"Code"),e.open(t)}_copyCodeToClipboard(t,e){let i=t.querySelector("code"),n=i?i.textContent:t.textContent,r=()=>{e.classList.add("is-copied"),e.setAttribute("title","Copied!"),setTimeout(()=>{e.classList.remove("is-copied"),e.setAttribute("title","Copy code")},1400)},o=()=>{e.classList.add("is-copy-failed"),e.setAttribute("title","Copy failed"),setTimeout(()=>{e.classList.remove("is-copy-failed"),e.setAttribute("title","Copy code")},1400)};try{if(navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText)return void navigator.clipboard.writeText(n).then(r).catch(o)}catch(t){}try{let t=document.createElement("textarea");t.value=n,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let e=document.execCommand("copy");document.body.removeChild(t),e?r():o()}catch(t){o()}}_buildFullscreenOverlay(){if(r._FullscreenOverlay)return r._FullscreenOverlay;let t=document.createElement("div");t.className="pict-fullscreen-overlay",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-labelledby","pict-fullscreen-title"),t.setAttribute("hidden",""),t.innerHTML='<div class="pict-fullscreen-titlebar"><span class="pict-fullscreen-title" id="pict-fullscreen-title"></span><div class="pict-fullscreen-controls"><button type="button" class="pict-fullscreen-btn" data-action="zoom-out" aria-label="Zoom out" title="Zoom out"><svg viewBox="0 0 16 16" aria-hidden="true"><line x1="3" y1="8" x2="13" y2="8"></line></svg></button><button type="button" class="pict-fullscreen-btn" data-action="zoom-reset" aria-label="Reset zoom" title="Reset zoom"><svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="5"></circle><line x1="8" y1="5" x2="8" y2="11"></line><line x1="5" y1="8" x2="11" y2="8"></line></svg></button><button type="button" class="pict-fullscreen-btn" data-action="zoom-in" aria-label="Zoom in" title="Zoom in"><svg viewBox="0 0 16 16" aria-hidden="true"><line x1="3" y1="8" x2="13" y2="8"></line><line x1="8" y1="3" x2="8" y2="13"></line></svg></button><button type="button" class="pict-fullscreen-btn pict-fullscreen-close" data-action="close" aria-label="Close" title="Close (Esc)"><svg viewBox="0 0 16 16" aria-hidden="true"><line x1="4" y1="4" x2="12" y2="12"></line><line x1="12" y1="4" x2="4" y2="12"></line></svg></button></div></div><div class="pict-fullscreen-stage"><div class="pict-fullscreen-content"></div></div>',document.body.appendChild(t);let e={scale:1,translateX:0,translateY:0,isPanning:!1,didPan:!1,currentKind:"",panStartX:0,panStartY:0,panOrigX:0,panOrigY:0,pinchInitialDistance:0,pinchInitialScale:1},i=t.querySelector(".pict-fullscreen-stage"),n=t.querySelector(".pict-fullscreen-content"),o=t.querySelector(".pict-fullscreen-title"),a=()=>{n.style.transform="translate("+e.translateX+"px, "+e.translateY+"px) scale("+e.scale+")",i.classList.toggle("is-zoomed",e.scale>1.001)},s=(t,n,r)=>{let o=(s=t)<.5?.5:s>8?8:s;var s;let c=i.getBoundingClientRect(),l=void 0!==n?n:c.left+c.width/2,p=void 0!==r?r:c.top+c.height/2,d=l-(c.left+c.width/2),u=p-(c.top+c.height/2),h=o/e.scale;e.translateX=d-h*(d-e.translateX),e.translateY=u-h*(u-e.translateY),e.scale=o,a()},c=()=>{e.scale=1,e.translateX=0,e.translateY=0,a()},l=()=>{t.setAttribute("hidden",""),n.innerHTML="",c(),document.documentElement.style.removeProperty("overflow"),document.removeEventListener("keydown",p)},p=t=>{"Escape"===t.key?(t.preventDefault(),l()):"+"===t.key||"="===t.key?(t.preventDefault(),s(e.scale+.25)):"-"===t.key||"_"===t.key?(t.preventDefault(),s(e.scale-.25)):"0"===t.key&&(t.preventDefault(),c())};t.addEventListener("click",n=>{e.didPan?e.didPan=!1:n.target!==t&&n.target!==i||l()}),t.querySelectorAll("[data-action]").forEach(t=>{t.addEventListener("click",i=>{i.stopPropagation();let n=t.getAttribute("data-action");"close"===n?l():"zoom-in"===n?s(e.scale+.25):"zoom-out"===n?s(e.scale-.25):"zoom-reset"===n&&c()})}),i.addEventListener("wheel",t=>{if("code"===e.currentKind)return;t.preventDefault();let i=.15*(-t.deltaY>0?1:-1);s(e.scale+i,t.clientX,t.clientY)},{passive:!1}),i.addEventListener("pointerdown",t=>{"code"!==e.currentKind&&(e.scale<=1.001||t.target.closest(".pict-fullscreen-controls")||(e.isPanning=!0,e.panStartX=t.clientX,e.panStartY=t.clientY,e.panOrigX=e.translateX,e.panOrigY=e.translateY,i.setPointerCapture(t.pointerId),i.classList.add("is-panning")))}),i.addEventListener("pointermove",t=>{e.isPanning&&(e.translateX=e.panOrigX+(t.clientX-e.panStartX),e.translateY=e.panOrigY+(t.clientY-e.panStartY),a())});let d=t=>{if(e.isPanning){e.isPanning=!1,e.didPan=!0,i.classList.remove("is-panning");try{i.releasePointerCapture(t.pointerId)}catch(t){}}};i.addEventListener("pointerup",d),i.addEventListener("pointercancel",d);let u={};return i.addEventListener("touchstart",t=>{for(let e=0;e<t.touches.length;e++){let i=t.touches[e];u[i.identifier]={x:i.clientX,y:i.clientY}}if(2===t.touches.length){let i=t.touches[0],n=t.touches[1],r=n.clientX-i.clientX,o=n.clientY-i.clientY;e.pinchInitialDistance=Math.sqrt(r*r+o*o),e.pinchInitialScale=e.scale}},{passive:!0}),i.addEventListener("touchmove",t=>{if(2===t.touches.length&&e.pinchInitialDistance>0){t.preventDefault();let i=t.touches[0],n=t.touches[1],r=n.clientX-i.clientX,o=n.clientY-i.clientY,a=Math.sqrt(r*r+o*o)/e.pinchInitialDistance,c=(i.clientX+n.clientX)/2,l=(i.clientY+n.clientY)/2;s(e.pinchInitialScale*a,c,l)}},{passive:!1}),i.addEventListener("touchend",()=>{u={},e.pinchInitialDistance=0}),r._FullscreenOverlay={element:t,content:n,titleEl:o,state:e,open:i=>{let r=i.getAttribute("data-fullscreen-title")||"";o.textContent=r,n.innerHTML="";let a,s=i.getAttribute("data-fullscreen-source");if(e.currentKind=s||"","mermaid"===s){let t=i.querySelector("svg");t?(a=t.cloneNode(!0),a.classList.add("pict-fullscreen-mermaid-svg"),a.removeAttribute("style"),a.removeAttribute("width"),a.removeAttribute("height")):a=i.cloneNode(!0)}else if("diagram"===s){let t="svg"===String(i.tagName).toLowerCase()?i:i.querySelector("svg");t?(a=t.cloneNode(!0),a.classList.add("pict-fullscreen-diagram-svg"),a.removeAttribute("style"),a.removeAttribute("width"),a.removeAttribute("height")):a=i.cloneNode(!0)}else"image"===s?(a=i.cloneNode(!0),a.classList.add("pict-fullscreen-img")):(a=i.cloneNode(!0),a.classList.add("pict-fullscreen-codewrap"));n.appendChild(a);let l=t.querySelectorAll('[data-action="zoom-in"], [data-action="zoom-out"], [data-action="zoom-reset"]');for(let t=0;t<l.length;t++)l[t].style.display="code"===s?"none":"";c(),t.removeAttribute("hidden"),document.documentElement.style.overflow="hidden",document.addEventListener("keydown",p)},close:l},r._FullscreenOverlay}_openFullscreen(t){this._buildFullscreenOverlay().open(t)}showLoading(t,e){let i=e||"Pict-Content-Body",n=t||"Loading content...";this.pict.ContentAssignment.assignContent("#"+i,'<div class="pict-content-loading">'+n+"</div>")}}e.exports=r,e.exports.default_configuration={ViewIdentifier:"Pict-Content",DefaultRenderable:"Pict-Content-Display",DefaultDestinationAddress:"#Pict-Content-Container",AutoRender:!1,CSS:"\n\t\t.pict-content {\n\t\t\tpadding: 2em 3em;\n\t\t\tmax-width: 900px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\t.pict-content-loading {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tmin-height: 200px;\n\t\t\tcolor: var(--theme-color-text-muted, #8A7F72);\n\t\t\tfont-size: 1em;\n\t\t}\n\t\t.pict-content h1 {\n\t\t\tfont-size: 2em;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding-bottom: 0.3em;\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t.pict-content h2 {\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-light, #EAE3D8);\n\t\t\tpadding-bottom: 0.25em;\n\t\t\tmargin-top: 1.5em;\n\t\t}\n\t\t.pict-content h3 {\n\t\t\tfont-size: 1.25em;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tmargin-top: 1.25em;\n\t\t}\n\t\t.pict-content h4, .pict-content h5, .pict-content h6 {\n\t\t\tcolor: var(--theme-color-text-secondary, #5E5549);\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\t.pict-content p {\n\t\t\tline-height: 1.7;\n\t\t\tcolor: var(--theme-color-text-primary, #423D37);\n\t\t\tmargin: 0.75em 0;\n\t\t}\n\t\t.pict-content a {\n\t\t\tcolor: var(--theme-color-brand-primary, #2E7D74);\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.pict-content a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t/* ─── Code blocks ─────────────────────────────────────\n\t\t Background, text color, line-number gutter, and every\n\t\t syntax token route through pict-provider-theme tokens —\n\t\t the same set pict-section-code (the live editor) uses.\n\t\t This way the rendered-preview code blocks look identical\n\t\t to the live editor and re-skin together when the theme\n\t\t switches. Previous version used the text-primary token\n\t\t as the code background (a TEXT token used as BACKGROUND),\n\t\t which broke in dark mode and any palette where text and\n\t\t background-tertiary diverge.\n\t\t*/\n\t\t.pict-content pre {\n\t\t\tbackground: var(--theme-color-background-tertiary, #F0ECE4);\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding: 1.25em;\n\t\t\tborder-radius: 6px;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: 0.9em;\n\t\t\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\t\t}\n\t\t/* Inline code (single backtick) — slightly differentiated\n\t\t from block code so it doesn't disappear into prose. */\n\t\t.pict-content code {\n\t\t\tbackground: var(--theme-color-background-secondary, #FAF8F4);\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n\t\t}\n\t\t.pict-content-code-wrap {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1.5;\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tborder-radius: 6px;\n\t\t\toverflow: hidden;\n\t\t\tmargin: 1em 0;\n\t\t\tbackground: var(--theme-color-background-tertiary, #F0ECE4);\n\t\t}\n\t\t.pict-content-code-wrap .pict-content-code-line-numbers {\n\t\t\twidth: 40px;\n\t\t\tmin-width: 40px;\n\t\t\tpadding: 1.25em 0;\n\t\t\ttext-align: right;\n\t\t\tbackground: var(--theme-color-background-secondary, #FAF8F4);\n\t\t\tborder-right: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tcolor: var(--theme-color-text-muted, #8A7F72);\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tline-height: inherit;\n\t\t\tuser-select: none;\n\t\t\tpointer-events: none;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-content-code-wrap .pict-content-code-line-numbers span {\n\t\t\tdisplay: block;\n\t\t\tpadding: 0 8px 0 0;\n\t\t}\n\t\t.pict-content-code-wrap pre {\n\t\t\tmargin: 0;\n\t\t\tbackground: var(--theme-color-background-tertiary, #F0ECE4);\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder: none;\n\t\t\tpadding: 1.25em 1.25em 1.25em 8px;\n\t\t\tborder-radius: 0 6px 6px 0;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: inherit;\n\t\t\tflex: 1;\n\t\t\tmin-width: 0;\n\t\t}\n\t\t.pict-content-code-wrap pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-family: inherit;\n\t\t}\n\t\t/* Syntax token colors — every class binds to a --theme-color-syntax-*\n\t\t variable, the same tokens pict-section-code (the live editor) uses.\n\t\t Each var() carries an Atom One Light hex as fallback for hosts\n\t\t without a theme provider; themes that DO ship syntax tokens\n\t\t (pict-default, retold-content-system, etc.) drive everything\n\t\t coherently. */\n\t\t.pict-content-code-wrap .keyword { color: var(--theme-color-syntax-keyword, #A626A4); }\n\t\t.pict-content-code-wrap .string { color: var(--theme-color-syntax-string, #50A14F); }\n\t\t.pict-content-code-wrap .number { color: var(--theme-color-syntax-number, #986801); }\n\t\t.pict-content-code-wrap .comment { color: var(--theme-color-syntax-comment, #A0A1A7); font-style: italic; }\n\t\t.pict-content-code-wrap .operator { color: var(--theme-color-syntax-operator, #0184BC); }\n\t\t.pict-content-code-wrap .punctuation { color: var(--theme-color-syntax-punctuation, #383A42); }\n\t\t.pict-content-code-wrap .function-name { color: var(--theme-color-syntax-function, #4078F2); }\n\t\t.pict-content-code-wrap .property { color: var(--theme-color-syntax-property, #E45649); }\n\t\t.pict-content-code-wrap .tag { color: var(--theme-color-syntax-tag, #E45649); }\n\t\t.pict-content-code-wrap .attr-name { color: var(--theme-color-syntax-attrname, #986801); }\n\t\t.pict-content-code-wrap .attr-value { color: var(--theme-color-syntax-attrvalue, #50A14F); }\n\t\t.pict-content-code-wrap .builtin { color: var(--theme-color-syntax-builtin, #986801); }\n\t\t.pict-content-code-wrap .type { color: var(--theme-color-syntax-type, #C18401); }\n\t\t.pict-content-code-wrap .variable { color: var(--theme-color-syntax-variable, #383A42); }\n\t\t.pict-content pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t}\n\t\t.pict-content blockquote {\n\t\t\tborder-left: 4px solid var(--theme-color-brand-primary, #2E7D74);\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em 1em;\n\t\t\tbackground: var(--theme-color-background-secondary, #F7F5F0);\n\t\t\tcolor: var(--theme-color-text-secondary, #5E5549);\n\t\t}\n\t\t.pict-content blockquote p {\n\t\t\tmargin: 0.25em 0;\n\t\t}\n\t\t.pict-content ul, .pict-content ol {\n\t\t\tpadding-left: 2em;\n\t\t\tline-height: 1.8;\n\t\t}\n\t\t.pict-content li {\n\t\t\tmargin: 0.25em 0;\n\t\t\tcolor: var(--theme-color-text-primary, #423D37);\n\t\t}\n\t\t.pict-content hr {\n\t\t\tborder: none;\n\t\t\tborder-top: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tmargin: 2em 0;\n\t\t}\n\t\t.pict-content table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin: 1em 0;\n\t\t}\n\t\t.pict-content table th {\n\t\t\tbackground: var(--theme-color-background-secondary, #F5F0E8);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding: 0.6em 0.8em;\n\t\t\ttext-align: left;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t}\n\t\t.pict-content table td {\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding: 0.5em 0.8em;\n\t\t\tcolor: var(--theme-color-text-primary, #423D37);\n\t\t}\n\t\t.pict-content table tr:nth-child(even) {\n\t\t\tbackground: var(--theme-color-background-secondary, #F7F5F0);\n\t\t}\n\t\t.pict-content img {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t\t.pict-content pre.mermaid {\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tcolor: var(--theme-color-text-primary, #2A241E);\n\t\t\ttext-align: center;\n\t\t\tpadding: 1em;\n\t\t}\n\t\t.pict-content pre.mermaid text,\n\t\t.pict-content pre.mermaid .nodeLabel,\n\t\t.pict-content pre.mermaid .edgeLabel,\n\t\t.pict-content pre.mermaid .label,\n\t\t.pict-content pre.mermaid .cluster-label,\n\t\t.pict-content pre.mermaid span,\n\t\t.pict-content pre.mermaid foreignObject p,\n\t\t.pict-content pre.mermaid foreignObject div,\n\t\t.pict-content pre.mermaid foreignObject span {\n\t\t\tcolor: var(--theme-color-text-primary, #2A241E) !important;\n\t\t\tfill: var(--theme-color-text-primary, #2A241E) !important;\n\t\t}\n\t\t.pict-content pre.mermaid .edgePath .path {\n\t\t\tstroke: var(--theme-color-text-secondary, #5E5549) !important;\n\t\t}\n\t\t.pict-content pre.mermaid .arrowheadPath {\n\t\t\tfill: var(--theme-color-text-secondary, #5E5549) !important;\n\t\t}\n\t\t/* Dark-mode override for handcrafted mermaid diagrams that bake\n\t\t per-node inline fill colors via 'style X fill:#...' directives\n\t\t (common in architecture / module docs, where pastel layer\n\t\t colors mark visual hierarchy). Mermaid renders those as inline\n\t\t style=\"fill:#...\" SVG attributes — highest specificity, so\n\t\t neither themeVariables nor unflagged CSS can reach them.\n\t\t In light mode the Material pastels read fine; in dark mode the\n\t\t same light fills become a high-contrast island on the dark\n\t\t page with unreadable text. Force the fills back to a theme\n\t\t background so dark-mode reads; light mode is intentionally\n\t\t unmodified so the per-layer hierarchy is preserved there. */\n\t\t.theme-dark .pict-content pre.mermaid .node rect,\n\t\t.theme-dark .pict-content pre.mermaid .node polygon,\n\t\t.theme-dark .pict-content pre.mermaid .node circle,\n\t\t.theme-dark .pict-content pre.mermaid .node ellipse,\n\t\t.theme-dark .pict-content pre.mermaid .node path,\n\t\t.theme-dark .pict-content pre.mermaid .cluster rect {\n\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t}\n\t\t/* Mirror of the above for theme mode 'system' — when the user\n\t\t hasn't explicitly picked light or dark, the theme provider\n\t\t leaves <html> without .theme-light/.theme-dark and the CSS\n\t\t variables follow prefers-color-scheme. The .theme-dark-prefixed\n\t\t block above doesn't match in that case, so light pastels would\n\t\t win again on dark OSes. Mirror the rule under the media query,\n\t\t gated by :not(.theme-light) so an explicit light override on a\n\t\t dark OS still wins. */\n\t\t@media (prefers-color-scheme: dark) {\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node rect,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node polygon,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node circle,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node ellipse,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node path,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .cluster rect {\n\t\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t\t}\n\t\t}\n\t\t/* Excalidraw fence placeholders + rendered SVGs */\n\t\t.pict-content .pict-excalidraw-fence {\n\t\t\tdisplay: block;\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tborder-radius: 4px;\n\t\t\tpadding: 1em;\n\t\t\tmargin: 1em 0;\n\t\t\ttext-align: center;\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence svg {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence-loading {\n\t\t\tcolor: var(--theme-color-text-secondary, #5E5549);\n\t\t\tfont-style: italic;\n\t\t\tfont-size: 0.9em;\n\t\t\tpadding: 1em;\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence-error {\n\t\t\tborder-color: var(--theme-color-status-error, #D9534F);\n\t\t\tbackground: var(--theme-color-background-secondary, #FFF5F5);\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence-error-message {\n\t\t\tcolor: var(--theme-color-status-error, #D9534F);\n\t\t\tfont-family: var(--theme-typography-family-mono, monospace);\n\t\t\tfont-size: 0.85em;\n\t\t\ttext-align: left;\n\t\t}\n\t\t.pict-content .pict-content-katex-display {\n\t\t\ttext-align: center;\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em;\n\t\t\toverflow-x: auto;\n\t\t}\n\t\t.pict-content .pict-content-katex-inline {\n\t\t\tdisplay: inline;\n\t\t}\n\n\t\t/* Fullscreen viewer for images and mermaid diagrams (click-to-zoom) */\n\t\t.pict-content [data-fullscreen-source] {\n\t\t\tcursor: zoom-in;\n\t\t\toutline: 1px solid transparent;\n\t\t\toutline-offset: 3px;\n\t\t\tborder-radius: 4px;\n\t\t\ttransition: outline-color 0.15s ease;\n\t\t}\n\t\t.pict-content [data-fullscreen-source]:hover {\n\t\t\toutline-color: var(--theme-color-brand-primary, #2E7D74);\n\t\t}\n\t\t/* Code block container with hover-revealed action buttons */\n\t\t.pict-content-code-container {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: flex-start;\n\t\t\tgap: 8px;\n\t\t\tmargin: 1em 0;\n\t\t}\n\t\t.pict-content-code-container > .pict-content-code-wrap {\n\t\t\tmargin: 0;\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t}\n\t\t.pict-content-code-actions {\n\t\t\tposition: sticky;\n\t\t\ttop: 64px;\n\t\t\talign-self: flex-start;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 6px;\n\t\t\tflex: 0 0 auto;\n\t\t\tpadding-top: 6px;\n\t\t\topacity: 0;\n\t\t\ttransform: translateX(-4px);\n\t\t\ttransition: opacity 0.15s ease, transform 0.15s ease;\n\t\t\tpointer-events: none;\n\t\t}\n\t\t.pict-content-code-container:hover .pict-content-code-actions,\n\t\t.pict-content-code-container:focus-within .pict-content-code-actions {\n\t\t\topacity: 1;\n\t\t\ttransform: translateX(0);\n\t\t\tpointer-events: auto;\n\t\t}\n\t\t.pict-content-code-action-btn {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: 28px;\n\t\t\theight: 28px;\n\t\t\tpadding: 0;\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tcolor: var(--theme-color-text-muted, #5E5549);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tborder-radius: 6px;\n\t\t\tcursor: pointer;\n\t\t\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n\t\t\ttransition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;\n\t\t}\n\t\t.pict-content-code-action-btn svg {\n\t\t\tdisplay: block;\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t\tstroke: currentColor;\n\t\t\tfill: none;\n\t\t\tstroke-width: 1.6;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t}\n\t\t.pict-content-code-action-btn:hover {\n\t\t\tbackground: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t\tborder-color: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);\n\t\t}\n\t\t.pict-content-code-action-btn:focus-visible {\n\t\t\toutline: 2px solid var(--theme-color-brand-primary, #2E7D74);\n\t\t\toutline-offset: 2px;\n\t\t}\n\t\t.pict-content-code-action-btn.is-copied {\n\t\t\tbackground: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t\tborder-color: var(--theme-color-brand-primary, #2E7D74);\n\t\t}\n\t\t.pict-content-code-action-btn.is-copy-failed {\n\t\t\tbackground: var(--theme-color-status-error, #B23A3A);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t\tborder-color: var(--theme-color-status-error, #B23A3A);\n\t\t}\n\t\t.pict-fullscreen-overlay {\n\t\t\tposition: fixed;\n\t\t\tinset: 0;\n\t\t\tz-index: 9999;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tbackground: rgba(0, 0, 0, 0.62);\n\t\t\tbackdrop-filter: blur(6px);\n\t\t\t-webkit-backdrop-filter: blur(6px);\n\t\t\tcolor: var(--theme-color-text-primary, #2A241E);\n\t\t}\n\t\t.pict-fullscreen-overlay[hidden] {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.pict-fullscreen-titlebar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\tgap: 1em;\n\t\t\theight: 48px;\n\t\t\tpadding: 0 1em;\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tcolor: var(--theme-color-text-primary, #1A1612);\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);\n\t\t\tflex: 0 0 auto;\n\t\t}\n\t\t.pict-fullscreen-title {\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n\t\t\tfont-size: 0.95em;\n\t\t\tfont-weight: 600;\n\t\t\tletter-spacing: 0.01em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcolor: var(--theme-color-text-primary, #1A1612);\n\t\t}\n\t\t.pict-fullscreen-controls {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tgap: 4px;\n\t\t}\n\t\t.pict-fullscreen-btn {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: 32px;\n\t\t\theight: 32px;\n\t\t\tpadding: 0;\n\t\t\tbackground: transparent;\n\t\t\tborder: 1px solid transparent;\n\t\t\tborder-radius: 6px;\n\t\t\tcolor: var(--theme-color-text-muted, #5E5549);\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;\n\t\t}\n\t\t.pict-fullscreen-btn svg {\n\t\t\tdisplay: block;\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tstroke: currentColor;\n\t\t\tfill: none;\n\t\t\tstroke-width: 1.75;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t}\n\t\t.pict-fullscreen-btn:hover {\n\t\t\tbackground: var(--theme-color-border-light, #EAE3D8);\n\t\t\tcolor: var(--theme-color-text-primary, #1A1612);\n\t\t}\n\t\t.pict-fullscreen-btn:focus-visible {\n\t\t\toutline: 2px solid var(--theme-color-brand-primary, #2E7D74);\n\t\t\toutline-offset: 2px;\n\t\t}\n\t\t.pict-fullscreen-close:hover {\n\t\t\tbackground: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t}\n\t\t.pict-fullscreen-stage {\n\t\t\tflex: 1 1 auto;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\toverflow: hidden;\n\t\t\tpadding: 1.5em;\n\t\t\tcursor: zoom-in;\n\t\t\ttouch-action: none;\n\t\t}\n\t\t.pict-fullscreen-stage.is-zoomed {\n\t\t\tcursor: grab;\n\t\t}\n\t\t.pict-fullscreen-stage.is-panning {\n\t\t\tcursor: grabbing;\n\t\t}\n\t\t.pict-fullscreen-content {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t\ttransform-origin: center center;\n\t\t\ttransition: transform 0.05s linear;\n\t\t\twill-change: transform;\n\t\t}\n\t\t.pict-fullscreen-content > * {\n\t\t\tbox-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);\n\t\t}\n\t\t.pict-fullscreen-content .pict-fullscreen-img {\n\t\t\tmax-width: 90vw;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\t\t\tobject-fit: contain;\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tpadding: 12px;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t.pict-fullscreen-content .pict-fullscreen-mermaid-svg {\n\t\t\twidth: min(90vw, 1400px);\n\t\t\theight: auto;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tpadding: 16px;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t/* Bespoke inline-SVG diagrams (pict-renderer-graph / excalidraw). Backdrop\n\t\t uses the diagram's own --diagram-paper so the zoomed copy keeps the same\n\t\t theme as the inline one (the host defines --diagram-* on the overlay). */\n\t\t.pict-fullscreen-content .pict-fullscreen-diagram-svg {\n\t\t\twidth: min(90vw, 1400px);\n\t\t\theight: auto;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\tbackground: var(--diagram-paper, var(--theme-color-background-panel, #FFFFFF));\n\t\t\tpadding: 16px;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t/* Same dark-mode fill/stroke override as for inline diagrams, but\n\t\t scoped to the fullscreen-overlay clone — which lives under\n\t\t <body>, NOT inside .pict-content, so the pre.mermaid-scoped\n\t\t rules above don't reach it. */\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node rect,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node polygon,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node circle,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node ellipse,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node path,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .cluster rect {\n\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t}\n\t\t@media (prefers-color-scheme: dark) {\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node rect,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node polygon,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node circle,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node ellipse,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node path,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .cluster rect {\n\t\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t\t}\n\t\t}\n\t\t.pict-fullscreen-content .pict-fullscreen-codewrap {\n\t\t\tmax-width: 90vw;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\tmargin: 0;\n\t\t\toverflow: auto;\n\t\t\tbox-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);\n\t\t}\n\t",Templates:[{Hash:"Pict-Content-Template",Template:'\n<div class="pict-content" id="Pict-Content-Body">\n\t<div class="pict-content-loading">Loading content...</div>\n</div>\n'}],Renderables:[{RenderableHash:"Pict-Content-Display",TemplateHash:"Pict-Content-Template",DestinationAddress:"#Pict-Content-Container",RenderMethod:"replace"}]}},{"pict-provider-theme/source/Theme-Diagram-Adapter.js":7,"pict-view":38}],17:[function(t,e,i){const n=t("./Pict-View-Content.js"),r=t("../providers/Pict-Provider-Content.js"),o={ViewIdentifier:"Pict-Content-Demo",DefaultRenderable:"Pict-Content-Display",DefaultDestinationAddress:"#Pict-Content-Container",MarkdownDataAddress:"AppData.ContentDemo.Markdown",AutoRender:!0,CSS:n.default_configuration.CSS,Templates:n.default_configuration.Templates,Renderables:n.default_configuration.Renderables};e.exports=class extends n{constructor(t,e,i){super(t,e,i);let n="Pict-Content";this.pict.providers[n]||this.pict.addProvider(n,r.default_configuration,r)}_readMarkdownFromAddress(){let t=this.options.MarkdownDataAddress;if(!t||"string"!=typeof t)return null;let e=t.split("."),i=this.pict;for(let t=0;t<e.length;t++){if(null==i)return null;i=i[e[t]]}return"string"==typeof i?i:null}onAfterRender(t,e,i,n){let r=this._readMarkdownFromAddress(),o=this.pict.providers["Pict-Content"];if(o&&"string"==typeof r){let t=o.parseMarkdown(r);this.displayContent(t)}return this.pict.CSSMap.injectCSS(),super.onAfterRender(t,e,i,n)}},e.exports.default_configuration=o},{"../providers/Pict-Provider-Content.js":15,"./Pict-View-Content.js":16}],18:[function(t,e,i){e.exports={RenderOnLoad:!0,DefaultRenderable:"Excalidraw-Wrap",DefaultDestinationAddress:"#Excalidraw-Container-Div",TargetElementAddress:"#Excalidraw-Container-Div",EmbedMode:"react",DrawingDataAddress:!1,Theme:"light",ViewModeEnabled:!1,ZenModeEnabled:!1,GridModeEnabled:!1,LangCode:"en",UIOptions:{},InitialData:{elements:[],appState:{},files:{}},AssetBaseURL:"./excalidraw-assets/",IframeHostURL:"./excalidraw-iframe-host.html",LazyLoadReactVendorURL:null,LazyLoadWrapperURL:null,OnLoad:null,OnSave:null,OnChange:null,OnChangeThrottleMs:250,Templates:[{Hash:"Excalidraw-Container",Template:"\x3c!-- Excalidraw-Container Rendering Soon --\x3e"}],Renderables:[{RenderableHash:"Excalidraw-Wrap",TemplateHash:"Excalidraw-Container",DestinationAddress:"#Excalidraw-Container-Div"}],CSS:".pict-excalidraw-wrap\n{\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 320px;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\tborder: 1px solid var(--theme-color-border-default, #D0D0D0);\n\tborder-radius: 4px;\n\toverflow: hidden;\n\tfont-family: var(--theme-typography-family-base, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n\tcolor: var(--theme-color-text-primary, #1A1A1A);\n}\n\n/* Theme bridge: forward pict tokens into the variables Excalidraw's own\n stylesheet reads. See vendor/excalidraw/packages/excalidraw/css/ for the\n token names. We default to the official light palette so Excalidraw renders\n correctly even before a pict theme overrides anything. */\n.pict-excalidraw-wrap\n{\n\t--default-bg-color: var(--theme-color-background-panel, #FFFFFF);\n\t--island-bg-color: var(--theme-color-background-secondary, #FFFFFF);\n\t--input-bg-color: var(--theme-color-background-primary, #FFFFFF);\n\t--input-border-color: var(--theme-color-border-default, #D0D0D0);\n\t--text-primary-color: var(--theme-color-text-primary, #1A1A1A);\n\t--color-primary: var(--theme-color-brand-primary, #6965DB);\n\t--color-primary-darker: var(--theme-color-brand-primary-hover, #5754C4);\n\t--color-primary-darkest: var(--theme-color-brand-primary-hover, #4642B7);\n\t--color-on-primary-container: var(--theme-color-background-panel, #FFFFFF);\n\t--button-hover-bg: var(--theme-color-background-hover, #F1F0FF);\n\t--button-active-bg: var(--theme-color-background-selected, #E3E2FE);\n\t--button-active-border: var(--theme-color-brand-primary, #6965DB);\n\t--popup-bg-color: var(--theme-color-background-panel, #FFFFFF);\n\t--popup-border-color: var(--theme-color-border-default, #D0D0D0);\n\t--icon-fill-color: var(--theme-color-text-primary, #1A1A1A);\n\t--shadow-island: 0 0 0 1px var(--theme-color-border-light, rgba(0,0,0,0.06)), 0 2px 6px 0 var(--theme-color-shadow-color, rgba(0,0,0,0.08));\n}\n\n/* iframe mode: the iframe element itself owns the entire wrap surface */\n.pict-excalidraw-iframe\n{\n\tflex: 1 1 auto;\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 320px;\n\tborder: 0;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n}\n\n/* react mode: a single inner div that Excalidraw mounts into via createRoot */\n.pict-excalidraw-mount\n{\n\tflex: 1 1 auto;\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 320px;\n\tposition: relative;\n}\n\n/* Status / error overlay used by both modes before the third-party lib is\n wired up, or when bundling failed. */\n.pict-excalidraw-status\n{\n\tposition: absolute;\n\tinset: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-direction: column;\n\tgap: 8px;\n\tpadding: 16px;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\tcolor: var(--theme-color-text-secondary, #4A4A4A);\n\ttext-align: center;\n\tfont-size: 14px;\n\tline-height: 1.4;\n\tz-index: 1;\n}\n.pict-excalidraw-status code\n{\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', monospace);\n\tfont-size: 12px;\n\tpadding: 2px 6px;\n\tbackground: var(--theme-color-background-secondary, #F4F4F4);\n\tborder: 1px solid var(--theme-color-border-light, rgba(0,0,0,0.06));\n\tborder-radius: 3px;\n}\n.pict-excalidraw-status.error\n{\n\tcolor: var(--theme-color-status-error, #B43B3B);\n}\n"}},{}],19:[function(t,e,i){const n=t("pict-view"),r=t("./views/PictView-Excalidraw-React.js"),o=t("./views/PictView-Excalidraw-Iframe.js"),a=t("./Pict-Section-Excalidraw-DefaultConfiguration.js");function s(t){return"iframe"===(t&&t.EmbedMode||a.EmbedMode||"react").toLowerCase()?o:r}e.exports=class extends n{constructor(t,e,i){var n;let r=Object.assign({},a,e);super(t,r,i),n=this,this._ImplementationClass=s(r);let o=Object.assign({},r);o.ViewIdentifier=(r.ViewIdentifier||"PictSectionExcalidraw")+"-Impl",this._Implementation=new this._ImplementationClass(t,o,i);let c=["getScene","setScene","exportSvg","exportBlob","serialize","setTheme","setReadOnly","load","save","destroy","getApi","connectExcalidrawGlobal","isDestroyed","convertMermaidToExcalidraw"];for(let t=0;t<c.length;t++){let e=c[t];this[e]=function(){if("function"==typeof n._Implementation[e]){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return n._Implementation[e].apply(n._Implementation,i)}}}}onAfterRender(t,e,i,n){return this.pict.CSSMap.injectCSS(),this._Implementation&&"function"==typeof this._Implementation.render&&(this._dispatchedRender||(this._dispatchedRender=!0,this._Implementation.render())),super.onAfterRender(t,e,i,n)}},e.exports.default_configuration=a,e.exports.ReactView=r,e.exports.IframeView=o,e.exports.selectImplementation=s},{"./Pict-Section-Excalidraw-DefaultConfiguration.js":18,"./views/PictView-Excalidraw-Iframe.js":20,"./views/PictView-Excalidraw-React.js":21,"pict-view":38}],20:[function(t,e,i){const n=t("pict-view"),r=t("../Pict-Section-Excalidraw-DefaultConfiguration.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},r,e),i),this.initialRenderComplete=!1,this.targetElement=!1,this._iframeElement=null,this._wrapElement=null,this._statusElement=null,this._iframeReady=!1,this._pendingRequests=Object.create(null),this._nextRequestId=1,this._lastSceneSnapshot=null,this._messageListener=null,this._onChangeThrottleHandle=null,this._lastSeenChangeSnapshot=null,this._currentTheme=this.options.Theme||"light",this._destroyed=!1}onAfterRender(t,e,i,n){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t,e,i,n)}onAfterInitialRender(){let t=this.pict.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-Excalidraw (iframe) could not find target [".concat(this.options.TargetElementAddress,"].")),!1;this.targetElement=t[0],this._buildContainerDOM(),this._wireMessageListener(),this._mountIframe()}_buildContainerDOM(){this.targetElement.innerHTML="";let t=document.createElement("div");t.className="pict-excalidraw-wrap pict-excalidraw-wrap-iframe";let e=document.createElement("div");e.className="pict-excalidraw-status",e.innerHTML="Loading Excalidraw…",t.appendChild(e);let i=document.createElement("iframe");i.className="pict-excalidraw-iframe",i.setAttribute("title","Excalidraw drawing"),i.setAttribute("allow","clipboard-read; clipboard-write"),t.appendChild(i),this.targetElement.appendChild(t),this._wrapElement=t,this._iframeElement=i,this._statusElement=e}_wireMessageListener(){this._messageListener=t=>{t&&t.data&&"object"==typeof t.data&&t.source===(this._iframeElement&&this._iframeElement.contentWindow)&&this._handleIframeMessage(t.data)},window.addEventListener("message",this._messageListener)}_mountIframe(){let t=this.options.IframeHostURL||"./excalidraw-iframe-host.html";this._iframeElement.src=t}_postToIframe(t){return!(!this._iframeElement||!this._iframeElement.contentWindow)&&(this._iframeElement.contentWindow.postMessage(t,"*"),!0)}_handleIframeMessage(t){switch(t.type){case"pict-excalidraw:ready":return this._iframeReady=!0,this._statusElement&&(this._statusElement.style.display="none"),void this._sendInitMessage();case"pict-excalidraw:change":return void this._handleChange(t.payload);case"pict-excalidraw:sceneReply":case"pict-excalidraw:svgReply":case"pict-excalidraw:blobReply":{let e=this._pendingRequests[t.requestId];return void(e&&(clearTimeout(e.timeout),delete this._pendingRequests[t.requestId],e.resolve(t.payload)))}case"pict-excalidraw:error":{let e=t.requestId&&this._pendingRequests[t.requestId];return void(e?(clearTimeout(e.timeout),delete this._pendingRequests[t.requestId],e.reject(new Error(t.message||"iframe error"))):this.log.error("PICT-Excalidraw (iframe) error: ".concat(t.message)))}default:return}}_sendInitMessage(){let t=this._resolveInitialData();this._postToIframe({type:"pict-excalidraw:init",payload:{initialData:t,theme:this._resolveTheme(this._currentTheme),langCode:this.options.LangCode||"en",viewModeEnabled:!!this.options.ViewModeEnabled,zenModeEnabled:!!this.options.ZenModeEnabled,gridModeEnabled:!!this.options.GridModeEnabled,UIOptions:this.options.UIOptions||{},assetBaseURL:this.options.AssetBaseURL}}),this._pushThemeTokens(),"function"==typeof this.options.OnLoad&&this.load()}_pushThemeTokens(){if("undefined"==typeof document||!document.documentElement)return;let t=["--theme-color-background-panel","--theme-color-background-primary","--theme-color-background-secondary","--theme-color-background-hover","--theme-color-background-selected","--theme-color-border-default","--theme-color-border-light","--theme-color-text-primary","--theme-color-text-secondary","--theme-color-brand-primary","--theme-color-brand-primary-hover","--theme-color-status-error","--theme-color-shadow-color"],e=window.getComputedStyle(document.documentElement),i={};for(let n=0;n<t.length;n++){let r=e.getPropertyValue(t[n]).trim();r&&(i[t[n]]=r)}this._postToIframe({type:"pict-excalidraw:setThemeTokens",payload:i})}_resolveInitialData(){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);if(t&&t.elements)return t}return this.options.InitialData||{elements:[],appState:{},files:{}}}_resolveTheme(t){if("auto"===t){if("undefined"!=typeof document&&document.documentElement&&document.documentElement.classList&&document.documentElement.classList.contains("theme-mode-dark"))return"dark";let t=this.pict&&this.pict.providers&&this.pict.providers.ThemeSection;if(t&&t.getCurrentMode){let e=t.getCurrentMode();if("dark"===e)return"dark";if("light"===e)return"light"}return"light"}return"dark"===t?"dark":"light"}_handleChange(t){if(this._destroyed)return;if(this._lastSceneSnapshot=t,this._lastSeenChangeSnapshot=t,this._onChangeThrottleHandle)return;let e=this.options.OnChangeThrottleMs||250;this._onChangeThrottleHandle=setTimeout(()=>{if(this._onChangeThrottleHandle=null,this._destroyed)return;let t=this._lastSeenChangeSnapshot;if(t&&(this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,t),"function"==typeof this.options.OnChange))try{this.options.OnChange(this,t)}catch(t){this.log.error("PICT-Excalidraw OnChange threw: ".concat(t&&t.message))}},e)}_readAppData(t){if(!t)return null;try{let e=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.getValueByHash)return this.fable.manifest.getValueByHash(this.pict.AppData,e);let i=e.split("."),n=this.pict.AppData;for(let t=0;t<i.length;t++){if(null==n)return null;n=n[i[t]]}return n}catch(t){return this.log.error("PICT-Excalidraw read AppData failed: ".concat(t&&t.message)),null}}_writeAppData(t,e){if(!t)return!1;try{let i=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.setValueByHash)return this.fable.manifest.setValueByHash(this.pict.AppData,i,e),!0;let n=i.split("."),r=this.pict.AppData;for(let t=0;t<n.length-1;t++)null==r[n[t]]&&(r[n[t]]={}),r=r[n[t]];return r[n[n.length-1]]=e,!0}catch(t){return this.log.error("PICT-Excalidraw write AppData failed: ".concat(t&&t.message)),!1}}_request(t,e){let i=this._nextRequestId++;return new Promise((n,r)=>{this._pendingRequests[i]={resolve:n,reject:r},this._postToIframe(Object.assign({type:t,requestId:i},e||{})),this._pendingRequests[i].timeout=setTimeout(()=>{this._pendingRequests[i]&&(delete this._pendingRequests[i],r(new Error("iframe request timed out")))},3e4)})}getApi(){return null}getScene(){return this._lastSceneSnapshot}requestScene(){return this._request("pict-excalidraw:requestScene")}setScene(t){return!!t&&(this._postToIframe({type:"pict-excalidraw:setScene",payload:t}),!0)}exportSvg(t){return this._request("pict-excalidraw:requestSvg",{exportOptions:t||{}})}exportBlob(t){return this._request("pict-excalidraw:requestBlob",{exportOptions:t||{}})}serialize(){let t=this._lastSceneSnapshot;return t?JSON.stringify({type:"excalidraw",version:2,source:"pict-section-excalidraw",elements:t.elements||[],appState:t.appState||{},files:t.files||{}}):null}setTheme(t){this._currentTheme=t||"light";let e=this._resolveTheme(this._currentTheme);this._postToIframe({type:"pict-excalidraw:setTheme",payload:e}),this._pushThemeTokens()}setReadOnly(t){this.options.ViewModeEnabled=!!t,this._postToIframe({type:"pict-excalidraw:setReadOnly",payload:!!t})}load(){if("function"!=typeof this.options.OnLoad){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);t&&this.setScene(t)}}else this.options.OnLoad(this,(t,e)=>{t?this.log.error("PICT-Excalidraw OnLoad error: ".concat(t.message||t)):e&&this.setScene(e)})}save(){let t=t=>{t&&("function"!=typeof this.options.OnSave?this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,t):this.options.OnSave(this,t,t=>{t&&this.log.error("PICT-Excalidraw OnSave error: ".concat(t.message||t))}))};this._lastSceneSnapshot?t(this._lastSceneSnapshot):this.requestScene().then(t).catch(t=>{this.log.error("PICT-Excalidraw save scene fetch failed: ".concat(t.message||t))})}destroy(){if(this._destroyed)return;if(this._destroyed=!0,this._onChangeThrottleHandle&&(clearTimeout(this._onChangeThrottleHandle),this._onChangeThrottleHandle=null),this._lastSeenChangeSnapshot=null,this._messageListener){try{window.removeEventListener("message",this._messageListener)}catch(t){}this._messageListener=null}let t=Object.keys(this._pendingRequests);for(let e=0;e<t.length;e++){let i=this._pendingRequests[t[e]];if(i&&"function"==typeof i.reject){clearTimeout(i.timeout);try{i.reject(new Error("view destroyed"))}catch(t){}}}if(this._pendingRequests=Object.create(null),this._iframeElement)try{this._iframeElement.src="about:blank"}catch(t){}if(this.targetElement&&void 0!==this.targetElement.innerHTML)try{this.targetElement.innerHTML=""}catch(t){}this._iframeReady=!1,this._lastSceneSnapshot=null,this._iframeElement=null,this._statusElement=null,this._wrapElement=null,this.targetElement=!1,this.initialRenderComplete=!1}isDestroyed(){return!!this._destroyed}},e.exports.default_configuration=r},{"../Pict-Section-Excalidraw-DefaultConfiguration.js":18,"pict-view":38}],21:[function(t,e,i){const n=t("pict-view"),r=t("../Pict-Section-Excalidraw-DefaultConfiguration.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},r,e),i),this.initialRenderComplete=!1,this._vendor=null,this._reactRoot=null,this._excalidrawAPI=null,this.targetElement=!1,this._wrapElement=null,this._mountElement=null,this._statusElement=null,this._onChangeThrottleHandle=null,this._lastSeenChangeSnapshot=null,this._pendingDeferredLoad=!1,this._destroyed=!1,this._currentTheme=this.options.Theme||"light"}onBeforeInitialize(){return super.onBeforeInitialize(),super.onBeforeInitialize()}connectExcalidrawGlobal(t){return!!(t&&t.Excalidraw&&t.React&&t.ReactDOM)&&(this._vendor=t,!0)}_resolveVendor(){if(this._vendor)return this._vendor;if("undefined"!=typeof window&&window.PictSectionExcalidrawVendor){let t=window.PictSectionExcalidrawVendor;if(t.Excalidraw&&t.React&&t.ReactDOM)return this._vendor=t,t}return null}onAfterRender(t,e,i,n){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t,e,i,n)}onAfterInitialRender(){let t=this.pict.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-Excalidraw could not find target element [".concat(this.options.TargetElementAddress,"].")),!1;this.targetElement=t[0],this._buildContainerDOM();let e=this._resolveVendor();if(!e)return this.options.LazyLoadWrapperURL?(this._renderStatus("Loading Excalidraw…",!1),void this._lazyLoadVendor().then(()=>{if(this._destroyed)return;let t=this._resolveVendor();t?this._mountReact(t):this._renderStatus("Excalidraw failed to lazy-load. Check the network tab for <code>excalidraw-wrapper.min.js</code>.",!0)}).catch(t=>{this.log.error("PICT-Excalidraw lazy-load failed: ".concat(t&&t.message)),this._renderStatus("Excalidraw lazy-load failed: <code>"+(t&&t.message||"unknown error")+"</code>",!0)})):(this._renderStatus("Excalidraw wrapper bundle not loaded. Include <code>excalidraw-wrapper.min.js</code> via a script tag, set <code>LazyLoadWrapperURL</code> in the view options, or call <code>connectExcalidrawGlobal({React, ReactDOM, Excalidraw})</code>.",!0),this.log.error("PICT-Excalidraw vendor bundle not found; cannot mount."),!1);this._mountReact(e)}_lazyLoadVendor(){if("undefined"==typeof window)return Promise.reject(new Error("no window"));if(window.PictSectionExcalidrawVendor)return Promise.resolve();if(window.__pictExcalidrawLazyLoadPromise)return window.__pictExcalidrawLazyLoadPromise;let t=this.options.LazyLoadReactVendorURL,e=this.options.LazyLoadWrapperURL,i=t=>new Promise((e,i)=>{let n=document.createElement("script");n.src=t,n.async=!1,n.onload=()=>e(),n.onerror=()=>i(new Error("failed to load "+t)),document.head.appendChild(n)}),n=Promise.resolve();return t&&!window.React&&(n=n.then(()=>i(t))),n=n.then(()=>i(e)),n=n.then(()=>{if(!window.PictSectionExcalidrawVendor)throw new Error("wrapper loaded but window.PictSectionExcalidrawVendor was not set")}).finally(()=>{window.__pictExcalidrawLazyLoadPromise=null}),window.__pictExcalidrawLazyLoadPromise=n,n}_buildContainerDOM(){this.targetElement.innerHTML="";let t=document.createElement("div");t.className="pict-excalidraw-wrap pict-excalidraw-wrap-react";let e=document.createElement("div");e.className="pict-excalidraw-mount",t.appendChild(e);let i=document.createElement("div");i.className="pict-excalidraw-status",i.style.display="none",t.appendChild(i),this.targetElement.appendChild(t),this._wrapElement=t,this._mountElement=e,this._statusElement=i}_renderStatus(t,e){this._statusElement&&(this._statusElement.style.display="flex",this._statusElement.classList.toggle("error",!!e),this._statusElement.innerHTML=t)}_hideStatus(){this._statusElement&&(this._statusElement.style.display="none")}_mountReact(t){let e=t.React,i=t.ReactDOM,n=t.Excalidraw,r={initialData:this._resolveInitialData(),theme:this._resolveTheme(this._currentTheme),langCode:this.options.LangCode||"en",viewModeEnabled:!!this.options.ViewModeEnabled,zenModeEnabled:!!this.options.ZenModeEnabled,gridModeEnabled:!!this.options.GridModeEnabled,UIOptions:this.options.UIOptions||{},onExcalidrawAPI:t=>{this._excalidrawAPI=t,this._pendingDeferredLoad&&(this._pendingDeferredLoad=!1,this.load())},onChange:(t,e,i)=>{this._handleChange(t,e,i)}};"undefined"!=typeof window&&this.options.AssetBaseURL&&!window.EXCALIDRAW_ASSET_PATH&&(window.EXCALIDRAW_ASSET_PATH=this.options.AssetBaseURL);try{this._reactRoot=i.createRoot(this._mountElement),this._reactRoot.render(e.createElement(n,r)),this._hideStatus()}catch(t){this.log.error("PICT-Excalidraw mount failed: ".concat(t&&t.message)),this._renderStatus("Excalidraw failed to mount: <code>"+(t&&t.message?t.message:"unknown error")+"</code>",!0)}}_resolveInitialData(){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);if(t&&t.elements)return t}return"function"==typeof this.options.OnLoad&&(this._pendingDeferredLoad=!0),this.options.InitialData||{elements:[],appState:{},files:{}}}_resolveTheme(t){if("auto"===t){if("undefined"!=typeof document&&document.documentElement){let t=document.documentElement;if(t.classList&&t.classList.contains("theme-mode-dark"))return"dark"}let t=this.pict&&this.pict.providers&&this.pict.providers.ThemeSection;if(t&&t.getCurrentMode){let e=t.getCurrentMode();if("dark"===e)return"dark";if("light"===e)return"light"}return"light"}return"dark"===t?"dark":"light"}_handleChange(t,e,i){if(this._destroyed)return;if(this._lastSeenChangeSnapshot={elements:t,appState:e,files:i},this._onChangeThrottleHandle)return;let n=this.options.OnChangeThrottleMs||250;this._onChangeThrottleHandle=setTimeout(()=>{if(this._onChangeThrottleHandle=null,this._destroyed)return;let t=this._lastSeenChangeSnapshot;if(t&&(this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,this._cloneScene(t)),"function"==typeof this.options.OnChange))try{this.options.OnChange(this,this._cloneScene(t))}catch(t){this.log.error("PICT-Excalidraw OnChange threw: ".concat(t&&t.message))}},n)}_cloneScene(t){return{elements:t.elements?t.elements.slice():[],appState:t.appState?Object.assign({},t.appState):{},files:t.files?Object.assign({},t.files):{}}}_readAppData(t){if(!t)return null;try{let e=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.getValueByHash)return this.fable.manifest.getValueByHash(this.pict.AppData,e);let i=e.split("."),n=this.pict.AppData;for(let t=0;t<i.length;t++){if(null==n)return null;n=n[i[t]]}return n}catch(t){return this.log.error("PICT-Excalidraw read AppData failed: ".concat(t&&t.message)),null}}_writeAppData(t,e){if(!t)return!1;try{let i=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.setValueByHash)return this.fable.manifest.setValueByHash(this.pict.AppData,i,e),!0;let n=i.split("."),r=this.pict.AppData;for(let t=0;t<n.length-1;t++)null==r[n[t]]&&(r[n[t]]={}),r=r[n[t]];return r[n[n.length-1]]=e,!0}catch(t){return this.log.error("PICT-Excalidraw write AppData failed: ".concat(t&&t.message)),!1}}getApi(){return this._excalidrawAPI}getScene(){return this._excalidrawAPI?{elements:this._excalidrawAPI.getSceneElements(),appState:this._excalidrawAPI.getAppState(),files:this._excalidrawAPI.getFiles?this._excalidrawAPI.getFiles():{}}:null}setScene(t){if(!this._excalidrawAPI)return!1;if(!t)return!1;let e=Array.isArray(t)?{elements:t,appState:{},files:{}}:t;if(this._excalidrawAPI.updateScene({elements:e.elements||[],appState:e.appState||{},collaborators:new Map}),e.files&&this._excalidrawAPI.addFiles){let t=[],i=Object.keys(e.files);for(let n=0;n<i.length;n++)t.push(e.files[i[n]]);t.length&&this._excalidrawAPI.addFiles(t)}return!0}exportSvg(t){let e=this._resolveVendor();if(!e||!e.exportToSvg)return Promise.reject(new Error("exportToSvg unavailable"));let i=this.getScene();if(!i)return Promise.reject(new Error("Excalidraw not mounted"));let n=t||{},r=this._promoteAppStateExportKeys(n);return e.exportToSvg(Object.assign({elements:i.elements,appState:Object.assign({},i.appState,r),files:i.files},n))}exportBlob(t){let e=this._resolveVendor();if(!e||!e.exportToBlob)return Promise.reject(new Error("exportToBlob unavailable"));let i=this.getScene();if(!i)return Promise.reject(new Error("Excalidraw not mounted"));let n=t||{},r=this._promoteAppStateExportKeys(n);return e.exportToBlob(Object.assign({elements:i.elements,appState:Object.assign({},i.appState,r),files:i.files,mimeType:"image/png"},n))}_promoteAppStateExportKeys(t){let e=["exportEmbedScene","exportBackground","exportPadding","exportScale","exportWithDarkMode"],i={};for(let n=0;n<e.length;n++)Object.prototype.hasOwnProperty.call(t,e[n])&&(i[e[n]]=t[e[n]],delete t[e[n]]);return i}convertMermaidToExcalidraw(t,e){let i=e||{},n=!1!==i.apply,r=this._resolveVendor();return r&&r.parseMermaidToExcalidraw&&r.convertToExcalidrawElements?r.parseMermaidToExcalidraw(t,i.mermaidOptions||{}).then(t=>{let e=t&&t.elements||[],i=t&&t.files||{},o=r.convertToExcalidrawElements(e);return n&&this.setScene({elements:o,appState:{},files:i}),{elements:o,files:i}}):Promise.reject(new Error("mermaid helpers not available — wrapper bundle out of date?"))}serialize(){let t=this._resolveVendor(),e=this.getScene();return e?t&&t.serializeAsJSON?t.serializeAsJSON(e.elements,e.appState,e.files,"local"):JSON.stringify({type:"excalidraw",version:2,source:"pict-section-excalidraw",elements:e.elements,appState:e.appState,files:e.files}):null}setTheme(t){if(this._currentTheme=t||"light",this._excalidrawAPI&&this._excalidrawAPI.updateScene){let t=this._resolveTheme(this._currentTheme);this._excalidrawAPI.updateScene({appState:{theme:t}})}}setReadOnly(t){this.options.ViewModeEnabled=!!t,this._excalidrawAPI&&this._excalidrawAPI.updateScene&&this._excalidrawAPI.updateScene({appState:{viewModeEnabled:!!t}})}load(){if("function"!=typeof this.options.OnLoad){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);t&&this.setScene(t)}}else this.options.OnLoad(this,(t,e)=>{t?this.log.error("PICT-Excalidraw OnLoad error: ".concat(t.message||t)):e&&this.setScene(e)})}save(){let t=this.getScene();t&&("function"!=typeof this.options.OnSave?this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,this._cloneScene(t)):this.options.OnSave(this,t,t=>{t&&this.log.error("PICT-Excalidraw OnSave error: ".concat(t.message||t))}))}destroy(){if(!this._destroyed){if(this._destroyed=!0,this._onChangeThrottleHandle&&(clearTimeout(this._onChangeThrottleHandle),this._onChangeThrottleHandle=null),this._lastSeenChangeSnapshot=null,this._pendingDeferredLoad=!1,this._reactRoot){try{this._reactRoot.unmount()}catch(t){this.log.error("PICT-Excalidraw unmount failed: ".concat(t&&t.message))}this._reactRoot=null}if(this.targetElement&&void 0!==this.targetElement.innerHTML)try{this.targetElement.innerHTML=""}catch(t){}this._excalidrawAPI=null,this._wrapElement=null,this._mountElement=null,this._statusElement=null,this.targetElement=!1,this._vendor=null,this.initialRenderComplete=!1}}isDestroyed(){return!!this._destroyed}},e.exports.default_configuration=r},{"../Pict-Section-Excalidraw-DefaultConfiguration.js":18,"pict-view":38}],22:[function(t,e,i){e.exports.attach=function(t){t._createEditorInContainer=function(e,i,n){let r=t._codeMirrorModules,o=[];o.push(r.EditorView.domEventHandlers({keydown:(e,n)=>(e.ctrlKey||e.metaKey)&&"b"===e.key?(e.preventDefault(),t.applyFormatting(i,"bold"),!0):(e.ctrlKey||e.metaKey)&&"i"===e.key?(e.preventDefault(),t.applyFormatting(i,"italic"),!0):(e.ctrlKey||e.metaKey)&&"e"===e.key?(e.preventDefault(),t.applyFormatting(i,"code"),!0):void 0,paste:(e,n)=>{let r=e.clipboardData&&e.clipboardData.items;if(!r)return!1;for(let n=0;n<r.length;n++)if(r[n].type.startsWith("image/")){e.preventDefault();let o=r[n].getAsFile();return o&&t._processImageFile(o,i),!0}return!1},drop:(e,n)=>{if(t._dragSourceIndex>=0)return!1;if(!e.dataTransfer||!e.dataTransfer.files||e.dataTransfer.files.length<1)return!1;let r=e.dataTransfer.files[0];if(r.type&&r.type.startsWith("image/")){e.preventDefault(),e.stopPropagation(),t._processImageFile(r,i);let o=n.dom.closest(".pict-mde-segment-editor");return o&&o.classList.remove("pict-mde-image-dragover"),!0}return!1}})),r.extensions&&Array.isArray(r.extensions)&&(o=o.concat(r.extensions)),o.push(r.EditorView.updateListener.of(e=>{e.docChanged&&t._onSegmentContentChange(i,e.state.doc.toString()),e.focusChanged&&(e.view.hasFocus?(t._setActiveSegment(i),t._updateSidebarPosition(i)):setTimeout(()=>{if(t._activeSegmentIndex===i){let e=document.getElementById("PictMDE-Segment-".concat(i));e&&!e.contains(document.activeElement)&&(t._clearActiveSegment(i),t._resetSidebarPosition(i))}},100)),e.selectionSet&&e.view.hasFocus&&t._updateSidebarPosition(i)}));let a=t._buildDataURICollapseExtension();a&&o.push(a),t.options.ReadOnly&&(o.push(r.EditorState.readOnly.of(!0)),o.push(r.EditorView.editable.of(!1))),o=t.customConfigureExtensions(o,i);let s=r.EditorState.create({doc:n||"",extensions:o}),c=new r.EditorView({state:s,parent:e});t._segmentEditors[i]=c,c.contentDOM.addEventListener("keydown",function(e){if("ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;if(e.shiftKey||e.ctrlKey||e.metaKey||e.altKey)return;let n=c.state,r=n.selection.main.head,o=n.doc.lineAt(r),a=r-o.from;if("ArrowDown"===e.key){if(o.to<n.doc.length)return;let r=t._getOrderedSegmentIndices(),s=t._getLogicalIndex(i);if(s<0||s>=r.length-1)return;let c=r[s+1],l=t._segmentEditors[c];if(!l)return;e.preventDefault(),e.stopPropagation();let p=l.state.doc.line(1),d=Math.min(a,p.to-p.from);l.focus(),l.dispatch({selection:{anchor:p.from+d}}),t._setActiveSegment(c)}else if("ArrowUp"===e.key){if(o.number>1)return;let n=t._getOrderedSegmentIndices(),r=t._getLogicalIndex(i);if(r<=0)return;let s=n[r-1],c=t._segmentEditors[s];if(!c)return;e.preventDefault(),e.stopPropagation();let l=c.state.doc.line(c.state.doc.lines),p=Math.min(a,l.to-l.from);c.focus(),c.dispatch({selection:{anchor:l.from+p}}),t._setActiveSegment(s)}},!0),c.contentDOM.addEventListener("drop",function(e){if(t._dragSourceIndex>=0)return;if(!e.dataTransfer||!e.dataTransfer.files||e.dataTransfer.files.length<1)return;let n=e.dataTransfer.files[0];if(n.type&&n.type.startsWith("image/")){e.preventDefault(),e.stopPropagation(),t._processImageFile(n,i);let r=document.getElementById("PictMDE-SegmentEditor-".concat(i));r&&r.classList.remove("pict-mde-image-dragover")}},!0)},t._buildDataURICollapseExtension=function(){let e=t._codeMirrorModules;if(!(e&&e.Decoration&&e.ViewPlugin&&e.WidgetType))return null;let i=e.Decoration,n=e.ViewPlugin,r=e.WidgetType;class o extends r{constructor(t){super(),this.label=t}toDOM(){let t=document.createElement("span");return t.className="pict-mde-data-uri-collapsed",t.textContent=this.label,t.title="Data URI (click to expand in image preview below)",t}eq(t){return this.label===t.label}}function a(t){let e=[],n=t.state.doc;for(let r of t.visibleRanges){let t,a=r.from,s=r.to,c=n.sliceString(a,s),l=/!\[[^\]]*\]\(data:([^;]+);base64,/g;for(;null!==(t=l.exec(c));){let r=a+t.index+t[0].length,s=-1,c=r,l=n.length,p=Math.min(l,c+5242880),d=4096;for(let t=c;t<p;t+=d){let e=Math.min(t+d,p),i=n.sliceString(t,e).indexOf(")");if(i>=0){s=t+i;break}}if(s<0)continue;let u=s-r;if(u<200)continue;let h,m=Math.round(.75*u);h=m>=1048576?(m/1048576).toFixed(1)+"MB":m>=1024?Math.round(m/1024)+"KB":m+"B";t[1];let g="…".concat(h,")"),f=i.replace({widget:new o(g)});e.push(f.range(r,s+1))}}return i.set(e,!0)}return n.fromClass(class{constructor(t){this.decorations=a(t)}update(t){(t.docChanged||t.viewportChanged)&&(this.decorations=a(t.view))}},{decorations:t=>t.decorations})}}},{}],23:[function(t,e,i){e.exports.attach=function(t){t._wireSegmentDragEvents=function(e,i){let n=e.querySelector(".pict-mde-drag-handle");n&&(n.addEventListener("dragstart",n=>{t._dragSourceIndex=i,n.dataTransfer.effectAllowed="move",n.dataTransfer.setData("text/plain",String(i));let r=t._getContainerElement();r&&r.classList.add("pict-mde-dragging"),setTimeout(()=>{e.style.opacity="0.4"},0)}),n.addEventListener("dragend",()=>{e.style.opacity="",t._dragSourceIndex=-1,t._clearAllDropIndicators();let i=t._getContainerElement();i&&i.classList.remove("pict-mde-dragging")}),e.addEventListener("dragover",i=>{i.preventDefault(),i.dataTransfer.dropEffect="move",t._clearAllDropIndicators();let n=e.getBoundingClientRect(),r=n.top+n.height/2;i.clientY<r?e.classList.add("pict-mde-drag-over-top"):e.classList.add("pict-mde-drag-over-bottom")}),e.addEventListener("dragleave",t=>{e.contains(t.relatedTarget)||(e.classList.remove("pict-mde-drag-over-top"),e.classList.remove("pict-mde-drag-over-bottom"))}),e.addEventListener("drop",n=>{n.preventDefault();let r=e.classList.contains("pict-mde-drag-over-bottom");t._clearAllDropIndicators();let o=t._dragSourceIndex;o<0||o===i||t._reorderSegment(o,i,r)}))},t._clearAllDropIndicators=function(){let e=t._getContainerElement();if(!e)return;let i=e.querySelectorAll(".pict-mde-segment");for(let t=0;t<i.length;t++)i[t].classList.remove("pict-mde-drag-over-top"),i[t].classList.remove("pict-mde-drag-over-bottom")},t._reorderSegment=function(e,i,n){let r=t._getLogicalIndex(e),o=t._getLogicalIndex(i);if(r<0||o<0)return void t.log.warn("PICT-MarkdownEditor _reorderSegment: could not resolve logical indices (from=".concat(r,", to=").concat(o,")."));if(r===o)return;t._marshalAllEditorsToData();let a=t._getSegmentsFromData();if(!a||a.length<2)return;let s=n?o+1:o;if(r<s&&s--,s===r)return;let c=a.splice(r,1)[0];a.splice(s,0,c),t._setSegmentsToData(a),t._reorderHiddenPreviewState(r,s),t._reorderSegmentTabStates(r,s),t._buildEditorUI()},t._reorderHiddenPreviewState=function(e,i){if(e===i)return;let n=Object.keys(t._hiddenPreviewSegments).map(t=>parseInt(t,10));if(0===n.length)return;let r=Math.max(...n,e,i),o=[];for(let e=0;e<=r;e++)o.push(!!t._hiddenPreviewSegments[e]);let a=o.splice(e,1)[0];o.splice(i,0,a),t._hiddenPreviewSegments={};for(let e=0;e<o.length;e++)o[e]&&(t._hiddenPreviewSegments[e]=!0)},t._swapHiddenPreviewState=function(e,i){let n=!!t._hiddenPreviewSegments[e];!!t._hiddenPreviewSegments[i]?t._hiddenPreviewSegments[e]=!0:delete t._hiddenPreviewSegments[e],n?t._hiddenPreviewSegments[i]=!0:delete t._hiddenPreviewSegments[i]},t._reorderSegmentTabStates=function(e,i){if(e===i)return;let n=Object.keys(t._segmentTabStates).map(t=>parseInt(t,10));if(0===n.length)return;let r=Math.max(...n,e,i),o=[];for(let e=0;e<=r;e++)o.push(t._segmentTabStates[e]||"editor");let a=o.splice(e,1)[0];o.splice(i,0,a),t._segmentTabStates={};for(let e=0;e<o.length;e++)"editor"!==o[e]&&(t._segmentTabStates[e]=o[e])},t._swapSegmentTabStates=function(e,i){let n=t._segmentTabStates[e]||"editor",r=t._segmentTabStates[i]||"editor";"editor"!==r?t._segmentTabStates[e]=r:delete t._segmentTabStates[e],"editor"!==n?t._segmentTabStates[i]=n:delete t._segmentTabStates[i]},t._setActiveSegment=function(e){if(t._activeSegmentIndex>=0&&t._activeSegmentIndex!==e){let e=document.getElementById("PictMDE-Segment-".concat(t._activeSegmentIndex));e&&e.classList.remove("pict-mde-active")}t._activeSegmentIndex=e;let i=document.getElementById("PictMDE-Segment-".concat(e));i&&i.classList.add("pict-mde-active")},t._clearActiveSegment=function(e){t._activeSegmentIndex===e&&(t._activeSegmentIndex=-1);let i=document.getElementById("PictMDE-Segment-".concat(e));i&&i.classList.remove("pict-mde-active"),t._resetSidebarPosition(e)},t._updateSidebarPosition=function(e){let i=document.getElementById("PictMDE-Segment-".concat(e));if(!i)return;let n=i.querySelector(".pict-mde-quadrant-tr");if(!n)return;let r=t._segmentEditors[e];if(!r)return;let o=r.state.selection.main.head,a=r.coordsAtPos(o);if(!a)return void t._resetSidebarPosition(e);let s=i.getBoundingClientRect(),c=a.top-s.top,l=n.offsetHeight||0,p=i.offsetHeight||0,d=Math.max(0,p-l);c=Math.max(0,Math.min(c,d)),n.classList.add("pict-mde-sidebar-at-cursor"),n.style.setProperty("--pict-mde-sidebar-top","".concat(c,"px"))},t._resetSidebarPosition=function(t){let e=document.getElementById("PictMDE-Segment-".concat(t));if(!e)return;let i=e.querySelector(".pict-mde-quadrant-tr");i&&(i.classList.remove("pict-mde-sidebar-at-cursor"),i.style.removeProperty("--pict-mde-sidebar-top"))}}},{}],24:[function(t,e,i){const n={bold:{wrap:"**"},italic:{wrap:"*"},code:{wrap:"`"},heading:{prefix:"# "},link:{before:"[",after:"](url)"}};e.exports.attach=function(t){t.applyFormatting=function(e,i){let r=t._segmentEditors[e];if(!r)return void t.log.warn("PICT-MarkdownEditor applyFormatting: no editor for segment ".concat(e,"."));let o=n[i];if(!o)return void t.log.warn('PICT-MarkdownEditor applyFormatting: unknown format type "'.concat(i,'".'));let a,s,c=r.state,l=c.selection.main,p=l.from,d=l.to,u=p!==d,h=u?c.sliceDoc(p,d):"";if(o.wrap){let t=o.wrap;if(u){let e=c.sliceDoc(Math.max(0,p-t.length),p),i=c.sliceDoc(d,Math.min(c.doc.length,d+t.length));if(e===t&&i===t)return a=[{from:p-t.length,to:p,insert:""},{from:d,to:d+t.length,insert:""}],s=p-t.length,void r.dispatch({changes:a,selection:{anchor:s,head:s+h.length}});a={from:p,to:d,insert:t+h+t},s=p+t.length,r.dispatch({changes:a,selection:{anchor:s,head:s+h.length}})}else{a={from:p,insert:t+t},s=p+t.length,r.dispatch({changes:a,selection:{anchor:s}})}}else if(o.prefix){let t=c.doc.lineAt(p);a=t.text.startsWith(o.prefix)?{from:t.from,to:t.from+o.prefix.length,insert:""}:{from:t.from,insert:o.prefix},r.dispatch({changes:a})}else if(o.before&&o.after)if(u){a={from:p,to:d,insert:o.before+h+o.after},s=p+o.before.length+h.length+2,r.dispatch({changes:a,selection:{anchor:s,head:s+3}})}else{a={from:p,insert:o.before+o.after},s=p+o.before.length,r.dispatch({changes:a,selection:{anchor:s}})}r.focus()}}},{}],25:[function(t,e,i){e.exports.attach=function(t){t.openImagePicker=function(e){let i=document.getElementById("PictMDE-ImageInput-".concat(e));i?(i.onchange=()=>{i.files&&i.files.length>0&&t._processImageFile(i.files[0],e),i.value=""},i.click()):t.log.warn("PICT-MarkdownEditor openImagePicker: file input not found for segment ".concat(e,"."))},t._processImageFile=function(e,i){if(!e||!e.type||!e.type.startsWith("image/"))return void t.log.warn("PICT-MarkdownEditor _processImageFile: not an image file (type: ".concat(e?e.type:"null",")."));let n=e.name?e.name.replace(/\.[^.]+$/,""):"image";if(t.onImageUpload(e,i,(e,r)=>{e?t.log.error("PICT-MarkdownEditor image upload error: ".concat(e)):r&&t._insertImageMarkdown(i,r,n)}))return;if("undefined"==typeof FileReader)return void t.log.error("PICT-MarkdownEditor _processImageFile: FileReader not available in this environment.");let r=new FileReader;r.onload=()=>{t._insertImageMarkdown(i,r.result,n)},r.onerror=()=>{t.log.error("PICT-MarkdownEditor _processImageFile: FileReader error.")},r.readAsDataURL(e)},t._insertImageMarkdown=function(e,i,n){let r=t._segmentEditors[e];if(!r)return void t.log.warn("PICT-MarkdownEditor _insertImageMarkdown: no editor for segment ".concat(e,"."));let o="![".concat(n||"image","](").concat(i,")"),a=r.state.selection.main.head;r.dispatch({changes:{from:a,insert:o},selection:{anchor:a+o.length}}),r.focus(),t._updateImagePreviews(e)},t._updateImagePreviews=function(e){let i=document.getElementById("PictMDE-ImagePreview-".concat(e));if(!i)return;let n=t._segmentEditors[e];if(!n)return i.innerHTML="",void i.classList.remove("pict-mde-has-images");let r,o=n.state.doc.toString(),a=/!\[([^\]]*)\]\(([^)]+)\)/g,s=[];for(;null!==(r=a.exec(o));)s.push({alt:r[1]||"image",url:r[2]});if(0===s.length)return i.innerHTML="",void i.classList.remove("pict-mde-has-images");let c="";for(let e=0;e<s.length;e++){let i=s[e].alt.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),n=t._resolveImageURL(s[e].url).replace(/&/g,"&amp;").replace(/"/g,"&quot;");c+='<div class="pict-mde-image-preview-item"><img src="'.concat(n,'" alt="').concat(i,'" /><span class="pict-mde-image-preview-label">').concat(i,"</span></div>")}i.innerHTML=c,i.classList.add("pict-mde-has-images")},t._wireImageDragEvents=function(e,i){e.addEventListener("dragover",i=>{t._dragSourceIndex>=0||!i.dataTransfer||!i.dataTransfer.types||i.dataTransfer.types.indexOf("Files")<0||(i.preventDefault(),i.dataTransfer.dropEffect="copy",e.classList.add("pict-mde-image-dragover"))}),e.addEventListener("dragleave",t=>{e.contains(t.relatedTarget)||e.classList.remove("pict-mde-image-dragover")}),e.addEventListener("drop",n=>{if(e.classList.remove("pict-mde-image-dragover"),t._dragSourceIndex>=0)return;if(!n.dataTransfer||!n.dataTransfer.files||n.dataTransfer.files.length<1)return;let r=n.dataTransfer.files[0];r.type&&r.type.startsWith("image/")&&(n.preventDefault(),n.stopPropagation(),t._processImageFile(r,i))})}}},{}],26:[function(t,e,i){const n=t("pict-section-content").PictContentProvider;e.exports.attach=function(e){e._getContentProvider=function(){return e._contentProvider||(e._contentProvider=new n(e.fable,{},"Pict-Content-Provider-MDE")),e._contentProvider},e._updateRichPreviews=function(t){if(!e.options.EnableRichPreview)return;let i=document.getElementById("PictMDE-RichPreview-".concat(t));if(!i)return;let n=e._segmentEditors[t];if(!n)return i.innerHTML="",void i.classList.remove("pict-mde-has-rich-preview");let r=n.state.doc.toString();if(!r||0===r.trim().length)return i.innerHTML="",void i.classList.remove("pict-mde-has-rich-preview");let o=e._getContentProvider(),a=null;e.pict&&e.pict.providers&&e.pict.providers.Vocabulary&&"function"==typeof e.pict.providers.Vocabulary.getResolver&&(a=e.pict.providers.Vocabulary.getResolver());let s=o.parseMarkdown(r,null,null,a);if(!s||0===s.trim().length)return i.innerHTML="",void i.classList.remove("pict-mde-has-rich-preview");let c="PictMDE-RichPreviewBody-".concat(t);if(i.innerHTML='<div class="pict-content" id="'.concat(c,'">').concat(s,"</div>"),i.classList.add("pict-mde-has-rich-preview"),e.pict&&e.pict.providers&&e.pict.providers.Vocabulary&&"function"==typeof e.pict.providers.Vocabulary.wirePopovers&&e.pict.providers.Vocabulary.wirePopovers("#"+c),e.options.ImageBaseURL){let t=i.querySelectorAll("img");for(let i=0;i<t.length;i++){let n=t[i].getAttribute("src");if(n){let r=e._resolveImageURL(n);r!==n&&t[i].setAttribute("src",r)}}}let l=(e._richPreviewGenerations[t]||0)+1;e._richPreviewGenerations[t]=l,e._postRenderMermaid(c,t,l),e._postRenderKaTeX(c)},e._ensureMermaidAdapter=function(){if(e._mermaidAdapter)return e._mermaidAdapter;if("undefined"==typeof mermaid||"undefined"==typeof window)return null;let i=e.pict&&e.pict.providers&&e.pict.providers.Theme;try{if(i&&i.diagram&&"function"==typeof i.diagram.adaptMermaid)e._mermaidAdapter=i.diagram.adaptMermaid(mermaid,{});else{let i=t("pict-provider-theme/source/Theme-Diagram-Adapter.js");i.initializeMermaid(mermaid),e._mermaidAdapter={refresh:function(){return i.refreshMermaidDiagrams()},reinitialize:function(){i.initializeMermaid(mermaid)},dispose:function(){},subscribed:!1}}}catch(t){e.log.warn("PICT-MarkdownEditor mermaid theme adapter init failed: ".concat(t.message||t)),e._mermaidAdapter=null}return e._mermaidAdapter},e._postRenderMermaid=function(t,i,n){if("undefined"==typeof mermaid)return;let r=document.getElementById(t);if(!r)return;let o=r.querySelectorAll("pre.mermaid");if(o.length<1)return;e._ensureMermaidAdapter();let a=e.pict&&e.pict.providers&&e.pict.providers.Theme;if(a&&a.diagram&&"function"==typeof a.diagram.stashMermaidSource)a.diagram.stashMermaidSource(o);else for(let t=0;t<o.length;t++){let e=o[t];e.hasAttribute("data-mermaid-source")||e.setAttribute("data-mermaid-source",e.textContent)}try{let t=mermaid.run({nodes:o});t&&"function"==typeof t.catch&&t.catch(t=>{(-1===i?e._renderedViewGeneration:e._richPreviewGenerations[i])===n&&e.log.warn("PICT-MarkdownEditor mermaid render error: ".concat(t.message||t))})}catch(t){e.log.warn("PICT-MarkdownEditor mermaid render error: ".concat(t.message||t))}},e._postRenderKaTeX=function(t){if("undefined"==typeof katex)return;let i=document.getElementById(t);if(!i)return;let n=i.querySelectorAll(".pict-content-katex-inline");for(let t=0;t<n.length;t++)try{katex.render(n[t].textContent,n[t],{throwOnError:!1,displayMode:!1})}catch(t){e.log.warn("PICT-MarkdownEditor KaTeX inline error: ".concat(t.message||t))}let r=i.querySelectorAll(".pict-content-katex-display");for(let t=0;t<r.length;t++)try{katex.render(r[t].textContent,r[t],{throwOnError:!1,displayMode:!0})}catch(t){e.log.warn("PICT-MarkdownEditor KaTeX display error: ".concat(t.message||t))}},e._escapeHTMLForPreview=function(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},e.toggleRenderedView=function(t){e._renderedViewActive="boolean"==typeof t?t:!e._renderedViewActive,e._renderedViewActive?e._renderRenderedView():e._restoreEditingView()},e._renderRenderedView=function(){let t=e._getContainerElement();if(!t)return;e._marshalAllEditorsToData();let i=e._getSegmentsFromData(),n="";if(i&&i.length>0){let t=[];for(let e=0;e<i.length;e++)t.push(i[e].Content||"");n=t.join("\n\n")}for(let t in e._segmentEditors)e._segmentEditors[t]&&e._segmentEditors[t].destroy();e._segmentEditors={};let r=e._getContentProvider().parseMarkdown(n),o="PictMDE-RenderedView";if(t.innerHTML='<div class="pict-mde-rendered-view" id="'.concat(o,'"><div class="pict-content">').concat(r||"","</div></div>"),t.classList.add("pict-mde-rendered-mode"),e.options.ImageBaseURL){let i=t.querySelectorAll(".pict-mde-rendered-view img");for(let t=0;t<i.length;t++){let n=i[t].getAttribute("src");if(n){let r=e._resolveImageURL(n);r!==n&&i[t].setAttribute("src",r)}}}e._renderedViewGeneration++;let a=e._renderedViewGeneration,s=t.querySelector("#".concat(o," .pict-content"));if(s){let t="PictMDE-RenderedViewContent";s.id=t,e._postRenderMermaid(t,-1,a),e._postRenderKaTeX(t)}},e._restoreEditingView=function(){let t=e._getContainerElement();t&&(t.classList.remove("pict-mde-rendered-mode"),e._buildEditorUI())}}},{"pict-provider-theme/source/Theme-Diagram-Adapter.js":7,"pict-section-content":14}],27:[function(t,e,i){e.exports={DefaultRenderable:"MarkdownEditor-Wrap",DefaultDestinationAddress:"#MarkdownEditor-Container-Div",Templates:[{Hash:"MarkdownEditor-Container",Template:'<div class="pict-mde" id="PictMDE-Container"></div>'},{Hash:"MarkdownEditor-Segment",Template:'<div class="pict-mde-segment" id="PictMDE-Segment-{~D:Record.SegmentIndex~}" data-segment-index="{~D:Record.SegmentIndex~}">\n\t<div class="pict-mde-left-controls">\n\t\t<div class="pict-mde-quadrant-tl"></div>\n\t\t<div class="pict-mde-quadrant-bl"></div>\n\t</div>\n\t<div class="pict-mde-drag-handle" draggable="true" title="Drag to reorder"></div>\n\t<div class="pict-mde-segment-body">\n\t\t<div class="pict-mde-tab-bar" id="PictMDE-TabBar-{~D:Record.SegmentIndex~}">\n\t\t\t<button type="button" class="pict-mde-tab pict-mde-tab-active" data-tab="editor" onclick="{~D:Record.ViewIdentifier~}.switchSegmentTab({~D:Record.SegmentIndex~}, \'editor\')">Edit</button>\n\t\t\t<button type="button" class="pict-mde-tab" data-tab="preview" onclick="{~D:Record.ViewIdentifier~}.switchSegmentTab({~D:Record.SegmentIndex~}, \'preview\')">Preview</button>\n\t\t</div>\n\t\t<div class="pict-mde-segment-editor" id="PictMDE-SegmentEditor-{~D:Record.SegmentIndex~}"></div>\n\t\t<div class="pict-mde-preview-pane" id="PictMDE-PreviewPane-{~D:Record.SegmentIndex~}">\n\t\t\t<div class="pict-mde-image-preview" id="PictMDE-ImagePreview-{~D:Record.SegmentIndex~}"></div>\n\t\t\t<div class="pict-mde-rich-preview" id="PictMDE-RichPreview-{~D:Record.SegmentIndex~}"></div>\n\t\t</div>\n\t</div>\n\t<div class="pict-mde-sidebar" id="PictMDE-Sidebar-{~D:Record.SegmentIndex~}">\n\t\t<div class="pict-mde-quadrant-tr"></div>\n\t\t<div class="pict-mde-quadrant-br"></div>\n\t\t<input type="file" accept="image/*" class="pict-mde-image-input" id="PictMDE-ImageInput-{~D:Record.SegmentIndex~}" style="display:none" />\n\t</div>\n</div>'},{Hash:"MarkdownEditor-AddSegment",Template:'<div class="pict-mde-add-segment">\n\t<button type="button" class="pict-mde-btn-add" onclick="{~D:Record.ViewIdentifier~}.addSegment()">+ Add Segment</button>\n</div>'}],Renderables:[{RenderableHash:"MarkdownEditor-Wrap",TemplateHash:"MarkdownEditor-Container",DestinationAddress:"#MarkdownEditor-Container-Div"}],TargetElementAddress:"#MarkdownEditor-Container-Div",ContentDataAddress:!1,ReadOnly:!1,EnableRichPreview:!0,DefaultPreviewMode:"off",ImageBaseURL:"",ButtonsTL:[{HTML:"{~I:Close~}",Action:"removeSegment",Class:"pict-mde-btn-remove",Title:"Remove Segment"}],ButtonsBL:[{HTML:"{~I:ArrowUp~}",Action:"moveSegmentUp",Class:"pict-mde-btn-move",Title:"Move Up"},{HTML:"{~I:ArrowDown~}",Action:"moveSegmentDown",Class:"pict-mde-btn-move",Title:"Move Down"},{HTML:"{~I:Settings~}",Action:"toggleControls",Class:"pict-mde-btn-linenums",Title:"Toggle Controls"},{HTML:"{~I:Eye~}",Action:"cyclePreviewMode",Class:"pict-mde-btn-preview",Title:"Cycle Preview Mode"}],ButtonsTR:[{HTML:"<b>B</b>",Action:"applyFormatting:bold",Class:"",Title:"Bold (Ctrl+B)"},{HTML:"<i>I</i>",Action:"applyFormatting:italic",Class:"",Title:"Italic (Ctrl+I)"},{HTML:"<code>&lt;&gt;</code>",Action:"applyFormatting:code",Class:"",Title:"Inline Code (Ctrl+E)"},{HTML:"#",Action:"applyFormatting:heading",Class:"",Title:"Heading"},{HTML:"[&thinsp;]",Action:"applyFormatting:link",Class:"",Title:"Link"},{HTML:"{~I:Image~}",Action:"openImagePicker",Class:"pict-mde-sidebar-btn-image",Title:"Insert Image"}],ButtonsBR:[],CSS:"\n/* ---- Container ---- */\n.pict-mde\n{\n\tfont-family: var(--theme-typography-family-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\n\tfont-size: 14px;\n}\n\n/* ---- Segment row: left-controls | drag-handle | editor body | sidebar ---- */\n.pict-mde-segment\n{\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: stretch;\n\tmargin-bottom: 6px;\n\tmin-height: 48px;\n\ttransition: background-color 0.15s ease;\n}\n\n/* ---- Left controls column ---- */\n.pict-mde-left-controls\n{\n\tflex: 0 0 22px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 2px 0;\n}\n\n/* ---- Left-side quadrants ---- */\n.pict-mde-quadrant-tl\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tposition: sticky;\n\ttop: 2px;\n\tz-index: 2;\n}\n.pict-mde-quadrant-bl\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 1px;\n\tposition: sticky;\n\tbottom: 2px;\n\tz-index: 2;\n}\n\n/* ---- Left-side buttons (shared base) ---- */\n.pict-mde-left-btn\n{\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-size: 12px;\n\tpadding: 0;\n\tcolor: var(--theme-color-text-muted, #888);\n\tline-height: 1;\n\tfont-family: inherit;\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n}\n.pict-mde-segment:hover .pict-mde-left-btn,\n.pict-mde-segment.pict-mde-active .pict-mde-left-btn\n{\n\topacity: 1;\n}\n.pict-mde-left-btn:hover\n{\n\tcolor: var(--theme-color-text-primary, #222);\n}\n.pict-mde-btn-remove:hover\n{\n\tcolor: var(--theme-color-status-error, #CC3333);\n}\n.pict-mde-btn-linenums\n{\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n}\n/* Highlight when controls are active */\n.pict-mde.pict-mde-controls-on .pict-mde-btn-linenums\n{\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n}\n.pict-mde-btn-preview\n{\n\tfont-size: 11px;\n}\n/* Preview button: highlight when any preview mode is active */\n.pict-mde.pict-mde-preview-bottom .pict-mde-btn-preview,\n.pict-mde.pict-mde-preview-side .pict-mde-btn-preview,\n.pict-mde.pict-mde-preview-tabbed .pict-mde-btn-preview\n{\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n}\n/* Dim preview button when mode is off */\n.pict-mde.pict-mde-preview-off .pict-mde-btn-preview\n{\n\tcolor: var(--theme-color-border-default, #CCC);\n}\n\n/* ---- Drag handle (simple grey bar) ---- */\n.pict-mde-drag-handle\n{\n\tflex: 0 0 8px;\n\tcursor: grab;\n\tbackground: var(--theme-color-background-tertiary, #EDEDED);\n\ttransition: background-color 0.15s ease;\n\tuser-select: none;\n}\n.pict-mde-drag-handle:active\n{\n\tcursor: grabbing;\n}\n.pict-mde-drag-handle:hover\n{\n\tbackground: var(--theme-color-border-default, #C8C8C8);\n}\n\n/* ---- Editor body (middle column) ---- */\n.pict-mde-segment-body\n{\n\tflex: 1 1 0%;\n\tmin-width: 0;\n\toverflow: hidden;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\ttransition: background-color 0.15s ease;\n}\n.pict-mde-segment-editor\n{\n\tmin-height: 48px;\n}\n\n/* ---- Image preview area below the editor ---- */\n.pict-mde-image-preview\n{\n\tdisplay: none;\n}\n.pict-mde-image-preview.pict-mde-has-images\n{\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tborder-top: 1px solid var(--theme-color-border-light, #EDEDED);\n}\n.pict-mde-image-preview img\n{\n\tmax-width: 200px;\n\tmax-height: 150px;\n\tborder-radius: 3px;\n\tborder: 1px solid var(--theme-color-border-default, #E0E0E0);\n\tobject-fit: contain;\n\tbackground: var(--theme-color-background-secondary, #F8F8F8);\n}\n.pict-mde-image-preview-item\n{\n\tposition: relative;\n\tdisplay: inline-block;\n}\n.pict-mde-image-preview-label\n{\n\tdisplay: block;\n\tfont-size: 10px;\n\tcolor: var(--theme-color-text-muted, #999);\n\tmargin-top: 2px;\n\tmax-width: 200px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n/* ---- Rich content preview area (rendered via pict-section-content) ---- */\n.pict-mde-rich-preview\n{\n\tdisplay: none;\n}\n.pict-mde-rich-preview.pict-mde-has-rich-preview\n{\n\tdisplay: block;\n\tborder-top: 1px solid var(--theme-color-border-light, #EDEDED);\n\tbackground: var(--theme-color-background-panel, #FCFCFC);\n\toverflow: hidden;\n}\n/* Constrain images in the rich preview even if pict-section-content CSS loads late */\n.pict-mde-rich-preview img\n{\n\tmax-width: 100%;\n\theight: auto;\n}\n/* ---- Preview layout modes ---- */\n\n/* Tab bar: hidden by default, shown only in tabbed mode */\n.pict-mde-tab-bar\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-preview-tabbed .pict-mde-tab-bar\n{\n\tdisplay: flex;\n\tgap: 0;\n\tborder-bottom: 1px solid var(--theme-color-border-light, #EDEDED);\n\tbackground: var(--theme-color-background-secondary, #F8F8F8);\n}\n.pict-mde-tab\n{\n\tpadding: 4px 12px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-size: 12px;\n\tcolor: var(--theme-color-text-muted, #888);\n\tborder-bottom: 2px solid transparent;\n\tfont-family: inherit;\n}\n.pict-mde-tab:hover\n{\n\tcolor: var(--theme-color-text-primary, #222);\n}\n.pict-mde-tab.pict-mde-tab-active\n{\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n\tborder-bottom-color: var(--theme-color-brand-primary, #4A90D9);\n}\n\n/* Off mode: hide all preview panes and tab bars */\n.pict-mde.pict-mde-preview-off .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-preview-off .pict-mde-tab-bar\n{\n\tdisplay: none;\n}\n/* Legacy class alias for backward compatibility */\n.pict-mde.pict-mde-previews-hidden .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n\n/* Bottom mode: vertical stacking (default flex-column behavior) */\n.pict-mde.pict-mde-preview-bottom .pict-mde-segment-body\n{\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n/* Side-by-side mode: editor and preview side by side */\n.pict-mde.pict-mde-preview-side .pict-mde-segment-body\n{\n\tdisplay: flex;\n\tflex-direction: row;\n}\n.pict-mde.pict-mde-preview-side .pict-mde-segment-editor\n{\n\tflex: 1 1 50%;\n\tmin-width: 0;\n\toverflow: hidden;\n}\n.pict-mde.pict-mde-preview-side .pict-mde-preview-pane\n{\n\tflex: 1 1 50%;\n\tmin-width: 0;\n\toverflow: auto;\n\tborder-left: 1px solid var(--theme-color-border-light, #EDEDED);\n}\n/* Side-by-side: remove top borders since preview is beside, not below */\n.pict-mde.pict-mde-preview-side .pict-mde-rich-preview.pict-mde-has-rich-preview\n{\n\tborder-top: none;\n}\n.pict-mde.pict-mde-preview-side .pict-mde-image-preview.pict-mde-has-images\n{\n\tborder-top: none;\n}\n\n/* Tabbed mode: default hides preview, shows editor */\n.pict-mde.pict-mde-preview-tabbed .pict-mde-segment-body\n{\n\tdisplay: flex;\n\tflex-direction: column;\n}\n.pict-mde.pict-mde-preview-tabbed .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n/* Tabbed mode: when showing preview, hide editor and show preview */\n.pict-mde.pict-mde-preview-tabbed .pict-mde-segment.pict-mde-tab-showing-preview .pict-mde-segment-editor\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-preview-tabbed .pict-mde-segment.pict-mde-tab-showing-preview .pict-mde-preview-pane\n{\n\tdisplay: block;\n}\n\n/* Per-segment preview hide: only applies in bottom and side modes */\n.pict-mde.pict-mde-preview-bottom .pict-mde-segment.pict-mde-preview-hidden .pict-mde-preview-pane,\n.pict-mde.pict-mde-preview-side .pict-mde-segment.pict-mde-preview-hidden .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n/* Constrain the pict-content inside the preview to fit the segment */\n.pict-mde-rich-preview .pict-content\n{\n\tpadding: 12px;\n\tmax-width: none;\n\tmargin: 0;\n\tfont-size: 13px;\n}\n/* Reduce heading sizes in the preview to be proportional */\n.pict-mde-rich-preview .pict-content h1\n{\n\tfont-size: 1.4em;\n\tmargin-top: 0;\n}\n.pict-mde-rich-preview .pict-content h2\n{\n\tfont-size: 1.2em;\n\tmargin-top: 0.75em;\n}\n.pict-mde-rich-preview .pict-content h3\n{\n\tfont-size: 1.1em;\n\tmargin-top: 0.6em;\n}\n\n/* ---- Rendered view (full document preview mode) ---- */\n.pict-mde-rendered-view\n{\n\tpadding: 16px 20px;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\tmin-height: 120px;\n}\n.pict-mde-rendered-view .pict-content\n{\n\tmax-width: none;\n\tmargin: 0;\n}\n/* Hide the add-segment button in rendered mode */\n.pict-mde.pict-mde-rendered-mode .pict-mde-add-segment\n{\n\tdisplay: none;\n}\n\n/* Focused / active editor gets subtle warm background */\n.pict-mde-segment.pict-mde-active .pict-mde-segment-body\n{\n\tbackground: var(--theme-color-background-secondary, #FAFAF5);\n}\n.pict-mde-segment.pict-mde-active .pict-mde-drag-handle\n{\n\tbackground: var(--theme-color-border-strong, #9CB4C8);\n}\n\n/* ---- Right sidebar column ---- */\n.pict-mde-sidebar\n{\n\tflex: 0 0 30px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n\tjustify-content: space-between;\n\tposition: relative;\n}\n\n/* ---- Right-side quadrants ---- */\n.pict-mde-quadrant-tr\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 1px;\n\tpadding: 4px 0;\n\twidth: 100%;\n\topacity: 0;\n\ttransition: opacity 0.15s ease, top 0.1s ease;\n\tposition: sticky;\n\ttop: 0;\n}\n.pict-mde-quadrant-br\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 1px;\n\tpadding: 4px 0;\n\twidth: 100%;\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n\tposition: sticky;\n\tbottom: 0;\n}\n\n/* Active segment always shows its right-side quadrants */\n.pict-mde-segment.pict-mde-active .pict-mde-quadrant-tr,\n.pict-mde-segment.pict-mde-active .pict-mde-quadrant-br\n{\n\topacity: 1;\n}\n/* When no segment is active, hovering shows both left + right controls */\n.pict-mde:not(:has(.pict-mde-active)) .pict-mde-segment:hover .pict-mde-quadrant-tr,\n.pict-mde:not(:has(.pict-mde-active)) .pict-mde-segment:hover .pict-mde-quadrant-br\n{\n\topacity: 1;\n}\n\n/* ---- Controls-hidden mode: right quadrants show faintly on hover ---- */\n.pict-mde.pict-mde-controls-hidden .pict-mde-quadrant-tr,\n.pict-mde.pict-mde-controls-hidden .pict-mde-quadrant-br\n{\n\topacity: 0;\n}\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment:hover .pict-mde-quadrant-tr,\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment:hover .pict-mde-quadrant-br\n{\n\topacity: 0.3;\n}\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment.pict-mde-active .pict-mde-quadrant-tr,\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment.pict-mde-active .pict-mde-quadrant-br\n{\n\topacity: 0.3;\n}\n\n/* When JS sets a cursor-relative offset, switch TR from sticky to absolute positioning */\n.pict-mde-quadrant-tr.pict-mde-sidebar-at-cursor\n{\n\tposition: absolute;\n\ttop: var(--pict-mde-sidebar-top, 0px);\n}\n\n/* ---- Right-side buttons (shared base) ---- */\n.pict-mde-sidebar-btn\n{\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 22px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-size: 12px;\n\tpadding: 0;\n\tborder-radius: 3px;\n\tcolor: var(--theme-color-text-secondary, #666);\n\tline-height: 1;\n\tfont-family: inherit;\n}\n.pict-mde-sidebar-btn:hover\n{\n\tcolor: var(--theme-color-text-primary, #222);\n}\n.pict-mde-sidebar-btn b\n{\n\tfont-size: 13px;\n\tfont-weight: 700;\n}\n.pict-mde-sidebar-btn i\n{\n\tfont-size: 13px;\n\tfont-style: italic;\n}\n.pict-mde-sidebar-btn code\n{\n\tfont-size: 10px;\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n}\n\n/* ---- Add segment button ---- */\n.pict-mde-add-segment\n{\n\tmargin-top: 6px;\n\tpadding-left: 30px;\n}\n.pict-mde-btn-add\n{\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 7px;\n\tborder: 2px dashed var(--theme-color-border-default, #D0D0D0);\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: var(--theme-color-text-muted, #999);\n\tfont-size: 12px;\n\tfont-weight: 600;\n\tcursor: pointer;\n\ttransition: all 0.15s ease;\n}\n.pict-mde-btn-add:hover\n{\n\tborder-color: var(--theme-color-brand-primary, #4A90D9);\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n\tbackground: rgba(74, 144, 217, 0.04);\n}\n\n/* ---- Image drag-over indicator ---- */\n.pict-mde-segment-editor.pict-mde-image-dragover\n{\n\toutline: 2px dashed var(--theme-color-brand-primary, #4A90D9);\n\toutline-offset: -2px;\n}\n\n/* ---- Drag-in-progress: prevent CodeMirror from intercepting drop events ---- */\n.pict-mde.pict-mde-dragging .pict-mde-segment-editor\n{\n\tpointer-events: none;\n}\n\n/* ---- Drop target indicators for drag reorder ---- */\n.pict-mde-segment.pict-mde-drag-over-top\n{\n\tbox-shadow: 0 -2px 0 0 var(--theme-color-brand-primary, #4A90D9);\n}\n.pict-mde-segment.pict-mde-drag-over-bottom\n{\n\tbox-shadow: 0 2px 0 0 var(--theme-color-brand-primary, #4A90D9);\n}\n\n/* ---- CodeMirror overrides inside segments ---- */\n.pict-mde-segment-editor .cm-editor\n{\n\tborder: none;\n}\n.pict-mde-segment-editor .cm-editor .cm-scroller\n{\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\tfont-size: 14px;\n\tline-height: 1.6;\n}\n.pict-mde-segment-editor .cm-editor.cm-focused\n{\n\toutline: none;\n}\n.pict-mde-segment-editor .cm-editor .cm-content\n{\n\tpadding: 8px 12px;\n\tmin-height: 36px;\n}\n.pict-mde-segment-editor .cm-editor .cm-gutters\n{\n\tbackground: var(--theme-color-background-secondary, #F8F8F8);\n\tborder-right: 1px solid var(--theme-color-border-light, #E8E8E8);\n\tcolor: var(--theme-color-text-muted, #BBB);\n}\n\n/* ---- Collapsed data URI widget ---- */\n.pict-mde-data-uri-collapsed\n{\n\tdisplay: inline;\n\tbackground: var(--theme-color-background-tertiary, #F0F0F0);\n\tcolor: var(--theme-color-text-muted, #888);\n\tfont-size: 11px;\n\tpadding: 1px 4px;\n\tborder-radius: 3px;\n\tborder: 1px solid var(--theme-color-border-default, #E0E0E0);\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n\tcursor: default;\n\twhite-space: nowrap;\n}\n\n/* ---- Line number / controls toggle: gutters hidden by default ---- */\n.pict-mde .cm-editor .cm-gutters\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-controls-on .cm-editor .cm-gutters\n{\n\tdisplay: flex;\n}\n\n/* ============================================\n RESPONSIVE: Tablet / Phone (max-width: 768px)\n ============================================ */\n@media (max-width: 768px)\n{\n\t/* Prevent any horizontal overflow in the editor */\n\t.pict-mde\n\t{\n\t\toverflow-x: hidden;\n\t\tmax-width: 100%;\n\t}\n\n\t/* Reduce the left controls column width */\n\t.pict-mde-left-controls\n\t{\n\t\tflex: 0 0 16px;\n\t}\n\t.pict-mde-left-btn\n\t{\n\t\twidth: 16px;\n\t\theight: 18px;\n\t\tfont-size: 10px;\n\t}\n\n\t/* Make left-side buttons always visible on touch (no hover) */\n\t.pict-mde-left-btn\n\t{\n\t\topacity: 0.6;\n\t}\n\n\t/* Narrow the drag handle */\n\t.pict-mde-drag-handle\n\t{\n\t\tflex: 0 0 5px;\n\t}\n\n\t/* Shrink the right sidebar column */\n\t.pict-mde-sidebar\n\t{\n\t\tflex: 0 0 24px;\n\t}\n\t.pict-mde-sidebar-btn\n\t{\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tfont-size: 11px;\n\t}\n\n\t/* Make right sidebar buttons always visible (touch devices) */\n\t.pict-mde-quadrant-tr,\n\t.pict-mde-quadrant-br\n\t{\n\t\topacity: 0.7;\n\t}\n\t.pict-mde-segment.pict-mde-active .pict-mde-quadrant-tr,\n\t.pict-mde-segment.pict-mde-active .pict-mde-quadrant-br\n\t{\n\t\topacity: 1;\n\t}\n\n\t/* Reduce CodeMirror content padding */\n\t.pict-mde-segment-editor .cm-editor .cm-content\n\t{\n\t\tpadding: 6px 6px;\n\t}\n\n\t/* Reduce font size slightly for more content on screen */\n\t.pict-mde-segment-editor .cm-editor .cm-scroller\n\t{\n\t\tfont-size: 13px;\n\t}\n\n\t/* Add segment button: reduce left margin */\n\t.pict-mde-add-segment\n\t{\n\t\tpadding-left: 21px;\n\t}\n\n\t/* Side-by-side: fall back to vertical stacking on narrow screens */\n\t.pict-mde.pict-mde-preview-side .pict-mde-segment-body\n\t{\n\t\tflex-direction: column;\n\t}\n\t.pict-mde.pict-mde-preview-side .pict-mde-preview-pane\n\t{\n\t\tborder-left: none;\n\t\tborder-top: 1px solid var(--theme-color-border-light, #EDEDED);\n\t}\n\n\t/* Tab bar: smaller on tablet */\n\t.pict-mde-tab\n\t{\n\t\tpadding: 3px 8px;\n\t\tfont-size: 11px;\n\t}\n\n\t/* Rich preview: less padding */\n\t.pict-mde-rich-preview .pict-content\n\t{\n\t\tpadding: 8px;\n\t\tfont-size: 12px;\n\t}\n\n\t/* Image previews: smaller max dimensions */\n\t.pict-mde-image-preview img\n\t{\n\t\tmax-width: 120px;\n\t\tmax-height: 100px;\n\t}\n\n\t/* Rendered view: less padding */\n\t.pict-mde-rendered-view\n\t{\n\t\tpadding: 10px 8px;\n\t}\n}\n\n/* ============================================\n RESPONSIVE: Small phone (max-width: 480px)\n ============================================ */\n@media (max-width: 480px)\n{\n\t/* Wrap segment so left controls flow to the top as a horizontal bar */\n\t.pict-mde-segment\n\t{\n\t\tflex-wrap: wrap;\n\t}\n\n\t/* Left controls become a horizontal toolbar at the top of the segment */\n\t.pict-mde-left-controls\n\t{\n\t\tflex: 0 0 100%;\n\t\tflex-direction: row;\n\t\tjustify-content: flex-start;\n\t\tgap: 2px;\n\t\tpadding: 3px 4px;\n\t\torder: -1;\n\t\tbackground: var(--theme-color-background-secondary, #F5F5F5);\n\t\tborder-bottom: 1px solid var(--theme-color-border-light, #EDEDED);\n\t}\n\t.pict-mde-left-btn\n\t{\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tfont-size: 12px;\n\t\topacity: 0.7;\n\t}\n\n\t/* Left quadrants flow horizontally */\n\t.pict-mde-quadrant-tl,\n\t.pict-mde-quadrant-bl\n\t{\n\t\tflex-direction: row;\n\t\tgap: 2px;\n\t\tposition: static;\n\t}\n\n\t/* Segment body: explicit basis so it fills the wrapped row */\n\t.pict-mde-segment-body\n\t{\n\t\tflex: 1 1 calc(100% - 20px);\n\t}\n\n\t/* Hide drag handle on very small screens */\n\t.pict-mde-drag-handle\n\t{\n\t\tdisplay: none;\n\t}\n\n\t/* Right sidebar: further shrink */\n\t.pict-mde-sidebar\n\t{\n\t\tflex: 0 0 20px;\n\t}\n\t.pict-mde-sidebar-btn\n\t{\n\t\twidth: 18px;\n\t\theight: 18px;\n\t\tfont-size: 10px;\n\t}\n\n\t/* Add segment: no left offset since controls are at top */\n\t.pict-mde-add-segment\n\t{\n\t\tpadding-left: 0;\n\t}\n\n\t/* Even tighter CodeMirror padding */\n\t.pict-mde-segment-editor .cm-editor .cm-content\n\t{\n\t\tpadding: 4px 4px;\n\t}\n}\n"}},{}],28:[function(t,e,i){const n=t("pict-view"),r=t("pict-section-content"),o=t("./Pict-Section-MarkdownEditor-DefaultConfiguration.js"),a=t("./Pict-MDE-Formatting.js"),s=t("./Pict-MDE-ImageHandling.js"),c=t("./Pict-MDE-DragAndReorder.js"),l=t("./Pict-MDE-RichPreview.js"),p=t("./Pict-MDE-CodeMirror.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},o,e),i),this.initialRenderComplete=!1,this._codeMirrorModules=null,this._segmentEditors={},this._segmentCounter=0,this._viewCallIdentifier=!1,this._activeSegmentIndex=-1,this._dragSourceIndex=-1,this._controlsVisible=!0,this._previewMode=this.options.DefaultPreviewMode||"off",this._lastPreviewLayout="bottom",this._segmentTabStates={},this._hiddenPreviewSegments={},this._imagePreviewTimers={},this._richPreviewTimers={},this._richPreviewGenerations={},this._contentProvider=null,this._renderedViewActive=!1,this._renderedViewGeneration=0,a.attach(this),s.attach(this),c.attach(this),l.attach(this),p.attach(this)}onBeforeInitialize(){return super.onBeforeInitialize(),this.targetElement=!1,super.onBeforeInitialize()}connectCodeMirrorModules(t){if(!t||"object"!=typeof t||"function"!=typeof t.EditorView||"function"!=typeof t.EditorState)return"undefined"!=typeof window&&window.CodeMirrorModules&&"function"==typeof window.CodeMirrorModules.EditorView?(this.log.trace("PICT-MarkdownEditor Found CodeMirror modules on window.CodeMirrorModules."),void(this._codeMirrorModules=window.CodeMirrorModules)):(this.log.error("PICT-MarkdownEditor No CodeMirror modules found. Provide them via connectCodeMirrorModules() or set window.CodeMirrorModules."),!1);this._codeMirrorModules=t}onAfterRender(t){return this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),this.pict.CSSMap.injectCSS(),super.onAfterRender(t)}onAfterInitialRender(){if(this._codeMirrorModules||this.connectCodeMirrorModules(),!this._codeMirrorModules)return this.log.error("PICT-MarkdownEditor Cannot initialize; no CodeMirror modules available."),!1;if(this.options.EnableRichPreview){let t=r.default_configuration;t&&t.CSS&&this.pict.CSSMap.addCSS("Pict-Content-View",t.CSS)}let t=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-MarkdownEditor Could not find target element [".concat(this.options.TargetElementAddress,"]!")),this.targetElement=!1,!1;this.targetElement=t[0],this._viewCallIdentifier=this._resolveViewCallIdentifier(),this._buildEditorUI()}_resolveViewCallIdentifier(){let t=this.pict.views;for(let e in t)if(t[e]===this)return"_Pict.views['".concat(e,"']");return"_Pict.servicesMap.PictView['".concat(this.Hash,"']")}_getContainerElement(){if(this.targetElement){let t=this.targetElement.querySelector(".pict-mde");if(t)return t}return this.targetElement||null}_resolveImageURL(t){if(!t||!this.options.ImageBaseURL)return t;if(t.startsWith("/")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("data:"))return t;let e=this.options.ImageBaseURL;return e&&!e.endsWith("/")&&(e+="/"),e+t}_buildEditorUI(){let t=this._getContainerElement();t&&!t.classList.contains("pict-mde")&&t.classList.add("pict-mde");for(let t in this._segmentEditors)this._segmentEditors[t]&&this._segmentEditors[t].destroy();t.innerHTML="",t.classList.remove("pict-mde-preview-off","pict-mde-preview-bottom","pict-mde-preview-side","pict-mde-preview-tabbed","pict-mde-previews-hidden"),t.classList.add("pict-mde-preview-"+this._previewMode),this._controlsVisible?t.classList.add("pict-mde-controls-on"):t.classList.add("pict-mde-controls-hidden");let e=this._getSegmentsFromData();e&&0!==e.length||(e=[{Content:""}],this._setSegmentsToData(e)),this._segmentCounter=0,this._segmentEditors={};for(let i=0;i<e.length;i++)this._renderSegment(t,i,e[i].Content||"");this._renderAddButton(t)}_renderSegment(t,e,i){let n=this._segmentCounter++,r={SegmentIndex:n,SegmentDisplayIndex:e+1,ViewIdentifier:this._viewCallIdentifier},o=this.pict.parseTemplateByHash("MarkdownEditor-Segment",r),a=document.createElement("div");a.innerHTML=o;let s=a.firstElementChild;if(t.appendChild(s),this._buildQuadrantButtons(s,n),this._hiddenPreviewSegments[e]&&s.classList.add("pict-mde-preview-hidden"),"tabbed"===this._previewMode&&"preview"===this._segmentTabStates[e]){s.classList.add("pict-mde-tab-showing-preview");let t=s.querySelector(".pict-mde-tab-bar");if(t){let e=t.querySelector('[data-tab="editor"]'),i=t.querySelector('[data-tab="preview"]');e&&e.classList.remove("pict-mde-tab-active"),i&&i.classList.add("pict-mde-tab-active")}}this._wireSegmentDragEvents(s,n);let c=document.getElementById("PictMDE-SegmentEditor-".concat(n));c&&(this._createEditorInContainer(c,n,i),this._wireImageDragEvents(c,n),i&&(this._updateImagePreviews(n),this._updateRichPreviews(n)))}_buildQuadrantButtons(t,e){let i=[{key:"ButtonsTL",selector:".pict-mde-quadrant-tl",baseClass:"pict-mde-left-btn"},{key:"ButtonsBL",selector:".pict-mde-quadrant-bl",baseClass:"pict-mde-left-btn"},{key:"ButtonsTR",selector:".pict-mde-quadrant-tr",baseClass:"pict-mde-sidebar-btn"},{key:"ButtonsBR",selector:".pict-mde-quadrant-br",baseClass:"pict-mde-sidebar-btn"}],n=this;for(let r=0;r<i.length;r++){let o=i[r],a=t.querySelector(o.selector);if(!a)continue;let s=this.options[o.key];if(Array.isArray(s))for(let t=0;t<s.length;t++){let i=s[t],r=document.createElement("button");r.type="button",r.className=o.baseClass,i.Class&&(r.className+=" "+i.Class);let c=i.HTML||"";c&&"function"==typeof this.pict.parseTemplate&&(c=this.pict.parseTemplate(c,{})),r.innerHTML=c,r.title=i.Title||"";let l=i.Action||"",p=l,d=null,u=l.indexOf(":");u>=0&&(p=l.substring(0,u),d=l.substring(u+1)),function(t,e,i){r.addEventListener("click",()=>{"function"==typeof n[t]?null!==e?n[t](i,e):n[t](i):n.log.warn('PICT-MarkdownEditor _buildQuadrantButtons: method "'.concat(t,'" not found.'))})}(p,d,e),a.appendChild(r)}}}customConfigureExtensions(t,e){return t}_renderAddButton(t){let e={ViewIdentifier:this._viewCallIdentifier},i=this.pict.parseTemplateByHash("MarkdownEditor-AddSegment",e),n=document.createElement("div");n.innerHTML=i;let r=n.firstElementChild;t.appendChild(r)}onImageUpload(t,e,i){return!1}toggleControls(t,e){let i=e;"boolean"==typeof t&&(i=t),this._controlsVisible="boolean"==typeof i?i:!this._controlsVisible;let n=this._getContainerElement();n&&(this._controlsVisible?(n.classList.add("pict-mde-controls-on"),n.classList.remove("pict-mde-controls-hidden")):(n.classList.remove("pict-mde-controls-on"),n.classList.add("pict-mde-controls-hidden")))}toggleLineNumbers(t){this.toggleControls(t)}togglePreview(t){"boolean"==typeof t?t?this.setPreviewMode(this._lastPreviewLayout||"bottom"):this.setPreviewMode("off"):"off"===this._previewMode?this.setPreviewMode(this._lastPreviewLayout||"bottom"):this.setPreviewMode("off")}setPreviewMode(t){if(["off","bottom","side","tabbed"].indexOf(t)<0)return void this.log.warn('PICT-MarkdownEditor setPreviewMode: unknown mode "'.concat(t,'".'));"off"!==t&&(this._lastPreviewLayout=t),this._previewMode=t;let e=this._getContainerElement();if(e&&(e.classList.remove("pict-mde-preview-off","pict-mde-preview-bottom","pict-mde-preview-side","pict-mde-preview-tabbed","pict-mde-previews-hidden"),e.classList.add("pict-mde-preview-"+t)),"off"!==t){let t=this._getOrderedSegmentIndices();for(let e=0;e<t.length;e++)this._updateRichPreviews(t[e]),this._updateImagePreviews(t[e])}}cyclePreviewMode(t){let e=["off","bottom","side","tabbed"],i=(e.indexOf(this._previewMode)+1)%e.length;this.setPreviewMode(e[i])}switchSegmentTab(t,e){let i=this._getLogicalIndex(t);if(i<0)return;this._segmentTabStates[i]=e;let n=document.getElementById("PictMDE-Segment-".concat(t));if(!n)return;"preview"===e?(n.classList.add("pict-mde-tab-showing-preview"),this._updateRichPreviews(t),this._updateImagePreviews(t)):n.classList.remove("pict-mde-tab-showing-preview");let r=document.getElementById("PictMDE-TabBar-".concat(t));if(r){let t=r.querySelectorAll(".pict-mde-tab");for(let i=0;i<t.length;i++)t[i].getAttribute("data-tab")===e?t[i].classList.add("pict-mde-tab-active"):t[i].classList.remove("pict-mde-tab-active")}}toggleSegmentPreview(t,e){let i=this._getLogicalIndex(t);if(i<0)return;let n=!!this._hiddenPreviewSegments[i];n="boolean"==typeof e?!e:!n,n?this._hiddenPreviewSegments[i]=!0:delete this._hiddenPreviewSegments[i];let r=document.getElementById("PictMDE-Segment-".concat(t));r&&(n?r.classList.add("pict-mde-preview-hidden"):(r.classList.remove("pict-mde-preview-hidden"),this._updateRichPreviews(t),this._updateImagePreviews(t)))}_getSegmentsFromData(){if(!this.options.ContentDataAddress)return null;const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let e=this.fable.manifest.getValueByHash(t,this.options.ContentDataAddress);return Array.isArray(e)?e:null}_setSegmentsToData(t){if(!this.options.ContentDataAddress)return;const e={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};this.fable.manifest.setValueByHash(e,this.options.ContentDataAddress,t)}_onSegmentContentChange(t,e){let i=this._getLogicalIndex(t);if(i<0)return;let n=this._getSegmentsFromData();if(!n)return;i<n.length&&(n[i].Content=e),this.onContentChange(i,e);let r=this;this._imagePreviewTimers[t]&&clearTimeout(this._imagePreviewTimers[t]),this._imagePreviewTimers[t]=setTimeout(()=>{r._updateImagePreviews(t),delete r._imagePreviewTimers[t]},500),this._richPreviewTimers[t]&&clearTimeout(this._richPreviewTimers[t]),this._richPreviewTimers[t]=setTimeout(()=>{r._updateRichPreviews(t),delete r._richPreviewTimers[t]},500)}onContentChange(t,e){}_getLogicalIndex(t){let e=this._getContainerElement();if(!e)return-1;let i=e.querySelectorAll(".pict-mde-segment");for(let e=0;e<i.length;e++){if(parseInt(i[e].getAttribute("data-segment-index"),10)===t)return e}return-1}_getOrderedSegmentIndices(){let t=this._getContainerElement();if(!t)return[];let e=t.querySelectorAll(".pict-mde-segment"),i=[];for(let t=0;t<e.length;t++)i.push(parseInt(e[t].getAttribute("data-segment-index"),10));return i}addSegment(t){let e="string"==typeof t?t:"",i=this._getSegmentsFromData();i||(i=[]),i.push({Content:e}),this._setSegmentsToData(i),this._buildEditorUI()}removeSegment(t){let e=this._getLogicalIndex(t);if(e<0)return void this.log.warn("PICT-MarkdownEditor removeSegment: segment index ".concat(t," not found."));let i=this._getSegmentsFromData();if(!i||i.length<=1)return void this.log.warn("PICT-MarkdownEditor removeSegment: cannot remove the last segment.");this._segmentEditors[t]&&(this._segmentEditors[t].destroy(),delete this._segmentEditors[t]),i.splice(e,1),this._setSegmentsToData(i);let n={};for(let t in this._hiddenPreviewSegments){let i=parseInt(t,10);i<e?n[i]=!0:i>e&&(n[i-1]=!0)}this._hiddenPreviewSegments=n;let r={};for(let t in this._segmentTabStates){let i=parseInt(t,10);i<e?r[i]=this._segmentTabStates[t]:i>e&&(r[i-1]=this._segmentTabStates[t])}this._segmentTabStates=r,this._buildEditorUI()}moveSegmentUp(t){let e=this._getLogicalIndex(t);if(e<=0)return;this._marshalAllEditorsToData();let i=this._getSegmentsFromData();if(!i)return;let n=i[e];i[e]=i[e-1],i[e-1]=n,this._swapHiddenPreviewState(e,e-1),this._swapSegmentTabStates(e,e-1),this._buildEditorUI()}moveSegmentDown(t){let e=this._getLogicalIndex(t),i=this._getSegmentsFromData();if(!i||e<0||e>=i.length-1)return;this._marshalAllEditorsToData();let n=i[e];i[e]=i[e+1],i[e+1]=n,this._swapHiddenPreviewState(e,e+1),this._swapSegmentTabStates(e,e+1),this._buildEditorUI()}getSegmentContent(t){let e=this._getOrderedSegmentIndices();if(t<0||t>=e.length)return"";let i=e[t],n=this._segmentEditors[i];return n?n.state.doc.toString():""}setSegmentContent(t,e){let i=this._getOrderedSegmentIndices();if(t<0||t>=i.length)return void this.log.warn("PICT-MarkdownEditor setSegmentContent: index ".concat(t," out of range."));let n=i[t],r=this._segmentEditors[n];r&&r.dispatch({changes:{from:0,to:r.state.doc.length,insert:e}})}getSegmentCount(){return this._getOrderedSegmentIndices().length}getAllContent(t){let e="string"==typeof t?t:"\n\n",i=this._getOrderedSegmentIndices(),n=[];for(let t=0;t<i.length;t++){let e=this._segmentEditors[i[t]];e&&n.push(e.state.doc.toString())}return n.join(e)}_marshalAllEditorsToData(){let t=this._getSegmentsFromData();if(!t)return;let e=this._getOrderedSegmentIndices();for(let i=0;i<e.length;i++){let n=this._segmentEditors[e[i]];n&&i<t.length&&(t[i].Content=n.state.doc.toString())}}setReadOnly(t){this.options.ReadOnly=t,this.initialRenderComplete&&(this._marshalAllEditorsToData(),this._buildEditorUI())}marshalToView(){super.marshalToView(),this.initialRenderComplete&&this.options.ContentDataAddress&&this._buildEditorUI()}marshalFromView(){super.marshalFromView(),this._marshalAllEditorsToData()}destroy(){for(let t in this._segmentEditors)this._segmentEditors[t]&&this._segmentEditors[t].destroy();this._segmentEditors={};for(let t in this._richPreviewTimers)clearTimeout(this._richPreviewTimers[t]);this._richPreviewTimers={},this._richPreviewGenerations={},this._segmentTabStates={}}},e.exports.default_configuration=o},{"./Pict-MDE-CodeMirror.js":22,"./Pict-MDE-DragAndReorder.js":23,"./Pict-MDE-Formatting.js":24,"./Pict-MDE-ImageHandling.js":25,"./Pict-MDE-RichPreview.js":26,"./Pict-Section-MarkdownEditor-DefaultConfiguration.js":27,"pict-section-content":14,"pict-view":38}],29:[function(t,e,i){e.exports={RenderOnLoad:!0,GridWidth:"auto",GridRowHeight:40,GridBodyHeight:"auto",GridBodyMinHeight:130,GridColumnMinWidth:50,GridColumnWidthResizable:!0,GridColumnHeightResizable:!1,GridColumnFrozenCount:0,GridColumnFrozenBorderWidth:3,GridScrollX:!0,GridScrollY:!0,GridShowDummyRows:!1,GridDraggableRows:!1,GridSelectionUnit:"cell",DefaultRenderable:"TuiGrid-Wrap",DefaultDestinationAddress:"#TuiGrid-Container-Div",Templates:[{Hash:"TuiGrid-Container",Template:"\x3c!-- TuiGrid-Container Rendering Soon --\x3e"}],Renderables:[{RenderableHash:"TuiGrid-Wrap",TemplateHash:"TuiGrid-Container",DestinationAddress:"#TuiGrid-Container-Div"}],TargetElementAddress:"#TuiGrid-Container-Div",GridDataAddress:!1,GridData:[{idrecord:1,entity:"SampleEntity",name:"Record name 1",description:"description 1"},{idrecord:2,entity:"SampleEntity",name:"Record name 2",description:"description 2"},{idrecord:3,entity:"SampleEntity",name:"Record name 3",description:"description 3"},{idrecord:4,entity:"SampleEntity",name:"Record name 4",description:"description 4"},{idrecord:5,entity:"SampleEntity",name:"Record name 5",description:"description 5"},{idrecord:6,entity:"SampleEntity",name:"Record name 6",description:"description 6"},{idrecord:7,entity:"SampleEntity",name:"Record name 7",description:"description 7"},{idrecord:8,entity:"SampleEntity",name:"Record name 8",description:"description 8"},{idrecord:9,entity:"SampleEntity",name:"Record name 9",description:"description 9"}],ColumnsToSolveOnChange:{},TuiColumnSchema:[{header:"IDRecord",name:"idrecord",PictTriggerSolveOnChange:!0},{header:"Entity",name:"entity",PictTriggerSolveOnChange:!0},{header:"Name",name:"name",editor:"text"},{header:"Description",name:"description",editor:"text"}]}},{}],30:[function(t,e,i){const n=t("pict-view");e.exports=class extends n{constructor(e,i,n){super(e,Object.assign({},t("./Pict-Section-TuiGrid-DefaultConfiguration.json"),i),n),this.services,this.dateFormatter=this.fable.instantiateServiceProviderWithoutRegistration("Dates"),this.initialRenderComplete=!1,this.customFormatters={}}onBeforeInitialize(){return super.onBeforeInitialize(),this._tuiGridPrototype=null,this.tuiGrid=null,this.customHeaders=t("./Pict-TuiGrid-Headers.js"),this.customEditors=t("./Pict-TuiGrid-Editors.js"),this.initializeCustomFormatters(),this.columnSchema=!1,this.targetElementAddress=!1,this.gridData=null,super.onBeforeInitialize()}initializeCustomFormatters(){this.customFormatters.FormatterTwoDigitNumber=t=>{var e;let i=Number.parseFloat(t.value),n=null!==(e=null==t?void 0:t.decimalPrecision)&&void 0!==e?e:2;return isNaN(i)?"":this.fable.Math.roundPrecise(t.value,n)},this.customFormatters.FormatterCurrencyNumber=t=>{var e;let i=null!==(e=null==t?void 0:t.decimalPrecision)&&void 0!==e?e:2;return this.fable.DataFormat.formatterDollars(t.value,i)},this.customFormatters.FormatterRoundedNumber=t=>{var e;let i=Number.parseFloat(t.value),n=null!==(e=null==t?void 0:t.decimalPrecision)&&void 0!==e?e:2;return isNaN(i)?"":this.fable.Math.roundPrecise(t.value,n)},this.customFormatters.FormatterDate=t=>{let e=this.fable.Dates.dayJS.utc(t.value);return t.dateformat?e.format(t.dateformat):e.format()}}connectTuiGridPrototype(t){if(void 0!==t)this._tuiGridPrototype=t;else{if(this.log.trace("PICT-TuiGrid No TuiGrid Prototype defined or explicitly set; looking for it in the window object."),"undefined"==typeof window)return this.log.error("PICT-TuiGrid No TuiGrid Prototype found in window.tuiGrid -- window object unavailable."),!1;if(void 0===window.tui||void 0===window.tui.Grid)return this.log.error("PICT-TuiGrid No TuiGrid Prototype found in window.tuiGrid."),!1;this.log.trace("PICT-TuiGrid Found TuiGrid Prototype in window.tuiGrid."),this.connectTuiGridPrototype(window.tui.Grid)}}preChangeHandler(t){}changeHandler(t){let e=!1;for(let i=0;i<t.changes.length;i++){let n=t.instance.getValue(t.changes[i].rowKey,"entity"),r=t.instance.getValue(t.changes[i].rowKey,"idrecord");this.log.trace("Generic Change Handler for TuiGrid Fired, Entity ".concat(n," IDRecord ").concat(r," setting Column [").concat(t.changes[i].value,"] to new Value [").concat(t.changes[i].value,"]")),this.options.ColumnsToSolveOnChange.hasOwnProperty(t.changes[i].columnName)&&(e=!0)}e&&this.services.PictApplication.solve()}onAfterRender(t){return this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t)}onAfterInitialRender(){if(this._tuiGridPrototype||this.connectTuiGridPrototype(),this.tuiGrid)return this.log.error("TuiGrid going to ".concat(this.options.TargetElementAddress," is already initialized!")),!1;if(this.options.GridDataAddress){const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let e=this.fable.manifest.getValueByHash(t,this.options.GridDataAddress);"object"!=typeof e?(this.log.error("Address for GridData [".concat(this.options.GridDataAddress,"] did not return an object; it was a ").concat(typeof e,".")),this.gridData=[]):this.gridData=JSON.parse(JSON.stringify(e))}else this.gridData=[];let t=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(t.length<1)return this.log.error("Could not find target element [".concat(this.options.TargetElementAddress,"] for TuiGrid! Rendering won't function properly.")),this.targetElement=!1,!1;this.targetElement=t[0],this.columnSchema=this.options.TuiColumnSchema;for(let t=0;t<this.columnSchema.length;t++){let e=this.columnSchema[t];if(e.PictTriggerSolveOnChange&&(this.options.ColumnsToSolveOnChange[e.name]=e),e.hasOwnProperty("formatter")&&this.customFormatters.hasOwnProperty(e.formatter)&&(e.formatter=this.customFormatters[e.formatter]),e.hasOwnProperty("editor")&&(e.editor.hasOwnProperty("type")&&"string"==typeof e.editor.type&&this.customEditors.hasOwnProperty(e.editor.type)&&(e.editor.type=this.customEditors[e.editor.type]),e.editor.hasOwnProperty("options")&&"object"==typeof e.editor.options&&e.editor.options.hasOwnProperty("listItems")&&"string"==typeof e.editor.options.listItems)){const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let i=this.fable.manifest.getValueByHash(t,e.editor.options.listItems);"object"==typeof i?e.editor.options.listItems=i:(this.log.warn("Pict TuiGrid for column [".concat(e.name,"] had [").concat(e.editor.options.listItems,"] as a listItems address, but it didn't return an object. It was a [").concat(typeof i,"]. Setting to empty list.")),e.editor.options.listItems=[])}}this.gridSettings={data:this.gridData,el:this.targetElement,columns:this.columnSchema,usageStatistics:!1,scrollY:this.options.GridScrollY,columnOptions:{resizable:this.options.GridColumnWidthResizable}},this.customConfigureGridSettings();let e=this._tuiGridPrototype;this.tuiGrid=new e(this.gridSettings),this.tuiGrid.on("beforeChange",t=>{const e=t;this.preChangeHandler(e)}),this.tuiGrid.on("afterChange",t=>{const e=t;this.changeHandler(e)})}customConfigureGridSettings(){}SetGridValue(t,e,i,n){if(void 0===i)return void console.log("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by [").concat(n,"]::[").concat(i,"]. No valid lookup value!"));if(!this.tuiGrid)return void this.log.warn("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by [").concat(n,"]::[").concat(i,"]. No valid grid!"));const r=this.tuiGrid.getData();for(let o=0;o<r.length;o++){r[o][n]==i&&this.tuiGrid.setValue(o,t,e)}}SetGridValueByRowKey(t,e,i){return void 0===i?(this.log.error("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by row key [").concat(i,"]. No valid row key!")),!1):this.tuiGrid?(this.tuiGrid.setValue(i,t,e),!0):(this.log.warn("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by row key [").concat(i,"]. No valid grid!")),!1)}},e.exports.default_configuration=t("./Pict-Section-TuiGrid-DefaultConfiguration.json")},{"./Pict-Section-TuiGrid-DefaultConfiguration.json":29,"./Pict-TuiGrid-Editors.js":33,"./Pict-TuiGrid-Headers.js":34,"pict-view":38}],31:[function(t,e,i){e.exports=class{constructor(t){const e=document.createElement("input"),i=t.columnInfo.editor.options.decimalPrecision?t.columnInfo.editor.options.decimalPrecision:3;e.type="number",e.value=String(t.value),e.oninput=t=>{if(t.target instanceof HTMLInputElement){const e=parseFloat(t.target.value).toFixed(i).toString();e.length<parseFloat(t.target.value).toString().length&&(t.target.value=e)}},this.Element=e}getElement(){return this.Element}getValue(){return this.Element.value}mounted(){this.Element.select()}}},{}],32:[function(t,e,i){e.exports=class{constructor(t){const e=document.createElement("input");e.type="text",e.value=String(t.value),e.placeholder=t.columnInfo.editor.options.placeholder||"",e.pattern=t.columnInfo.editor.options.pattern||"",e.minLength=t.columnInfo.editor.options.minLength||"",e.maxLength=t.columnInfo.editor.options.maxLength||"",e.required=t.columnInfo.editor.options.required||"",this.Element=e}getElement(){return this.Element}getValue(){return this.Element.value}mounted(){this.Element.select()}}},{}],33:[function(t,e,i){e.exports={EditorNumber:t("./Pict-TuiGrid-Editor-Number.js"),EditorText:t("./Pict-TuiGrid-Editor-Text.js")}},{"./Pict-TuiGrid-Editor-Number.js":31,"./Pict-TuiGrid-Editor-Text.js":32}],34:[function(t,e,i){e.exports={CustomColumnHeaderNone:class{constructor(){let t=document.createElement("input");t.type="hidden",t.value="",this.Element=t}getElement(){return this.Element}render(){}}}},{}],35:[function(t,e,i){e.exports={name:"pict-template",version:"1.0.15",description:"Pict Template Base Class",main:"source/Pict-Template.js",scripts:{start:"node source/Pict-Template.js",test:"npx quack test",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build",types:"tsc -p ."},types:"types/source/Pict-Template.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-view.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-view/issues"},homepage:"https://github.com/stevenvelozo/pict-view#readme",devDependencies:{pict:"^1.0.348",quackage:"^1.0.58",typescript:"^5.9.3"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},dependencies:{"fable-serviceproviderbase":"^3.0.19"}}},{}],36:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.pict=this.fable,this.serviceType="PictTemplate",this._Package=r}render(t,e,i,n,r){return""}renderAsync(t,e,i,n,r,o){return i(null,this.render(t,e,n,r,o))}addPattern(t,e){return this.pict.MetaTemplate.addPatternBoth(t,e,this.render,this.renderAsync,this)}resolveStateFromAddress(t,e,i,n,r,o){return this.pict.resolveStateFromAddress(t,e,i,n,r,o)}},e.exports.template_hash="Default"},{"../package.json":35,"fable-serviceproviderbase":3}],37:[function(t,e,i){e.exports={name:"pict-view",version:"1.0.68",description:"Pict View Base Class",main:"source/Pict-View.js",scripts:{test:"npx quack test",tests:"npx quack test -g",start:"node source/Pict-View.js",coverage:"npx quack coverage",build:"npx quack build","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-view-image:local","docker-dev-run":'docker run -it -d --name pict-view-dev -p 30001:8080 -p 38086:8086 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-view" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-view-image:local',"docker-dev-shell":"docker exec -it pict-view-dev /bin/bash",types:"tsc -p .",lint:"eslint source/**"},types:"types/source/Pict-View.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-view.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-view/issues"},homepage:"https://github.com/stevenvelozo/pict-view#readme",devDependencies:{"@eslint/js":"^9.39.1","browser-env":"^3.3.0",eslint:"^9.39.1",pict:"^1.0.363",quackage:"^1.0.65",typescript:"^5.9.3"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},dependencies:{fable:"^3.1.67","fable-serviceproviderbase":"^3.0.19"}}},{}],38:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json"),o={DefaultRenderable:!1,DefaultDestinationAddress:!1,DefaultTemplateRecordAddress:!1,ViewIdentifier:!1,AutoInitialize:!0,AutoInitializeOrdinal:0,AutoRender:!0,AutoRenderOrdinal:0,AutoSolveWithApp:!0,AutoSolveOrdinal:0,CSSHash:!1,CSS:!1,CSSProvider:!1,CSSPriority:500,Templates:[],DefaultTemplates:[],Renderables:[],Manifests:{}};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(o)),e),i),this.fable,this.options,this.UUID,this.Hash,this.log;const n=this.Hash===this.UUID;this.UUID="V-".concat(this.UUID),n&&(this.Hash=this.UUID),this.options.ViewIdentifier||(this.options.ViewIdentifier="AutoViewID-".concat(this.fable.getUUID())),this.serviceType="PictView",this._Package=r,this.pict=this.fable,this.AppData=this.pict.AppData,this.Bundle=this.pict.Bundle,this.initializeTimestamp=!1,this.lastSolvedTimestamp=!1,this.lastRenderedTimestamp=!1,this.lastMarshalFromViewTimestamp=!1,this.lastMarshalToViewTimestamp=!1,this.pict.instantiateServiceProviderIfNotExists("TransactionTracking");for(let t=0;t<this.options.Templates.length;t++){let e=this.options.Templates[t];"Hash"in e&&"Template"in e?(e.Source||(e.Source="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," options object.")),this.pict.TemplateProvider.addTemplate(e.Hash,e.Template,e.Source)):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Template ").concat(t," in the options array."),e)}for(let t=0;t<this.options.DefaultTemplates.length;t++){let e=this.options.DefaultTemplates[t];"Postfix"in e&&"Template"in e?(e.Source||(e.Source="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," options object.")),this.pict.TemplateProvider.addDefaultTemplate(e.Prefix,e.Postfix,e.Template,e.Source)):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Default Template ").concat(t," in the options array."),e)}if(this.options.CSS){let t=this.options.CSSHash?this.options.CSSHash:"View-".concat(this.options.ViewIdentifier),e=this.options.CSSProvider?this.options.CSSProvider:t;this.pict.CSSMap.addCSS(t,this.options.CSS,e,this.options.CSSPriority)}this.renderables={};for(let t=0;t<this.options.Renderables.length;t++){let e=this.options.Renderables[t];this.addRenderable(e)}}addRenderable(t,e,i,n,r){let o;if("object"==typeof t)o=t;else{o={RenderableHash:t,TemplateHash:e,DefaultTemplateRecordAddress:i,ContentDestinationAddress:n,RenderMethod:"string"!=typeof r?r:"replace"}}"string"!=typeof o.RenderableHash||"string"!=typeof o.TemplateHash?this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Renderable; RenderableHash or TemplateHash are invalid."),o):(this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," adding renderable [").concat(o.RenderableHash,"] pointed to template ").concat(o.TemplateHash,".")),this.renderables[o.RenderableHash]=o)}onBeforeInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeInitialize:")),!0}onBeforeInitializeAsync(t){return this.onBeforeInitialize(),t()}onInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onInitialize:")),!0}onInitializeAsync(t){return this.onInitialize(),t()}initialize(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialize:")),this.initializeTimestamp?(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialize called but initialization is already completed. Aborting.")),!1):(this.onBeforeInitialize(),this.onInitialize(),this.onAfterInitialize(),this.initializeTimestamp=this.pict.log.getTimeStamp(),!0)}initializeAsync(t){if(this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initializeAsync:")),this.initializeTimestamp)return this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," async initialize called but initialization is already completed. Aborting.")),t();{let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate");this.pict.LogNoisiness>0&&this.log.info("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," beginning initialization...")),e.anticipate(this.onBeforeInitializeAsync.bind(this)),e.anticipate(this.onInitializeAsync.bind(this)),e.anticipate(this.onAfterInitializeAsync.bind(this)),e.wait(e=>(e&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialization failed: ").concat(e.message||e),{stack:e.stack}),this.initializeTimestamp=this.pict.log.getTimeStamp(),this.pict.LogNoisiness>0&&this.log.info("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialization complete.")),t()))}}onAfterInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterInitialize:")),!0}onAfterInitializeAsync(t){return this.onAfterInitialize(),t()}onBeforeRender(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeRender:")),!0}onBeforeRenderAsync(t,e){return this.onBeforeRender(e),t()}onBeforeProject(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeProject:")),!0}onBeforeProjectAsync(t,e){return this.onBeforeProject(e),t()}buildRenderOptions(t,e,i){let n={Valid:!0};return n.RenderableHash="string"==typeof t?t:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable,n.RenderableHash||(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not find a suitable RenderableHash ").concat(n.RenderableHash," (param ").concat(t,"because it is not a valid renderable.")),n.Valid=!1),n.Renderable=this.renderables[n.RenderableHash],n.Renderable||(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(n.RenderableHash," (param ").concat(t,") because it does not exist.")),n.Valid=!1),n.DestinationAddress="string"==typeof e?e:"string"==typeof n.Renderable.ContentDestinationAddress?n.Renderable.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress&&this.options.DefaultDestinationAddress,n.DestinationAddress||(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(n.RenderableHash," (param ").concat(t,") because it does not have a valid destination address (param ").concat(e,").")),n.Valid=!1),"object"==typeof i?(n.RecordAddress="Passed in as object",n.Record=i):(n.RecordAddress="string"==typeof i?i:"string"==typeof n.Renderable.DefaultTemplateRecordAddress?n.Renderable.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress,n.Record="string"==typeof n.RecordAddress?this.pict.DataProvider.getDataByAddress(n.RecordAddress):void 0),n}assignRenderContent(t,e,i){return this.pict.ContentAssignment.projectContent(t.RenderMethod,e,i,t.TestAddress)}render(t,e,i,n){return this.renderWithScope(this,t,e,i,n)}renderWithScope(t,e,i,n,r){let o,a,s,c="string"==typeof e?e:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable;return c?("__Virtual"==c?o={RenderableHash:"__Virtual",TemplateHash:this.renderables[this.options.DefaultRenderable].TemplateHash,ContentDestinationAddress:"string"==typeof i?i:"string"==typeof o.ContentDestinationAddress?o.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null,RenderMethod:"virtual-assignment",TransactionHash:r&&r.TransactionHash,RootRenderableViewHash:r&&r.RootRenderableViewHash}:(o=Object.assign({},this.renderables[c]),o.ContentDestinationAddress="string"==typeof i?i:"string"==typeof o.ContentDestinationAddress?o.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null),o.TransactionHash||(o.TransactionHash="ViewRender-V-".concat(this.options.ViewIdentifier,"-R-").concat(c,"-U-").concat(this.pict.getUUID()),o.RootRenderableViewHash=this.Hash,this.pict.TransactionTracking.registerTransaction(o.TransactionHash)),o?o.ContentDestinationAddress?("object"==typeof n?(s=n,a="Passed in as object"):(a="string"==typeof n?n:"string"==typeof o.DefaultTemplateRecordAddress?o.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress,s="string"==typeof a?this.pict.DataProvider.getDataByAddress(a):void 0),this.onBeforeRender(o),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] Renderable[").concat(c,"] Destination[").concat(o.ContentDestinationAddress,"] TemplateRecordAddress[").concat(a,"] render:")),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Beginning Render of Renderable[").concat(c,"] to Destination [").concat(o.ContentDestinationAddress,"]...")),o.Content=this.pict.parseTemplateByHash(o.TemplateHash,s,null,[this],t,{RootRenderable:"object"==typeof r?r:o}),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Assigning Renderable[").concat(c,"] content length ").concat(o.Content.length," to Destination [").concat(o.ContentDestinationAddress,"] using render method [").concat(o.RenderMethod,"].")),this.onBeforeProject(o),this.onProject(o),"virtual-assignment"!==o.RenderMethod&&(this.onAfterProject(o),this.onAfterRender(o)),!0):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(c," (param ").concat(e,") because it does not have a valid destination address.")),!1):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(c," (param ").concat(e,") because it does not exist.")),!1)):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(c," (param ").concat(e,") because it is not a valid renderable.")),!1)}renderAsync(t,e,i,n,r){return this.renderWithScopeAsync(this,t,e,i,n,r)}renderWithScopeAsync(t,e,i,n,r,o){let a,s,c,l="string"==typeof e?e:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable,p="function"==typeof o?o:"function"==typeof n?n:"function"==typeof i?i:"function"==typeof e?e:"function"==typeof r?r:null;if(p||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),p=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync Auto Callback Error: ").concat(t),t)}),!l)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not asynchronously render ").concat(l," (param ").concat(e,"because it is not a valid renderable.")),p(new Error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not asynchronously render ").concat(l," (param ").concat(e,"because it is not a valid renderable.")));if("__Virtual"==l?a={RenderableHash:"__Virtual",TemplateHash:this.renderables[this.options.DefaultRenderable].TemplateHash,ContentDestinationAddress:"string"==typeof i?i:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null,RenderMethod:"virtual-assignment",TransactionHash:r&&"function"!=typeof r&&r.TransactionHash,RootRenderableViewHash:r&&"function"!=typeof r&&r.RootRenderableViewHash}:(a=Object.assign({},this.renderables[l]),a.ContentDestinationAddress="string"==typeof i?i:"string"==typeof a.ContentDestinationAddress?a.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null),a.TransactionHash||(a.TransactionHash="ViewRender-V-".concat(this.options.ViewIdentifier,"-R-").concat(l,"-U-").concat(this.pict.getUUID()),a.RootRenderableViewHash=this.Hash,this.pict.TransactionTracking.registerTransaction(a.TransactionHash)),!a)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it does not exist.")),p(new Error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it does not exist.")));if(!a.ContentDestinationAddress)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it does not have a valid destination address.")),p(new Error("Could not render ".concat(l)));"object"==typeof n?(c=n,s="Passed in as object"):(s="string"==typeof n?n:"string"==typeof a.DefaultTemplateRecordAddress?a.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress,c="string"==typeof s?this.pict.DataProvider.getDataByAddress(s):void 0),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] Renderable[").concat(l,"] Destination[").concat(a.ContentDestinationAddress,"] TemplateRecordAddress[").concat(s,"] renderAsync:")),this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Beginning Asynchronous Render (callback-style)..."));let d=this.fable.newAnticipate();d.anticipate(t=>{this.onBeforeRenderAsync(t,a)}),d.anticipate(i=>{this.pict.parseTemplateByHash(a.TemplateHash,c,(t,n)=>t?(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render (asynchronously) ").concat(l," (param ").concat(e,") because it did not parse the template."),t),i(t)):(a.Content=n,i()),[this],t,{RootRenderable:"object"==typeof r?r:a})}),d.anticipate(t=>{this.onBeforeProjectAsync(t,a)}),d.anticipate(t=>{this.onProjectAsync(t,a)}),"virtual-assignment"!==a.RenderMethod&&(d.anticipate(t=>{this.onAfterProjectAsync(t,a)}),d.anticipate(t=>{this.onAfterRenderAsync(t,a)})),d.wait(p)}renderDefaultAsync(t){this.renderAsync(t)}basicRender(t,e,i){return this.basicRenderWithScope(this,t,e,i)}basicRenderWithScope(t,e,i,n){let r=this.buildRenderOptions(e,i,n);return r.Valid?(this.assignRenderContent(r.Renderable,r.DestinationAddress,this.pict.parseTemplateByHash(r.Renderable.TemplateHash,r.Record,null,[this],t,{RootRenderable:r.Renderable})),!0):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not perform a basic render of ").concat(r.RenderableHash," because it is not valid.")),!1)}basicRenderAsync(t,e,i,n){return this.basicRenderWithScopeAsync(this,t,e,i,n)}basicRenderWithScopeAsync(t,e,i,n,r){let o="function"==typeof r?r:"function"==typeof n?n:"function"==typeof i?i:"function"==typeof e?e:null;o||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," basicRenderAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),o=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," basicRenderAsync Auto Callback Error: ").concat(t),t)});const a=this.buildRenderOptions(e,i,n);if(!a.Valid){let t="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not perform a basic render of ").concat(a.RenderableHash," because it is not valid.");return this.log.error(t),o(new Error(t))}this.pict.parseTemplateByHash(a.Renderable.TemplateHash,a.Record,(t,e)=>t?(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render (asynchronously) ").concat(a.RenderableHash," because it did not parse the template."),t),o(t)):(this.assignRenderContent(a.Renderable,a.DestinationAddress,e),o()),[this],t,{RootRenderable:a.Renderable})}onProject(t){this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onProject:")),"virtual-assignment"===t.RenderMethod&&this.pict.TransactionTracking.pushToTransactionQueue(t.TransactionHash,{ViewHash:this.Hash,Renderable:t},"Deferred-Post-Content-Assignment"),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Assigning Renderable[").concat(t.RenderableHash,"] content length ").concat(t.Content.length," to Destination [").concat(t.ContentDestinationAddress,"] using Async render method ").concat(t.RenderMethod,".")),this.pict.ContentAssignment.projectContent(t.RenderMethod,t.ContentDestinationAddress,t.Content,t.TestAddress),this.lastRenderedTimestamp=this.pict.log.getTimeStamp()}onProjectAsync(t,e){return this.onProject(e),t()}onAfterRender(t){if(this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterRender:")),t&&t.RootRenderableViewHash===this.Hash){const e=this.pict.TransactionTracking.clearTransactionQueue(t.TransactionHash)||[];for(const i of e){const e=this.pict.views[i.Data.ViewHash];e?(e.onAfterProject(),e.onAfterRender(i.Data.Renderable)):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterRender: Could not find view for transaction hash ").concat(t.TransactionHash," and ViewHash ").concat(i.Data.ViewHash,"."))}this.pict.TransactionTracking.unregisterTransaction(t.TransactionHash)}return!0}onAfterRenderAsync(t,e){this.onAfterRender(e);const i=this.fable.newAnticipate(),n=e&&e.RootRenderableViewHash===this.Hash;if(n){const t=this.pict.TransactionTracking.clearTransactionQueue(e.TransactionHash)||[];for(const n of t){const t=this.pict.views[n.Data.ViewHash];t?(i.anticipate(t.onAfterProjectAsync.bind(t)),i.anticipate(e=>{t.onAfterRenderAsync(e,n.Data.Renderable)})):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterRenderAsync: Could not find view for transaction hash ").concat(e.TransactionHash," and ViewHash ").concat(n.Data.ViewHash,"."))}}return i.wait(i=>(n&&e&&e.TransactionHash&&this.pict.TransactionTracking.unregisterTransaction(e.TransactionHash),t(i)))}onAfterProject(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterProject:")),!0}onAfterProjectAsync(t,e){return t()}onBeforeSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeSolve:")),!0}onBeforeSolveAsync(t){return this.onBeforeSolve(),t()}onSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onSolve:")),!0}onSolveAsync(t){return this.onSolve(),t()}solve(){return this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," executing solve() function...")),this.onBeforeSolve(),this.onSolve(),this.onAfterSolve(),this.lastSolvedTimestamp=this.pict.log.getTimeStamp(),!0}solveAsync(t){let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t?t:null;i||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeSolveAsync.bind(this)),e.anticipate(this.onSolveAsync.bind(this)),e.anticipate(this.onAfterSolveAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," solveAsync() complete.")),this.lastSolvedTimestamp=this.pict.log.getTimeStamp(),i(t)))}onAfterSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterSolve:")),!0}onAfterSolveAsync(t){return this.onAfterSolve(),t()}onBeforeMarshalFromView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeMarshalFromView:")),!0}onBeforeMarshalFromViewAsync(t){return this.onBeforeMarshalFromView(),t()}onMarshalFromView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onMarshalFromView:")),!0}onMarshalFromViewAsync(t){return this.onMarshalFromView(),t()}marshalFromView(){return this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," executing solve() function...")),this.onBeforeMarshalFromView(),this.onMarshalFromView(),this.onAfterMarshalFromView(),this.lastMarshalFromViewTimestamp=this.pict.log.getTimeStamp(),!0}marshalFromViewAsync(t){let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t?t:null;i||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalFromViewAsync.bind(this)),e.anticipate(this.onMarshalFromViewAsync.bind(this)),e.anticipate(this.onAfterMarshalFromViewAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," marshalFromViewAsync() complete.")),this.lastMarshalFromViewTimestamp=this.pict.log.getTimeStamp(),i(t)))}onAfterMarshalFromView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterMarshalFromView:")),!0}onAfterMarshalFromViewAsync(t){return this.onAfterMarshalFromView(),t()}onBeforeMarshalToView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeMarshalToView:")),!0}onBeforeMarshalToViewAsync(t){return this.onBeforeMarshalToView(),t()}onMarshalToView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onMarshalToView:")),!0}onMarshalToViewAsync(t){return this.onMarshalToView(),t()}marshalToView(){return this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," executing solve() function...")),this.onBeforeMarshalToView(),this.onMarshalToView(),this.onAfterMarshalToView(),this.lastMarshalToViewTimestamp=this.pict.log.getTimeStamp(),!0}marshalToViewAsync(t){let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t?t:null;i||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalToViewAsync.bind(this)),e.anticipate(this.onMarshalToViewAsync.bind(this)),e.anticipate(this.onAfterMarshalToViewAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," marshalToViewAsync() complete.")),this.lastMarshalToViewTimestamp=this.pict.log.getTimeStamp(),i(t)))}onAfterMarshalToView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterMarshalToView:")),!0}onAfterMarshalToViewAsync(t){return this.onAfterMarshalToView(),t()}get isPictView(){return!0}}},{"../package.json":37,"fable-serviceproviderbase":3}],39:[function(t,e,i){e.exports={name:"pict-section-form",version:"1.1.3",description:"Pict dynamic form sections",main:"source/Pict-Section-Form.js",directories:{test:"test"},repository:{type:"git",url:"git+https://github.com/fable-retold/pict-section-form.git"},bugs:{url:"https://github.com/fable-retold/pict-section-form/issues"},homepage:"https://github.com/fable-retold/pict-section-form#readme",scripts:{start:"node source/Pict-Section-Form.js",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build",test:"npx quack test",lint:"eslint source/**",types:"tsc -p .","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-section-form-image:local","docker-dev-run":'docker run -it -d --name pict-section-form-dev -p 48888:8080 -p 49999:9999 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-section-form" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-section-form-image:local',"docker-dev-shell":"docker exec -it pict-section-form-dev /bin/bash"},types:"types/source/Pict-Section-Form.d.ts",author:"steven velozo <steven@velozo.com>",license:"MIT",devDependencies:{"@eslint/js":"^9.39.2","browser-env":"^3.3.0",eslint:"^9.39.2",jquery:"^4.0.0",pict:"^1.0.372","pict-application":"^1.0.34","pict-docuserve":"^1.4.4","pict-service-commandlineutility":"^1.0.19",quackage:"^1.3.0","tui-grid":"^4.21.22",typescript:"^5.9.3"},dependencies:{"chart.js":"^4.5.1","fable-serviceproviderbase":"^3.0.19",marked:"^4.3.0","pict-provider":"^1.0.13","pict-section-excalidraw":"^1.0.2","pict-section-markdowneditor":"^1.0.17","pict-section-tuigrid":"^1.0.31","pict-template":"^1.0.15","pict-view":"^1.0.68"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]}}},{}],40:[function(t,e,i){e.exports=t("./views/Pict-View-DynamicForm.js"),e.exports.PictDynamicFormDependencyManager=t("./services/Pict-Service-DynamicFormDependencyManager.js"),e.exports.PictFormTemplateProvider=t("./providers/Pict-Provider-DynamicTemplates.js"),e.exports.PictInputExtensionProvider=t("./providers/Pict-Provider-InputExtension.js"),e.exports.PictFormMetacontroller=t("./views/Pict-View-Form-Metacontroller.js"),e.exports.PictFormApplication=t("./application/Pict-Application-Form.js"),e.exports.PictDynamicLayoutProvider=t("./providers/Pict-Provider-DynamicLayout.js"),e.exports.ManifestFactory=t("./services/ManifestFactory.js"),e.exports.ManifestConversionToCSV=t("./services/ManifestConversionToCSV.js"),e.exports.PictFormSupportBase=t("./views/support/Pict-View-PSF-SupportBase.js"),e.exports.PictFormPersistenceProvider=t("./providers/Pict-Provider-FormPersistence.js"),e.exports.ExtensionViews={LifecycleVisualization:t("./views/support/Pict-View-PSF-LifeCycle-Visualization.js"),DebugViewer:t("./views/support/Pict-View-PSF-DebugViewer.js")},e.exports.RichTextInput=t("./providers/inputs/Pict-Provider-Input-RichText.js"),e.exports.DiagramInput=t("./providers/inputs/Pict-Provider-Input-Diagram.js"),e.exports.themeifySVG=t("./providers/inputs/util/Themeify-SVG.js").themeifySVG},{"./application/Pict-Application-Form.js":41,"./providers/Pict-Provider-DynamicLayout.js":45,"./providers/Pict-Provider-DynamicTemplates.js":49,"./providers/Pict-Provider-FormPersistence.js":50,"./providers/Pict-Provider-InputExtension.js":52,"./providers/inputs/Pict-Provider-Input-Diagram.js":63,"./providers/inputs/Pict-Provider-Input-RichText.js":70,"./providers/inputs/util/Themeify-SVG.js":77,"./services/ManifestConversionToCSV.js":86,"./services/ManifestFactory.js":87,"./services/Pict-Service-DynamicFormDependencyManager.js":88,"./views/Pict-View-DynamicForm.js":103,"./views/Pict-View-Form-Metacontroller.js":104,"./views/support/Pict-View-PSF-DebugViewer.js":107,"./views/support/Pict-View-PSF-LifeCycle-Visualization.js":108,"./views/support/Pict-View-PSF-SupportBase.js":111}],41:[function(t,e,i){const n=t("pict-application"),r=t("../Pict-Section-Form.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.pict.addServiceType("PictSectionForm",r),this.pict.addView("PictFormMetacontroller",{},r.PictFormMetacontroller)}marshalDataFromDynamicViewsToAppData(){this.pict.views.PictFormMetacontroller.marshalFromView()}marshalDataFromAppDataToDynamicViews(){this.pict.views.PictFormMetacontroller.marshalToView()}},e.exports.default_configuration={Name:"A Simple Pict Forms Application",Hash:"PictFormsApp",MainViewportViewIdentifier:"PictFormMetacontroller",AutoSolveAfterInitialize:!1,pict_configuration:{Product:"PictDefaultFormsApp"}}},{"../Pict-Section-Form.js":40,"pict-application":6}],42:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-SolverBehaviors",AutoInitialize:!1,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log,this.cssHideSectionClass="pict-section-form-hidden-section",this.cssHideGroupClass="pict-section-form-hidden-group",this.cssTabularRowHighlightClass="pict-tabular-row-highlight",this.cssTabularColumnHighlightClass="pict-tabular-column-highlight",this.cssSnippet=".pict-section-form-hidden-section { display: none; } .pict-section-form-hidden-group { display: none; } .pict-tabular-row-highlight > td, .pict-tabular-row-highlight > th { background-color: var(--pict-tabular-highlight-color, #FFF3CD) !important; } td.pict-tabular-column-highlight, th.pict-tabular-column-highlight { background-color: var(--pict-tabular-highlight-color, #FFF3CD) !important; }",this.solverOrdinalMap={},this.setCSSSnippets()}setCSSSnippets(t,e){this.cssHideClass=t||this.cssHideClass,this.cssSnippet=e||this.cssSnippet,this.pict.CSSMap.addCSS("Pict-Section-Form-SolverBehaviors",this.cssSnippet,1001,"Pict-DynamicForm-SolverBehaviors"),this.pict.CSSMap.injectCSS()}addSolverFunction(t,e,i,n,r){let o=(e||"").trim().toLowerCase();t.functionMap.hasOwnProperty(o)&&this.log.warn("PictDynamicFormsInformary: Function ".concat(o," already exists in the solver, overwriting with address [").concat(i,"]."));let a={Name:n||"Autogenerated function ".concat(o),Address:i};Array.isArray(r)&&r.length>0&&(a.AddressParameterIndices=r),t.functionMap[o]=a}runSolvers(){this.pict.providers.DynamicSolver.solveViews(void 0,!0)}injectBehaviors(t){return this.addSolverFunction(t,"logvalues","fable.providers.DynamicFormSolverBehaviors.logValues","Logs a set of values to the console and returns the last one."),this.addSolverFunction(t,"unionarrays","fable.providers.DynamicFormSolverBehaviors.unionArrays","Return the union of two arrays."),this.addSolverFunction(t,"differencearrays","fable.providers.DynamicFormSolverBehaviors.differenceArrays","Return the difference of two arrays."),this.addSolverFunction(t,"uniquearray","fable.providers.DynamicFormSolverBehaviors.uniqueArray","Return a new array with only unique values from the input array."),this.addSolverFunction(t,"sortarray","fable.providers.DynamicFormSolverBehaviors.sortArray","Returns a sorted array from the input array."),this.addSolverFunction(t,"showsections","fable.providers.DynamicFormSolverBehaviors.showSections","Shows sections based on hashes in an array.",[0]),this.addSolverFunction(t,"hidesections","fable.providers.DynamicFormSolverBehaviors.hideSections","Hides sections based on hashes in an array.",[0]),this.addSolverFunction(t,"setsectionvisibility","fable.providers.DynamicFormSolverBehaviors.setSectionVisibility","Sets a sections visiblity to true or fales based on the second parameter.",[0]),this.addSolverFunction(t,"setgroupvisibility","fable.providers.DynamicFormSolverBehaviors.setGroupVisibility","Sets a group visiblity to true or fales based on the third parameter.",[0,1]),this.addSolverFunction(t,"generatehtmlhexcolor","fable.providers.DynamicFormSolverBehaviors.generateHTMLHexColor","Generates a HTML hex color from three integer parameters (red, green, blue)."),this.addSolverFunction(t,"colorsectionbackground","fable.providers.DynamicFormSolverBehaviors.colorSectionBackground","Colors a section background with a HTML hex color (e.g. #FF0000 for red).",[0]),this.addSolverFunction(t,"colorgroupbackground","fable.providers.DynamicFormSolverBehaviors.colorGroupBackground","Colors a group background with a HTML hex color (e.g. #FF0000 for red).",[0,1]),this.addSolverFunction(t,"colorinputbackground","fable.providers.DynamicFormSolverBehaviors.colorInputBackground","Colors an input background with a HTML hex color (e.g. #FF0000 for red).",[0,1]),this.addSolverFunction(t,"colorinputbackgroundtabular","fable.providers.DynamicFormSolverBehaviors.colorInputBackgroundTabular","Colors a tabular input background with a HTML hex color (e.g. #FF0000 for red).",[0,1,2]),this.addSolverFunction(t,"highlighttabularrow","fable.providers.DynamicFormSolverBehaviors.highlightTabularRow","Adds (1) or removes (0) a highlight class on every cell of a tabular row.",[0,1]),this.addSolverFunction(t,"highlighttabularcolumn","fable.providers.DynamicFormSolverBehaviors.highlightTabularColumn","Adds (1) or removes (0) a highlight class on every cell of a tabular column.",[0,1]),this.addSolverFunction(t,"colortabularrow","fable.providers.DynamicFormSolverBehaviors.colorTabularRow","Sets (1) or clears (0) the background color on every cell of a tabular row.",[0,1]),this.addSolverFunction(t,"colortabularcolumn","fable.providers.DynamicFormSolverBehaviors.colorTabularColumn","Sets (1) or clears (0) the background color on every cell of a tabular column.",[0,1]),this.addSolverFunction(t,"setsolverordinalenabled","fable.providers.DynamicFormSolverBehaviors.setSolverOrdinalEnabled","Enables or disabled a solver ordinal to determine if it should run."),this.addSolverFunction(t,"enablesolverordinal","fable.providers.DynamicFormSolverBehaviors.enableSolverOrdinal","Enables a solver ordinal so that it can run."),this.addSolverFunction(t,"disablesolverordinall","fable.providers.DynamicFormSolverBehaviors.disableSolverOrdinal","Disables a solver ordinal so that it will not run."),this.addSolverFunction(t,"settabularrowlength","fable.providers.DynamicFormSolverBehaviors.setTabularRowLength","Sets the length of a tabular data set.",[0,1]),this.addSolverFunction(t,"runsolvers","fable.providers.DynamicFormSolverBehaviors.runSolvers","Solves all views."),this.addSolverFunction(t,"refreshtabularsection","fable.providers.DynamicFormSolverBehaviors.refreshTabularSection","Causes a tabular section to refresh its display.",[0,1]),this.addSolverFunction(t,"getglobalformdata","fable.providers.DynamicFormSolverBehaviors.getGlobalFormData","Gets a value from the global form data by hash."),this.addSolverFunction(t,"resolveglobalformdata","fable.providers.DynamicFormSolverBehaviors.resolveGlobalFormData","Resolves a value from the global form data by manyfest address."),this.addSolverFunction(t,"getsectionformdata","fable.providers.DynamicFormSolverBehaviors.getSectionFormData","Gets a value from a specific section by hash or address.",[0]),this.addSolverFunction(t,"getsectiontabularformdata","fable.providers.DynamicFormSolverBehaviors.getSectionTabularFormData","Gets a value from a specific tabular section row by hash or address.",[0,1]),this.addSolverFunction(t,"addcomprehensionentity","fable.providers.DynamicFormSolverBehaviors.addComprehensionEntity","Writes a property/value into the configured comprehension destination, nested as Context -> Entity -> GUID -> Property."),!1}unionArrays(t,e){let i=new Set;if(Array.isArray(t))for(let e=0;e<t.length;e++)i.add(t[e]);if(Array.isArray(e))for(let t=0;t<e.length;t++)i.add(e[t]);return Array.from(i)}differenceArrays(t,e){let i=new Set,n=new Set;if(Array.isArray(t))for(let e=0;e<t.length;e++)i.add(t[e]);if(Array.isArray(e))for(let t=0;t<e.length;t++)n.add(e[t]);let r=new Set;return i.forEach(t=>{n.has(t)||r.add(t)}),Array.from(r)}uniqueArray(t){let e=new Set;if(Array.isArray(t))for(let i=0;i<t.length;i++)e.add(t[i]);return Array.from(e)}sortArray(t){return Array.isArray(t)?t.sort():[]}setSolverOrdinalEnabled(t,e){this.solverOrdinalMap["ORD-".concat(t)]=1==e||"1"==e}enableSolverOrdinal(t){this.solverOrdinalMap["ORD-".concat(t)]=!0}disableSolverOrdinal(t){this.solverOrdinalMap["ORD-".concat(t)]=!1}checkSolverOrdinalEnabled(t){let e="ORD-".concat(t);return!(e in this.solverOrdinalMap)||!0===this.solverOrdinalMap[e]}getSectionSelector(t){return"#SECTION-".concat(t)}setSectionVisibility(t,e){return"0"!=e?this.showSection(t):this.hideSection(t)}showSections(t){const e=Array.isArray(t)?t:[t];for(let t=0;t<e.length;t++)this.showSection(e[t])}hideSections(t){const e=Array.isArray(t)?t:[t];for(let t=0;t<e.length;t++)this.hideSection(e[t])}hideSection(t){let e=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return e?(this.pict.ContentAssignment.hasClass(this.getSectionSelector(e.formID),this.cssHideSectionClass)||this.pict.ContentAssignment.addClass(this.getSectionSelector(e.formID),this.cssHideSectionClass),!0):(this.log.warn("PictDynamicFormsInformary: hideSection could not find section with hash [".concat(t,"].")),!1)}showSection(t){let e=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return e?!this.pict.ContentAssignment.hasClass(this.getSectionSelector(e.formID),this.cssHideSectionClass)||(this.pict.ContentAssignment.removeClass(this.getSectionSelector(e.formID),this.cssHideSectionClass),!0):(this.log.warn("PictDynamicFormsInformary: showSection could not find section with hash [".concat(t,"].")),!1)}getGroupSelector(t,e){return"#GROUP-".concat(t,"-").concat(e)}setGroupVisibility(t,e,i){return"0"!=i?this.showGroup(t,e):this.hideGroup(t,e)}hideGroup(t,e){let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return i?(this.pict.ContentAssignment.hasClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass)||this.pict.ContentAssignment.addClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass),!0):(this.log.warn("PictDynamicFormsInformary: hideGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1)}showGroup(t,e){let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return i?!this.pict.ContentAssignment.hasClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass)||(this.pict.ContentAssignment.removeClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass),!0):(this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1)}refreshTabularSection(t,e){const i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!i)return void this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"]."));const n=i.getGroupIndexFromHash(e);if(n<0)return void this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find group with section hash [".concat(t,"] group [").concat(e,"]."));const r=i.getGroup(n);if(r){const t=this.pict.views.PictFormMetacontroller.filterViews(t=>{if(!t.isPictSectionForm)return!1;const e=t.getGroups();for(let t=0;t<e.length;t++)if(e[t].RecordSetAddress==r.RecordSetAddress)return!0;return!1});for(let e=0;e<t.length;e++)t[e].render();this.pict.views.PictFormMetacontroller.marshalFormSections()}}setTabularRowLength(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!r)return this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;let o=r.getGroupIndexFromHash(e);if(o<0)return this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;let a=r.getTabularRecordSet(o);if(!a||!Array.isArray(a))return this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find a valid tabular record set with section hash [".concat(t,"] group [").concat(e,"].")),!1;let s=parseInt(i.toString());if(isNaN(s)||s<0)return this.log.warn("PictDynamicFormsInformary: setTabularRowLength was given an invalid length [".concat(i,"] with section hash [").concat(t,"] group [").concat(e,"].")),!1;let c=a.length,l=1==n||"1"==n;if(s>c)for(let t=c;t<s;t++)r.createDynamicTableRow(o);else if(s<c&&l)for(let t=c-1;t>=s;t--)r.deleteDynamicTableRow(o,t)}generateHTMLHexColor(t,e,i){let n=parseInt(t)||0,r=parseInt(e)||0,o=parseInt(i)||0;n<0&&(n=0),n>255&&(n=255),r<0&&(r=0),r>255&&(r=255),o<0&&(o=0),o>255&&(o=255);let a=n.toString(16).toUpperCase();a.length<2&&(a="0".concat(a));let s=r.toString(16).toUpperCase();s.length<2&&(s="0".concat(s));let c=o.toString(16).toUpperCase();return c.length<2&&(c="0".concat(c)),"#".concat(a).concat(s).concat(c)}colorSectionBackground(t,e,i){if("0"==i)return!0;let n=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!n)return this.log.warn("PictDynamicFormsInformary: colorSection could not find section with hash [".concat(t,"].")),!1;let r=this.pict.ContentAssignment.getElement(this.getSectionSelector(n.formID));return r.length<1?(this.log.warn("PictDynamicFormsInformary: colorSection could not find section element with hash [".concat(t,"] selector [").concat(this.getSectionSelector(n.formID),"].")),!1):(r[0].style.backgroundColor=e,!0)}colorGroupBackground(t,e,i,n){if("0"==n)return!0;let r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!r)return this.log.warn("PictDynamicFormsInformary: colorGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;let o=this.pict.ContentAssignment.getElement(this.getGroupSelector(r.formID,e));return o.length<1?(this.log.warn("PictDynamicFormsInformary: colorGroup could not find group element with section hash [".concat(t,"] group [").concat(e,"] selector [").concat(this.getGroupSelector(r.formID,e),"].")),!1):(o[0].style.backgroundColor=i,!0)}colorInputBackground(t,e,i,n,r){if("0"==n)return!0;let o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!o)return this.log.warn("PictDynamicFormsInformary: colorInput could not find input with section hash [".concat(t,"] input [").concat(e,"].")),!1;let a=o.getInputFromHash(e);if(!a)return this.log.warn("PictDynamicFormsInformary: colorInput could not find input with section hash [".concat(t,"] input [").concat(e,"].")),!1;let s=this.pict.ContentAssignment.getElement(a.Macro.HTMLSelectorControl);return s.length<1&&(s=this.pict.ContentAssignment.getElement("#".concat(a.Macro.RawHTMLID))),s.length<1?(this.log.warn("PictDynamicFormsInformary: colorInput could not find input element with section hash [".concat(t,"] input [").concat(e,"] selector [#").concat(a.Macro.RawHTMLID,"].")),!1):this.colorElementBackground(s,i,r)}colorInputBackgroundTabular(t,e,i,n,r,o,a){let s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"TABULAR-DATA-";if("0"==o)return!0;let c=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!c)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"].")),!1;let l=c.getTabularRecordInputByHash(e,i);if(!l)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"].")),!1;if(!l.Macro)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"] is missing Macro data.")),!1;const p=l.Macro.HTMLSelectorControlTabular+'[data-i-index="'.concat(n,'"]');let d=this.pict.ContentAssignment.getElement(p);return d.length<1&&(d=this.pict.ContentAssignment.getElement("#".concat(s).concat(l.Macro.RawHTMLID,"-").concat(n))),d.length<1?(this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input element with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"] row index [").concat(n,"] selector [#").concat(l.Macro.RawHTMLID,"-").concat(n,"].")),!1):this.colorElementBackground(d,r,a)}colorElementBackground(t,e,i){let n=t[0];if(i)for(let e=0;e<t.length;e++){const r=t[e].closest("".concat(i));if(r&&r instanceof HTMLElement){n=r;break}}return n.style.backgroundColor=e,!0}isSolverFlagEnabled(t){return null!=t&&!1!==t&&0!==t&&"0"!==t&&""!==t&&"false"!==t}getTabularGroupSelector(t,e){if(!this.pict.views.PictFormMetacontroller)return this.log.warn("PictDynamicFormsSolverBehaviors: getTabularGroupSelector has no PictFormMetacontroller."),null;let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return i?"#GROUP-".concat(i.formID,"-").concat(e):(this.log.warn("PictDynamicFormsSolverBehaviors: getTabularGroupSelector could not find section view with hash [".concat(t,"].")),null)}highlightTabularRow(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a="string"==typeof r&&r.length>0?r:this.cssTabularRowHighlightClass,s="".concat(o,' tr[data-tabular-row-index="').concat(i,'"]');return this.isSolverFlagEnabled(n)?this.pict.ContentAssignment.addClass(s,a):this.pict.ContentAssignment.removeClass(s,a),!0}highlightTabularColumn(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a="string"==typeof r&&r.length>0?r:this.cssTabularColumnHighlightClass,s="".concat(o,' [data-tabular-column-index="').concat(i,'"]');return this.isSolverFlagEnabled(n)?this.pict.ContentAssignment.addClass(s,a):this.pict.ContentAssignment.removeClass(s,a),!0}colorTabularRow(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a=this.isSolverFlagEnabled(r)&&"string"==typeof n&&n.length>0,s=this.pict.ContentAssignment.getElement("".concat(o,' tr[data-tabular-row-index="').concat(i,'"] td'));for(let t=0;t<s.length;t++)a?s[t].style.setProperty("background-color",n,"important"):s[t].style.removeProperty("background-color");return!0}colorTabularColumn(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a=this.isSolverFlagEnabled(r)&&"string"==typeof n&&n.length>0,s=this.pict.ContentAssignment.getElement("".concat(o,' [data-tabular-column-index="').concat(i,'"]'));for(let t=0;t<s.length;t++)a?s[t].style.setProperty("background-color",n,"important"):s[t].style.removeProperty("background-color");return!0}getGlobalFormData(t){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("getGlobalFormData: No PictFormMetacontroller available.");let e=this.pict.views.PictFormMetacontroller.viewMarshalDestination,i=this.pict.resolveStateFromAddress(e);return"object"==typeof i&&null!==i||(i=this.pict.AppData),this.pict.manifest.getValueByHash(i,t)}resolveGlobalFormData(t){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("resolveGlobalFormData: No PictFormMetacontroller available.");let e=this.pict.views.PictFormMetacontroller.viewMarshalDestination,i=this.pict.resolveStateFromAddress(e);return"object"==typeof i&&null!==i||(i=this.pict.AppData),this.pict.manifest.getValueAtAddress(i,t)}getSectionFormData(t,e){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("getSectionFormData: No PictFormMetacontroller available.");let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(i)return i.getValueByHash(e);this.log.warn("getSectionFormData: Could not find section view with hash [".concat(t,"]."))}getSectionTabularFormData(t,e,i,n){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("getSectionTabularFormData: No PictFormMetacontroller available.");let r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!r)return void this.log.warn("getSectionTabularFormData: Could not find section view with hash [".concat(t,"]."));let o=r.getGroupIndexFromHash(e);if(o<0)return void this.log.warn("getSectionTabularFormData: Could not find group with hash [".concat(e,"] in section [").concat(t,"]."));let a=r.getGroup(o);if(!a)return void this.log.warn("getSectionTabularFormData: Could not get group at index ".concat(o," in section [").concat(t,"]."));let s=r.getTabularRecordSet(o);if(!s)return void this.log.warn("getSectionTabularFormData: Could not find tabular record set for group [".concat(e,"] in section [").concat(t,"]."));let c=parseInt(i.toString());if(isNaN(c)||c<0)return void this.log.warn("getSectionTabularFormData: Invalid row index [".concat(i,"] for group [").concat(e,"] in section [").concat(t,"]."));if(c>=s.length)return void this.log.warn("getSectionTabularFormData: Row index [".concat(c,"] out of bounds for group [").concat(e,"] in section [").concat(t,"] (length ").concat(s.length,")."));let l=s[c];if(l&&"object"==typeof l)return a.supportingManifest?a.supportingManifest.getValueByHash(l,n):n in l?l[n]:void 0;this.log.warn("getSectionTabularFormData: No valid record at row index [".concat(c,"] for group [").concat(e,"] in section [").concat(t,"]."))}logValues(){let t=null,e="Solver logvalues call: ";for(let i=0;i<arguments.length;i++)t=arguments[i],e+=" [".concat(i,"]=[").concat(t,"]");return this.log.info(e),t}resolveComprehensionDestination(){let t="AppData.FormEntityComprehensions";this.pict.views.PictFormMetacontroller&&"string"==typeof this.pict.views.PictFormMetacontroller.comprehensionDestinationAddress&&this.pict.views.PictFormMetacontroller.comprehensionDestinationAddress.length>0&&(t=this.pict.views.PictFormMetacontroller.comprehensionDestinationAddress);let e=this.pict.resolveStateFromAddress(t);return e&&"object"==typeof e?e:null!=e&&"object"!=typeof e?(this.log.warn("addComprehensionEntity: comprehension destination [".concat(t,"] resolves to a non-object value; refusing to overwrite.")),null):(this.pict.setStateValueAtAddress(t,null,{}),this.pict.resolveStateFromAddress(t))}addComprehensionEntity(t,e,i,n,r){if(null==t||null==e||null==i||null==n)return void this.log.warn("addComprehensionEntity: ignoring call with null/undefined parts (Context=[".concat(t,"], Entity=[").concat(e,"], GUID=[").concat(i,"], Property=[").concat(n,"])."));let o=String(t),a=String(e),s=String(i),c=String(n);if(o.length<1||a.length<1||s.length<1||c.length<1)return void this.log.warn("addComprehensionEntity: ignoring call with empty parts (Context=[".concat(o,"], Entity=[").concat(a,"], GUID=[").concat(s,"], Property=[").concat(c,"])."));let l=this.resolveComprehensionDestination();if(!l)return;let p=o.split("."),d=l;for(let t=0;t<p.length;t++){let e=p[t];e.length<1||(d[e]&&"object"==typeof d[e]||(d[e]={}),d=d[e])}d[a]&&"object"==typeof d[a]||(d[a]={});let u=d[a];return u[s]&&"object"==typeof u[s]||(u[s]={}),u[s][c]=r,r}},e.exports.default_configuration=r},{"pict-provider":9}],43:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Input",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.templateProviderMap={},this.ignoredEventHashes={}}registerIgnoredEventHash(t){this.ignoredEventHashes[t]=!0}getInputTemplateHash(t,e){if(e.IsTabular){let i="-TabularTemplate-Begin-Input-InputType-".concat(e.PictForm.InputType),n="-TabularTemplate-End-Input-InputType-".concat(e.PictForm.InputType),r="-TabularTemplate-Begin-Input-DataType-".concat(e.DataType),o="-TabularTemplate-End-Input-DataType-".concat(e.DataType);if(t.checkViewSpecificTemplate(i)&&t.checkViewSpecificTemplate(n))return t.getViewSpecificTemplateHash(i);if(t.checkThemeSpecificTemplate(i)&&t.checkThemeSpecificTemplate(n))return t.getThemeSpecificTemplateHash(i);if(t.checkViewSpecificTemplate(r)&&t.checkViewSpecificTemplate(o))return t.getViewSpecificTemplateHash(r);if(t.checkThemeSpecificTemplate(r)&&t.checkThemeSpecificTemplate(o))return t.getThemeSpecificTemplateHash(r)}else{let i="-Template-Input-InputType-".concat(e.PictForm.InputType),n="-Template-Input-DataType-".concat(e.DataType);if(t.checkViewSpecificTemplate(i))return t.getViewSpecificTemplateHash(i);if(t.checkThemeSpecificTemplate(i))return t.getThemeSpecificTemplateHash(i);if(t.checkViewSpecificTemplate(n))return t.getViewSpecificTemplateHash(n);if(t.checkThemeSpecificTemplate(n))return t.getThemeSpecificTemplateHash(n)}return!1}addDefaultInputProvider(t,e){t in this.templateProviderMap||(this.templateProviderMap[t]=[]),this.templateProviderMap[t].indexOf(e)<0&&this.templateProviderMap[t].push(e)}getDefaultInputProviders(t,e){let i=this.getInputTemplateHash(t,e);return i&&this.templateProviderMap[i]?this.templateProviderMap[i]:[]}},e.exports.default_configuration=r},{"pict-provider":9}],44:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-InputEvents",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i)}inputDataRequest(t,e,i){if(e){let n=t.getInputFromHash(e);if(i){let t;if(t="string"==typeof i?i:i.namespace?"".concat(i.type,".").concat(i.namespace):i.type,this.pict.providers.DynamicInput.ignoredEventHashes[t])return}let r=t.sectionManifest.resolveHashAddress(e);try{let e=t.getMarshalDestinationObject(),i=t.sectionManifest.getValueByHash(e,r),o=t.getInputProviderList(n);for(let e=0;e<o.length;e++)t.pict.providers[o[e]]?t.pict.providers[o[e]].onDataRequest(t,n,i,n.Macro.HTMLSelector):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] inputDataRequest cannot find embedded provider [").concat(o[e],"] for input [").concat(n.Hash,"]."))}catch(i){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error running inputDataRequest specific (").concat(e,") data from view in dataChanged event: ").concat(i))}}else t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find input hash [").concat(e,"] for inputDataRequest event."))}inputEvent(t,e,i,n){const r=n&&"string"==typeof n?n:this.pict.getUUID();let o=t.getInputFromHash(e);if(e){let a=t.sectionManifest.resolveHashAddress(e);try{let e=t.getMarshalDestinationObject(),s=t.sectionManifest.getValueByHash(e,a),c=t.getInputProviderList(o);for(let e=0;e<c.length;e++)t.pict.providers[c[e]]?o.Macro&&(t.pict.providers[c[e]].onEvent(t,o,s,o.Macro.HTMLSelector,i,r),t.registerOnTransactionCompleteCallback(r,()=>{t.pict.providers[c[e]].onAfterEventCompletion(t,o,s,o.Macro.HTMLSelector,i,r)})):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] inputEvent ").concat(i," cannot find embedded provider [").concat(c[e],"] for input [").concat(o.Hash,"]."));n!==r&&t.finalizeTransaction(r)}catch(n){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error running inputEvent ").concat(i," specific (").concat(e,") data from view in dataChanged event: ").concat(n))}}else t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find input hash [").concat(e,"] for inputEvent ").concat(i," event."))}inputDataRequestTabular(t,e,i,n,r){let o=t.getTabularRecordInput(e,i);if(e&&i&&n&&o){if(r){let t;if(t="string"==typeof r?r:r.namespace?"".concat(r.type,".").concat(r.namespace):r.type,this.pict.providers.DynamicInput.ignoredEventHashes[t])return}try{let e=t.getMarshalDestinationObject(),i=t.pict.providers.Informary.getComposedContainerAddress(o.PictForm.InformaryContainerAddress,n,o.PictForm.InformaryDataAddress),r=t.sectionManifest.getValueByHash(e,i),a=o.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(n,'"]'),s=t.getInputProviderList(o);for(let e=0;e<s.length;e++)t.pict.providers[s[e]]?t.pict.providers[s[e]].onDataRequestTabular(t,o,r,a,n):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find embedded provider [").concat(s[e],"] for input [").concat(o.Hash,"] row ").concat(n,"."))}catch(r){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error marshaling specific (").concat(e," | ").concat(i," | ").concat(n,") tabular data for group ").concat(e," row ").concat(n," from view in dataChanged event: ").concat(r))}}else t.marshalFromView()}inputEventTabular(t,e,i,n,r,o){const a=o&&"string"==typeof o?o:this.pict.getUUID();let s=t.getTabularRecordInput(e,i);if(null!=e&&null!=i&&null!=n&&s)try{let e=t.getMarshalDestinationObject(),i=t.pict.providers.Informary.getComposedContainerAddress(s.PictForm.InformaryContainerAddress,n,s.PictForm.InformaryDataAddress),c=t.sectionManifest.getValueByHash(e,i),l=s.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(n,'"]'),p=t.getInputProviderList(s);for(let e=0;e<p.length;e++)t.pict.providers[p[e]]?(t.pict.providers[p[e]].onEventTabular(t,s,c,l,n,r,a),t.registerOnTransactionCompleteCallback(a,()=>{t.pict.providers[p[e]].onAfterEventTabularCompletion(t,s,c,l,n,r,a)})):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find embedded provider [").concat(p[e],"] for input [").concat(s.Hash,"] row ").concat(n," calling inputEvent ").concat(r,"."));o!==a&&t.finalizeTransaction(a)}catch(o){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error marshaling specific (").concat(e," | ").concat(i," | ").concat(n,") tabular data for group ").concat(e," row ").concat(n," from view in calling inputEvent ").concat(r,": ").concat(o))}}},e.exports.default_configuration=r},{"pict-provider":9}],45:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Layout",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i)}generateGroupLayoutTemplate(t,e){return""}onGroupLayoutInitialize(t,e){return!0}onDataMarshalToForm(t,e){return!0}},e.exports.default_configuration=r},{"pict-provider":9}],46:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-RecordSet",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.recordProviders={}}count(t,e){return e()}readRecordList(t,e){return e()}readRecord(t,e){return e()}writeRecord(t,e){return e()}deleteRecord(t,e){return e()}},e.exports.default_configuration=r},{"pict-provider":9}],47:[function(t,e,i){const n=t("pict-provider"),r=t("./Pict-Provider-DynamicFormSolverBehaviors.js"),o=t("./Pict-Provider-ListDistilling.js"),a=t("./Pict-Provider-MetaLists.js"),s=t("./inputs/Pict-Provider-Input-Select.js"),c=t("./inputs/Pict-Provider-Input-DateTime.js"),l=t("./inputs/Pict-Provider-Input-TabGroupSelector.js"),p=t("./inputs/Pict-Provider-Input-TabSectionSelector.js"),d=t("./inputs/Pict-Provider-Input-EntityBundleRequest.js"),u=t("./inputs/Pict-Provider-Input-AutofillTriggerGroup.js"),h=t("./inputs/Pict-Provider-Input-Markdown.js"),m=t("./inputs/Pict-Provider-Input-HTML.js"),g=t("./inputs/Pict-Provider-Input-Templated.js"),f=t("./inputs/Pict-Provider-Input-PreciseNumber.js"),D=t("./inputs/Pict-Provider-Input-Link.js"),y=t("./inputs/Pict-Provider-Input-TemplatedEntityLookup.js"),v=t("./inputs/Pict-Provider-Input-Chart.js"),b=t("./inputs/Pict-Provider-Input-TabularTriggerGroup.js"),T={ProviderIdentifier:"Pict-DynamicForms-Solver",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(T)),e),i),this.pict,this.fable,this.log,this.UUID,this.Hash,this._RunSolversRegex=/\brunsolvers\b/gi,this.fable.instantiateServiceProviderIfNotExists("ExpressionParser"),this.pict.addProviderSingleton("DynamicFormSolverBehaviors",r.default_configuration,r),this.pict.providers.DynamicFormSolverBehaviors.injectBehaviors(this.fable.ExpressionParser),this.pict.addProviderSingleton("DynamicMetaLists",a.default_configuration,a),this.pict.addProviderSingleton("ListDistilling",o.default_configuration,o),this.pict.addProviderSingleton("Pict-Input-Select",s.default_configuration,s),this.pict.addProviderSingleton("Pict-Input-DateTime",c.default_configuration,c),this.pict.addProviderSingleton("Pict-Input-TabGroupSelector",l.default_configuration,l),this.pict.addProviderSingleton("Pict-Input-TabSectionSelector",p.default_configuration,p),this.pict.addProviderSingleton("Pict-Input-EntityBundleRequest",d.default_configuration,d),this.pict.addProviderSingleton("Pict-Input-AutofillTriggerGroup",u.default_configuration,u),this.pict.addProviderSingleton("Pict-Input-Markdown",h.default_configuration,h),this.pict.addProviderSingleton("Pict-Input-HTML",m.default_configuration,m),this.pict.addProviderSingleton("Pict-Input-Templated",g.default_configuration,g),this.pict.addProviderSingleton("Pict-Input-PreciseNumber",f.default_configuration,f),this.pict.addProviderSingleton("Pict-Input-TemplatedEntityLookup",y.default_configuration,y),this.pict.addProviderSingleton("Pict-Input-Link",D.default_configuration,D),this.pict.addProviderSingleton("Pict-Input-Chart",v.default_configuration,v),this.pict.addProviderSingleton("Pict-Input-TabularTriggerGroup",b.default_configuration,b)}logSolveOutcome(t){let e=t;if("object"==typeof e&&null!==e||(e=this.lastSolveOutcome),"object"!=typeof e||null===e)return void this.log.error("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] No solve outcome available to log."));let i=e.SolverResultsMap.ExecutedSolvers.length;this.log.info("DynamicSolver completed solving ".concat(i," solvers in ").concat(e.EndTimeStamp-e.StartTimeStamp," ms."));for(let t=0;t<e.SolverResultsMap.ExecutedSolvers.length;t++){var n;let i=e.SolverResultsMap.ExecutedSolvers[t];this.log.info(" Solver [".concat(i.Hash,"] Ordinal ").concat(i.Ordinal," executed in ").concat(i.EndTimeStamp-i.StartTimeStamp,"ms solving for [").concat(null==i||null===(n=i.ResultsObject)||void 0===n?void 0:n.PostfixedAssignmentAddress,"] expression [").concat(i.Expression,"]"))}}prepareSolverResultsMap(t){let e=t;return"object"==typeof e&&null!==e||(e={}),"ExecutedSolvers"in e||(e.ExecutedSolvers=[]),"SolverResolutionMap"in e||(e.SolverResolutionMap={}),e}backfillSolverDependencies(t){let e=t;if("object"==typeof e&&null!==e||(e=this.lastSolveOutcome),"object"==typeof e&&null!==e){for(let t=0;t<e.SolverResultsMap.ExecutedSolvers.length;t++){let i=e.SolverResultsMap.ExecutedSolvers[t];if("ResultsObject"in i&&"object"==typeof i.ResultsObject&&null!==i.ResultsObject&&i.ResultsObject.PostfixedAssignmentAddress&&"Result"!=i.ResultsObject.PostfixedAssignmentAddress){"object"!=typeof e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress]&&(e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress]={});for(let t=0;t<i.ResultsObject.PostfixTokenObjects.length;t++){let n=i.ResultsObject.PostfixTokenObjects[t];"Token.Symbol"==n.Type&&(n.Token in e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress]||(e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress][n.Token]=0),e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress][n.Token]=e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress][n.Token]+1)}}}return e}this.log.error("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] No solve outcome available to backfill solver dependencies."))}runSolver(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.pict.resolveStateFromAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination);"object"==typeof i&&null!==i||(i=this.pict.AppData);let n={},r=this.fable.ExpressionParser.solve(t,i,n,this.pict.manifest);return n.fable&&delete n.fable,e||this.pict.log.trace("Manual solve executed for expression: ".concat(t),n),r}checkSolver(t,e,i){let n=t;if(void 0!==n)if("string"==typeof n&&(n={Expression:n,Ordinal:1}),"Expression"in n){if("Ordinal"in n||(n.Ordinal=1),!e||n.Ordinal==i)return n}else this.log.error("Dynamic View solver ".concat(i," is missing the Expression property."),{Solver:t})}executeSolvers(t,e,i){const n=Array.isArray(e)?e:[];let r={SolverResultsMap:{}};r.StartTimeStamp=+new Date;let o={};r.SolveOrdinals=o;for(let t=0;t<n.length;t++){const e=this.checkSolver(n[t]);if(e){this.checkAutoSolveOrdinal(e.Ordinal,o).AdhocSolvers.push(e)}}let a=Object.keys(o);a.sort((t,e)=>isNaN(Number(t))||isNaN(Number(e))?t.localeCompare(e):Number(t)-Number(e));for(let e=0;e<a.length;e++){this.pict.LogNoisiness>1&&this.log.trace("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] [").concat(i,"] Solving ordinal ").concat(a[e]));let n=o[a[e]];this.pict.providers.DynamicFormSolverBehaviors.checkSolverOrdinalEnabled(a[e])&&this.executeAdhocSolvers(t,n.AdhocSolvers,i,Number(a[e]),r.SolverResultsMap)}r.EndTimeStamp=+new Date,this.lastAdhocSolveOutcome=r}executeAdhocSolvers(t,e,i,n,r){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=void 0!==n,s=this.prepareSolverResultsMap(r);for(let r=0;r<e.length;r++){let c=this.checkSolver(e[r],a,n);if(void 0===c)continue;if(o&&c.Expression.match(this._RunSolversRegex)){this.pict.LogNoisiness>0&&t.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] [").concat(i,"] skipping RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"] due to solver cycle prevention."));continue}c.StartTimeStamp=+new Date,c.Hash="AdhocSolver-".concat(r),this.pict.LogNoisiness>1&&this.pict.log.trace("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] [").concat(i,"] solving equation ").concat(r," ordinal ").concat(c.Ordinal," [").concat(t.options.Solvers[r],"]")),c.ResultsObject={};let l=this.fable.ExpressionParser.solve(c.Expression,t.getMarshalDestinationObject(),c.ResultsObject,this.pict.manifest,t.getMarshalDestinationObject());this.pict.LogNoisiness>1&&this.pict.log.trace("[".concat(c.Expression,"] [").concat(i,"] result was ").concat(l)),s.ExecutedSolvers.push(c),c.EndTimeStamp=+new Date}}executeGroupSolvers(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=void 0!==e,o=this.prepareSolverResultsMap(i);for(let i=0;i<t.length;i++){let a=this.pict.views[t[i].ViewHash],s=a.getGroup(t[i].GroupIndex),c=this.checkSolver(t[i].Solver,r,e);if(void 0===c)continue;if(n&&c.Expression.match(this._RunSolversRegex)){this.pict.LogNoisiness>0&&a.log.warn("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] skipping RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"] due to solver cycle prevention."));continue}c.StartTimeStamp=Date.now(),c.Hash="".concat(t[i].ViewHash,"-GroupSolver-").concat(i),this.pict.LogNoisiness>1&&a.log.trace("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] solving RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"]"));let l=a.getTabularRecordSet(s.GroupIndex);if(Array.isArray(l))for(let t=0;t<l.length;t++){let e=l[t];c.ResultsObject={};let i=a.fable.ExpressionParser.solve(c.Expression,e,c.ResultsObject,s.supportingManifest,e);this.pict.LogNoisiness>1&&a.log.trace("Group ".concat(s.Hash," [").concat(c.Expression,"] record ").concat(t," result was ").concat(i))}else if("object"==typeof l){let t=Object.keys(l);for(let e=0;e<t.length;e++){let i=l[t[e]];c.ResultsObject={};let n=a.fable.ExpressionParser.solve(c.Expression,i,c.ResultsObject,s.supportingManifest,i);this.pict.LogNoisiness>1&&a.log.trace("Group ".concat(s.Hash," [").concat(c.Expression,"] record ").concat(e," result was ").concat(n))}}o.ExecutedSolvers.push(c),c.EndTimeStamp=Date.now()}}executeSectionSolvers(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=void 0!==e,o=this.prepareSolverResultsMap(i);for(let i=0;i<t.length;i++){let a=this.pict.views[t[i].ViewHash],s=this.checkSolver(t[i].Solver,r,e);if(void 0===s)continue;if(n&&s.Expression.match(this._RunSolversRegex)){this.pict.LogNoisiness>0&&a.log.warn("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] skipping RecordSet ordinal ").concat(s.Ordinal," [").concat(s.Expression,"] due to solver cycle prevention."));continue}s.StartTimeStamp=+new Date,s.Hash="".concat(t[i].ViewHash,"-SectionSolver-").concat(i),this.pict.LogNoisiness>1&&a.log.trace("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] solving equation ").concat(i," ordinal ").concat(s.Ordinal," [").concat(a.options.Solvers[i],"]")),s.ResultsObject={};let c=a.fable.ExpressionParser.solve(s.Expression,a.getMarshalDestinationObject(),s.ResultsObject,this.pict.manifest,a.getMarshalDestinationObject());this.pict.LogNoisiness>1&&a.log.trace("[".concat(s.Expression,"] result was ").concat(c)),o.ExecutedSolvers.push(s),s.EndTimeStamp=+new Date}}executeViewSolvers(t,e,i){let n=void 0!==e,r=this.prepareSolverResultsMap(i);for(let i=0;i<t.length;i++){let o=this.checkSolver(t[i].Solver,n,e);if(void 0===o)continue;o.Hash="".concat(t[i].ViewHash,"-ViewSolve-").concat(i),o.StartTimeStamp=+new Date;let a=this.pict.views[t[i].ViewHash];this.pict.LogNoisiness>1&&a.log.trace("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] running solve() on view [").concat(t[i].ViewHash)),a.solve(),r.ExecutedSolvers.push(o),o.EndTimeStamp=+new Date}}executeValidationSolvers(t){var e;let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=null===(e=this.pict.views.PictFormMetacontroller)||void 0===e||null===(e=e.manifestDescription)||void 0===e?void 0:e.ValidationSolvers;if(!Array.isArray(n))return;const r=this.pict.views.PictFormMetacontroller&&this.pict.resolveStateFromAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination)||this.pict.AppData;for(let e=0;e<n.length;e++){const o=this.checkSolver(n[e]);void 0!==o&&(i&&o.Expression.match(this._RunSolversRegex)?this.pict.LogNoisiness>0&&this.pict.log.warn("Skipping Validation Solver ordinal ".concat(o.Ordinal," [").concat(o.Expression,"] due to solver cycle prevention.")):(this.pict.LogNoisiness>1&&this.pict.log.trace("Running validation solver ordinal ".concat(o.Ordinal," [").concat(o.Expression,"]")),this.pict.ExpressionParser.solve(o.Expression,r,t,this.pict.manifest,this.pict.AppData)))}}checkAutoSolveOrdinal(t,e){return t.toString()in e||(e[t.toString()]={ViewSolvers:[],SectionSolvers:[],GroupSolvers:[],AdhocSolvers:[]}),e[t]}solveViews(t,e){let i=Array.isArray(t)?t:Object.keys(this.fable.views);const n=!0===e;let r={SolverResultsMap:{}};r.StartTimeStamp=+new Date,r.ViewHashes=i;let o={};r.SolveOrdinals=o;for(let t=0;t<i.length;t++){let e=this.fable.views[i[t]];if(!e.isPictView||e.isPictSectionForm||e.isPictMetacontroller){if(e.isPictSectionForm){for(let n=0;n<e.sectionDefinition.Groups.length;n++){let r=e.getGroup(n);if("RecordSetSolvers"in r)for(let e=0;e<r.RecordSetSolvers.length;e++){let a=this.checkSolver(r.RecordSetSolvers[e]);if(a){this.checkAutoSolveOrdinal(a.Ordinal,o).GroupSolvers.push({ViewHash:i[t],GroupIndex:n,Solver:a})}}}if(Array.isArray(e.options.Solvers))for(let n=0;n<e.options.Solvers.length;n++){let r=this.checkSolver(e.options.Solvers[n]);if(r){this.checkAutoSolveOrdinal(r.Ordinal,o).SectionSolvers.push({ViewHash:i[t],Solver:r})}}}}else{this.checkAutoSolveOrdinal(e.options.AutoSolveOrdinal,o).ViewSolvers.push({ViewHash:i[t]})}}let a=Object.keys(o);a.sort((t,e)=>isNaN(Number(t))||isNaN(Number(e))?t.localeCompare(e):Number(t)-Number(e));for(let t=0;t<a.length;t++){this.pict.LogNoisiness>1&&this.log.trace("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] Solving ordinal ").concat(a[t]));let e=o[a[t]];this.pict.providers.DynamicFormSolverBehaviors.checkSolverOrdinalEnabled(a[t])&&(this.executeGroupSolvers(e.GroupSolvers,Number(a[t]),r.SolverResultsMap,n),this.executeSectionSolvers(e.SectionSolvers,Number(a[t]),r.SolverResultsMap,n),this.executeViewSolvers(e.ViewSolvers,Number(a[t]),r.SolverResultsMap))}return this.executeValidationSolvers(r.SolverResultsMap,n),this.pict.providers.DynamicMetaLists.buildViewSpecificLists(i),r.EndTimeStamp=+new Date,this.lastSolveOutcome=r,i}},e.exports.default_configuration=T},{"./Pict-Provider-DynamicFormSolverBehaviors.js":42,"./Pict-Provider-ListDistilling.js":53,"./Pict-Provider-MetaLists.js":54,"./inputs/Pict-Provider-Input-AutofillTriggerGroup.js":59,"./inputs/Pict-Provider-Input-Chart.js":60,"./inputs/Pict-Provider-Input-DateTime.js":61,"./inputs/Pict-Provider-Input-EntityBundleRequest.js":64,"./inputs/Pict-Provider-Input-HTML.js":65,"./inputs/Pict-Provider-Input-Link.js":66,"./inputs/Pict-Provider-Input-Markdown.js":67,"./inputs/Pict-Provider-Input-PreciseNumber.js":68,"./inputs/Pict-Provider-Input-Select.js":71,"./inputs/Pict-Provider-Input-TabGroupSelector.js":72,"./inputs/Pict-Provider-Input-TabSectionSelector.js":73,"./inputs/Pict-Provider-Input-TabularTriggerGroup.js":74,"./inputs/Pict-Provider-Input-Templated.js":75,"./inputs/Pict-Provider-Input-TemplatedEntityLookup.js":76,"pict-provider":9}],48:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-DynamicTabularData",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log}getTabularRecordSet(t,e){let i=t.getGroup(e);return i&&null!=i&&i.RecordSetAddress?t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress):(this.log.warn("PICT View Metatemplate Helper getTabularRecordSet ".concat(e," was not a valid group or did not have a valid RecordSetAddress.")),!1)}getTabularRecordInput(t,e,i){let n=t.getGroup(e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInput ".concat(e," was not a valid group.")),!1;let r=n.supportingManifest.elementAddresses[i];return n.supportingManifest.elementDescriptors[r]}getTabularRecordInputByHash(t,e,i){let n=t.getGroups().find(t=>t.Hash===e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," was not a valid group.")),!1;if(!n.supportingManifest)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," s not a tabular group.")),!1;for(const t of Object.values(n.supportingManifest.elementDescriptors))if(t.Hash===i)return t;return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," could not find input ").concat(i,".")),!1}getTabularRecordData(t,e,i){let n=t.getGroup(e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," was not a valid group.")),!1;let r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(r||(r=t.sectionManifest.getValueAtAddress(t.getMarshalDestinationObject(),n.RecordSetAddress)),!r)return this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," could not find the record set for ").concat(n.RecordSetAddress,".")),!1;try{return Array.isArray(r)||"object"==typeof r?r[i]:(this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," could not determine the type of the record set for ").concat(n.RecordSetAddress,".")),!1)}catch(t){return this.log.error("PICT View Metatemplate Helper getTabularRecordData ".concat(e," encountered an error: ").concat(t)),!1}}createDynamicTableRow(t,e){let i=t.getGroup(e);if(i){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress);if(Array.isArray(e)){if(i.MaximumRowCount&&e.length>=i.MaximumRowCount)return void this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(i.Hash," attempting to add a row but the maximum rows ").concat(i.MaximumRowCount," has been reached."));let n={};i.DefaultRows&&e.length<i.DefaultRows.length&&(n=JSON.parse(JSON.stringify(i.DefaultRows[e.length]))),e.push(i.supportingManifest.populateDefaults(n));let r=this.pict.views.PictFormMetacontroller.filterViews(t=>{if(!t.isPictSectionForm)return!1;let e=t.getGroups();for(let t=0;t<e.length;t++)if(e[t].RecordSetAddress==i.RecordSetAddress)return!0;return!1});for(let t=0;t<r.length;t++)r[t].render();this._rebuildDependentDynamicColumnViews(i.RecordSetAddress),this.pict.providers.DynamicSolver.solveViews(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}createDynamicTableRowWithoutEvents(t,e){let i=t.getGroup(e);if(i){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress);if(Array.isArray(e)){if(i.MaximumRowCount&&e.length>=i.MaximumRowCount)return void this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(i.Hash," attempting to add a row but the maximum rows ").concat(i.MaximumRowCount," has been reached."));let n={};i.DefaultRows&&e.length<i.DefaultRows.length&&(n=JSON.parse(JSON.stringify(i.DefaultRows[e.length]))),e.push(i.supportingManifest.populateDefaults(n))}}}setDynamicTableRowIndex(t,e,i,n){let r=t.getGroup(e);if(r){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),r.RecordSetAddress);if(Array.isArray(e)){let o=parseInt(String(i),10),a=parseInt(String(n),10);if(e.length<=o||o<0)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(r.Hash," attempting to move row [").concat(i,"] to [").concat(n,"] but the index is out of bounds.")),!1;let s=e.splice(o,1);e.splice(a,0,s[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}moveDynamicTableRowDown(t,e,i){let n=t.getGroup(e);if(n){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(e)){let r=parseInt(String(i),10);if(e.length<=r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(i,"] down but it's already at the bottom.")),!1;let o=e.splice(r,1);e.splice(r+1,0,o[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}moveDynamicTableRowUp(t,e,i){let n=t.getGroup(e);if(n){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(e)){let r=parseInt(String(i),10);if(0==r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(i,"] up but it's already at the top.")),!1;if(e.length<=r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(i,"] but the index is out of bounds.")),!1;let o=e.splice(r,1);e.splice(r-1,0,o[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}deleteDynamicTableRow(t,e,i){let n=t.getGroup(e);if(n){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(e)){if(n.MinimumRowCount&&e.length<=n.MinimumRowCount)return this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to delete a row but the minimum rows ").concat(n.MinimumRowCount," has been reached.")),!1;let r=parseInt(String(i),10);if(e.length<=r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to delete row [").concat(i,"] but the index is out of bounds.")),!1;let o=e.length;e.splice(r,1),this._spliceDependentPositionalColumns(n.RecordSetAddress,r,o);let a=this.pict.views.PictFormMetacontroller.filterViews(t=>{if(!t.isPictSectionForm)return!1;let e=t.getGroups();for(let t=0;t<e.length;t++)if(e[t].RecordSetAddress==n.RecordSetAddress)return!0;return!1});for(let t=0;t<a.length;t++)a[t].render();this._rebuildDependentDynamicColumnViews(n.RecordSetAddress),this.pict.providers.DynamicSolver.solveViews(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}_rebuildDependentDynamicColumnViews(t){if("string"!=typeof t||t.length<1)return;if(!this.pict.views.PictFormMetacontroller)return;let e=this.pict.views.PictFormMetacontroller.filterViews(e=>{if(!e.isPictSectionForm)return!1;let i=e.getGroups();for(let e=0;e<i.length;e++){let n=i[e].DynamicColumns;if(Array.isArray(n))for(let e=0;e<n.length;e++)if(n[e]&&n[e].SourceAddress===t)return!0}return!1});for(let t=0;t<e.length;t++){let i=e[t],n=i.getGroups();for(let t=0;t<n.length;t++){let e=n[t];Array.isArray(e.DynamicColumns)&&e.DynamicColumns.length>0&&this.fable.ManifestFactory&&"function"==typeof this.fable.ManifestFactory._resolveDynamicColumns&&this.fable.ManifestFactory._resolveDynamicColumns(i,e)}i.rebuildCustomTemplate(),i.render()}}_spliceDependentPositionalColumns(t,e,i){if("string"!=typeof t||t.length<1)return;if(!this.pict.views.PictFormMetacontroller)return;let n=this.fable.ManifestFactory;if(!n||"function"!=typeof n._parseDynamicColumnTemplate)return;let r=this.pict.views.PictFormMetacontroller.filterViews(t=>t.isPictSectionForm);for(let o=0;o<r.length;o++){let a=r[o],s=a.getGroups();for(let r=0;r<s.length;r++){let o=s[r];if(!Array.isArray(o.DynamicColumns)||o.DynamicColumns.length<1)continue;let c=a.sectionManifest.getValueByHash(a.getMarshalDestinationObject(),o.RecordSetAddress);if(Array.isArray(c)&&!(c.length<1))for(let r=0;r<o.DynamicColumns.length;r++){let s=o.DynamicColumns[r];if(!s||s.SourceAddress!==t)continue;if("Position"!==s.KeyBy)continue;if("string"!=typeof s.InformaryDataAddressTemplate)continue;let l=[];for(let t=0;t<i;t++)l[t]=n._parseDynamicColumnTemplate(s.InformaryDataAddressTemplate,{__Index:t,__RowNumber:t+1});for(let t=0;t<c.length;t++){let n=c[t];if(!n||"object"!=typeof n)continue;for(let t=e;t<i-1;t++){if(!l[t]||!l[t+1])continue;let e=a.sectionManifest.getValueByHash(n,l[t+1]);a.sectionManifest.setValueByHash(n,l[t],e)}let r=l[i-1];r&&a.sectionManifest.setValueByHash(n,r,void 0)}}}}}},e.exports.default_configuration=r},{"pict-provider":9}],49:[function(t,e,i){const n=t("pict-provider"),r=t("../providers/Pict-Provider-DynamicInput.js"),o=t("./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates.js"),a=t("./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates-ReadOnly.js"),s=t("../templates/Pict-Template-Metacontroller-ValueSetWithGroup.js"),c=t("../templates/Pict-Template-Metatemplate-Input.js"),l=t("../templates/Pict-Template-Metatemplate-InputWithHashAddress.js"),p=t("../templates/Pict-Template-Metatemplate-InputWithView.js"),d=t("../templates/Pict-Template-Metatemplate-InputWithViewAndHashAddress.js"),u=t("../templates/Pict-Template-Metatemplate-InputWithViewAndDescriptorAddress.js"),h=t("../templates/Pict-Template-ControlFromDynamicManifest.js"),m=t("../templates/Pict-Template-ControlFromDynamicManifestForHash.js"),g=t("../templates/Pict-Template-DyanmicView-Value.js"),f=t("../templates/Pict-Template-DyanmicView-ValueByHash.js"),D=t("../templates/Pict-Template-TabularRowLabels.js"),y=t("../templates/Pict-Template-TabularEditingControls.js"),v=t("../templates/Pict-Template-Proxy-PluckJoinUnique.js"),b={ProviderIdentifier:"Pict-DynamicForms-MetaTemplates-Basic",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){var n;super(t,Object.assign({},JSON.parse(JSON.stringify(b)),e),i),this.options,this.pict,this.log,this.pict.addProviderSingleton("DynamicInput",r.default_configuration,r),this.pict.addTemplate(s),this.pict.addTemplate(c),this.pict.addTemplate(l),this.pict.addTemplate(p),this.pict.addTemplate(d),this.pict.addTemplate(u),this.pict.addTemplate(v),this.pict.addTemplate(h),this.pict.addTemplate(m),this.pict.addTemplate(g),this.pict.addTemplate(f),this.pict.addTemplate(D),this.pict.addTemplate(y),null!==(n=this.options)&&void 0!==n&&n.MetaTemplateSet&&"object"==typeof this.options.MetaTemplateSet?this.injectTemplateSet(this.options.MetaTemplateSet):this.injectTemplateSet(o),this.injectTemplateSet(a)}injectTemplateSet(t){var e,i,n,r,a,s;let c="PictFormsUnknown",l=[],p={};c=null!==(e=null===(i=this.options)||void 0===i?void 0:i.MetaTemplateSet)&&void 0!==e?e:c,l=null!==(n=null===(r=this.options)||void 0===r||null===(r=r.MetaTemplateSet)||void 0===r?void 0:r.Templates)&&void 0!==n?n:l,c=null!==(a=null==t?void 0:t.TemplatePrefix)&&void 0!==a?a:c,l=null!==(s=null==t?void 0:t.Templates)&&void 0!==s?s:l;for(let t=0;t<l.length;t++){let e=l[t],i="".concat(c).concat(e.HashPostfix);p[i]={Hash:i,Template:e.Template},e.hasOwnProperty("DefaultInputExtensions")&&(p[i].DefaultInputExtensions=JSON.parse(JSON.stringify(e.DefaultInputExtensions)))}for(let t=0;t<o.Templates.length;t++){let e=o.Templates[t],i="".concat(c).concat(e.HashPostfix);i in p||(p[i]={Hash:i,Template:e.Template},e.hasOwnProperty("DefaultInputExtensions")&&(p[i].DefaultInputExtensions=JSON.parse(JSON.stringify(e.DefaultInputExtensions))))}let d=Object.keys(p);this.log.info("Pict Form Section Provider for [".concat(c,"] Loaded ").concat(d.length," templates."));for(let t=0;t<d.length;t++){let e=p[d[t]];if(this.pict.TemplateProvider.addTemplate(e.Hash,e.Template),e.hasOwnProperty("DefaultInputExtensions"))for(let t=0;t<e.DefaultInputExtensions.length;t++)this.pict.providers.DynamicInput.addDefaultInputProvider(e.Hash,e.DefaultInputExtensions[t])}}},e.exports.default_configuration=b},{"../providers/Pict-Provider-DynamicInput.js":43,"../templates/Pict-Template-ControlFromDynamicManifest.js":89,"../templates/Pict-Template-ControlFromDynamicManifestForHash.js":90,"../templates/Pict-Template-DyanmicView-Value.js":91,"../templates/Pict-Template-DyanmicView-ValueByHash.js":92,"../templates/Pict-Template-Metacontroller-ValueSetWithGroup.js":93,"../templates/Pict-Template-Metatemplate-Input.js":94,"../templates/Pict-Template-Metatemplate-InputWithHashAddress.js":95,"../templates/Pict-Template-Metatemplate-InputWithView.js":96,"../templates/Pict-Template-Metatemplate-InputWithViewAndDescriptorAddress.js":97,"../templates/Pict-Template-Metatemplate-InputWithViewAndHashAddress.js":98,"../templates/Pict-Template-Proxy-PluckJoinUnique.js":99,"../templates/Pict-Template-TabularEditingControls.js":100,"../templates/Pict-Template-TabularRowLabels.js":101,"./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates-ReadOnly.js":57,"./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates.js":58,"pict-provider":9}],50:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Provider-FormPersistence",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1,AppIdentifier:!1,FormTypeIdentifier:!1,AutoPersistOnDataChange:!1,AutoPersistDebounceMs:2e3,AutoPersistBundleWithForm:!0,StorageKeyPrefix:"PSF",BundleSourceAddress:"Bundle",FormDataSourceAddress:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log,this._activeFormGUID=null,this._persistTimerHandle=null,this.storageAdapter=this.createLocalStorageAdapter()}createLocalStorageAdapter(){let t=this;return{setItem:function(e,i){try{return"undefined"!=typeof window&&window.localStorage?(window.localStorage.setItem(e,i),!0):(t.log.warn("FormPersistence: localStorage is not available."),!1)}catch(e){return t.log.error("FormPersistence: localStorage setItem error: ".concat(e.message)),!1}},getItem:function(e){try{return"undefined"!=typeof window&&window.localStorage?window.localStorage.getItem(e):(t.log.warn("FormPersistence: localStorage is not available."),null)}catch(e){return t.log.error("FormPersistence: localStorage getItem error: ".concat(e.message)),null}},removeItem:function(e){try{return"undefined"!=typeof window&&window.localStorage?(window.localStorage.removeItem(e),!0):(t.log.warn("FormPersistence: localStorage is not available."),!1)}catch(e){return t.log.error("FormPersistence: localStorage removeItem error: ".concat(e.message)),!1}},getKeysWithPrefix:function(e){let i=[];try{if("undefined"!=typeof window&&window.localStorage)for(let t=0;t<window.localStorage.length;t++){let n=window.localStorage.key(t);n&&n.startsWith(e)&&i.push(n)}}catch(e){t.log.error("FormPersistence: localStorage getKeysWithPrefix error: ".concat(e.message))}return i}}}setStorageAdapter(t){if("object"!=typeof t||null===t)return this.log.error("FormPersistence setStorageAdapter called with an invalid adapter."),!1;let e=["setItem","getItem","removeItem","getKeysWithPrefix"];for(let i=0;i<e.length;i++)if("function"!=typeof t[e[i]])return this.log.error("FormPersistence setStorageAdapter: adapter is missing required method [".concat(e[i],"].")),!1;return this.storageAdapter=t,!0}getAppIdentifier(){return this.options.AppIdentifier?this.options.AppIdentifier:this.pict&&this.pict.settings&&this.pict.settings.Product?this.pict.settings.Product:"DefaultApp"}getFormTypeIdentifier(){return this.options.FormTypeIdentifier?this.options.FormTypeIdentifier:"DefaultForm"}getStorageKey(t,e){let i="".concat(this.options.StorageKeyPrefix,":").concat(this.getAppIdentifier(),":").concat(this.getFormTypeIdentifier());return e?"".concat(i,":").concat(t,":").concat(e):"".concat(i,":").concat(t)}getIndexKey(){return this.getStorageKey("Index")}getFormIndex(){let t=this.getIndexKey(),e=this.storageAdapter.getItem(t);if(e)try{let t=JSON.parse(e);if("object"==typeof t&&null!==t&&"Records"in t)return t}catch(t){this.log.error("FormPersistence getFormIndex: failed to parse index: ".concat(t.message))}return{Records:{}}}_saveFormIndex(t){let e=this.getIndexKey();return this.storageAdapter.setItem(e,JSON.stringify(t))}newFormRecord(t,e){let i=this.fable.getUUID(),n=(new Date).toISOString(),r=this.getFormIndex();return r.Records[i]={GUID:i,Created:n,Modified:n,BundleContextIdentifier:t||null,Synced:!1,SyncedTimestamp:null,Label:e||null},this._saveFormIndex(r),this.log.info("FormPersistence: created new form record [".concat(i,"]").concat(e?' labeled "'.concat(e,'"'):"",".")),i}saveFormData(t){if(!t)return this.log.error("FormPersistence saveFormData called without an instance GUID."),!1;let e,i,n=this.getFormIndex();if(!(t in n.Records))return this.log.error("FormPersistence saveFormData called for unknown GUID [".concat(t,"].")),!1;try{e=this.options.FormDataSourceAddress?this.pict.resolveStateFromAddress(this.options.FormDataSourceAddress):this.pict.providers.DataBroker.marshalDestinationObject}catch(t){return this.log.error("FormPersistence saveFormData: failed to resolve form data source: ".concat(t.message)),!1}try{i=JSON.stringify(e)}catch(t){return this.log.error("FormPersistence saveFormData: failed to serialize form data: ".concat(t.message)),!1}let r=this.getStorageKey("Form",t),o=this.storageAdapter.setItem(r,i);return o&&(n.Records[t].Modified=(new Date).toISOString(),n.Records[t].Synced=!1,this._saveFormIndex(n)),o}getFormDataRaw(t){if(!t)return this.log.error("FormPersistence getFormDataRaw called without an instance GUID."),null;let e=this.getStorageKey("Form",t);return this.storageAdapter.getItem(e)}loadFormData(t){if(!t)return this.log.error("FormPersistence loadFormData called without an instance GUID."),!1;let e,i,n=this.getStorageKey("Form",t),r=this.storageAdapter.getItem(n);if(null===r)return this.log.warn("FormPersistence loadFormData: no data found for GUID [".concat(t,"].")),!1;try{e=JSON.parse(r)}catch(e){return this.log.error("FormPersistence loadFormData: failed to parse stored data for GUID [".concat(t,"]: ").concat(e.message)),!1}try{i=this.options.FormDataSourceAddress?this.pict.resolveStateFromAddress(this.options.FormDataSourceAddress):this.pict.providers.DataBroker.marshalDestinationObject}catch(t){return this.log.error("FormPersistence loadFormData: failed to resolve destination object: ".concat(t.message)),!1}let o=Object.keys(i);for(let t=0;t<o.length;t++)delete i[o[t]];return Object.assign(i,e),this.pict.views&&this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.marshalToView(),this.log.info("FormPersistence: loaded form data for GUID [".concat(t,"].")),!0}deleteFormRecord(t){if(!t)return this.log.error("FormPersistence deleteFormRecord called without an instance GUID."),!1;let e=this.getStorageKey("Form",t);this.storageAdapter.removeItem(e);let i=this.getFormIndex();return t in i.Records&&(delete i.Records[t],this._saveFormIndex(i)),this.log.info("FormPersistence: deleted form record [".concat(t,"].")),!0}saveBundleData(t){if(!t)return this.log.error("FormPersistence saveBundleData called without a context identifier."),!1;let e,i;try{e=this.pict.resolveStateFromAddress(this.options.BundleSourceAddress)}catch(t){return this.log.error("FormPersistence saveBundleData: failed to resolve bundle data source: ".concat(t.message)),!1}try{i=JSON.stringify(e)}catch(t){return this.log.error("FormPersistence saveBundleData: failed to serialize bundle data: ".concat(t.message)),!1}let n=this.getStorageKey("Bundle",t);return this.storageAdapter.setItem(n,i)}loadBundleData(t){if(!t)return this.log.error("FormPersistence loadBundleData called without a context identifier."),!1;let e,i,n=this.getStorageKey("Bundle",t),r=this.storageAdapter.getItem(n);if(null===r)return this.log.warn("FormPersistence loadBundleData: no data found for context [".concat(t,"].")),!1;try{e=JSON.parse(r)}catch(e){return this.log.error("FormPersistence loadBundleData: failed to parse stored data for context [".concat(t,"]: ").concat(e.message)),!1}try{i=this.pict.resolveStateFromAddress(this.options.BundleSourceAddress)}catch(t){return this.log.error("FormPersistence loadBundleData: failed to resolve bundle destination: ".concat(t.message)),!1}let o=Object.keys(i);for(let t=0;t<o.length;t++)delete i[o[t]];return Object.assign(i,e),this.log.info("FormPersistence: loaded bundle data for context [".concat(t,"].")),!0}deleteBundleData(t){if(!t)return this.log.error("FormPersistence deleteBundleData called without a context identifier."),!1;let e=this.getStorageKey("Bundle",t);return this.storageAdapter.removeItem(e),this.log.info("FormPersistence: deleted bundle data for context [".concat(t,"].")),!0}listFormRecords(){let t=this.getFormIndex();return Object.values(t.Records)}listUnsyncedFormRecords(){let t=this.listFormRecords(),e=[];for(let i=0;i<t.length;i++)t[i].Synced||e.push(t[i]);return e}listFormRecordsForContext(t){let e=this.listFormRecords(),i=[];for(let n=0;n<e.length;n++)e[n].BundleContextIdentifier===t&&i.push(e[n]);return i}markFormSynced(t){if(!t)return this.log.error("FormPersistence markFormSynced called without an instance GUID."),!1;let e=this.getFormIndex();return t in e.Records?(e.Records[t].Synced=!0,e.Records[t].SyncedTimestamp=(new Date).toISOString(),this._saveFormIndex(e),!0):(this.log.warn("FormPersistence markFormSynced: GUID [".concat(t,"] not found in index.")),!1)}markFormDirty(t){if(!t)return this.log.error("FormPersistence markFormDirty called without an instance GUID."),!1;let e=this.getFormIndex();return t in e.Records?(e.Records[t].Synced=!1,this._saveFormIndex(e),!0):(this.log.warn("FormPersistence markFormDirty: GUID [".concat(t,"] not found in index.")),!1)}getActiveFormGUID(){return this._activeFormGUID}setActiveFormGUID(t){this._activeFormGUID=t||null}persistActiveForm(){if(!this._activeFormGUID)return this.log.warn("FormPersistence persistActiveForm: no active form GUID set."),!1;let t=this.saveFormData(this._activeFormGUID);if(t&&this.options.AutoPersistBundleWithForm){let t=this.getFormIndex().Records[this._activeFormGUID];t&&t.BundleContextIdentifier&&this.saveBundleData(t.BundleContextIdentifier)}return t}triggerDebouncedPersist(){if(!this._activeFormGUID)return;this._persistTimerHandle&&clearTimeout(this._persistTimerHandle);let t=this;this._persistTimerHandle=setTimeout(function(){t.persistActiveForm(),t._persistTimerHandle=null},this.options.AutoPersistDebounceMs)}onFormDataChanged(){this.options.AutoPersistOnDataChange&&this.triggerDebouncedPersist()}},e.exports.default_configuration=r},{"pict-provider":9}],51:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Informary",AutoInitialize:!1,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log,this.genericManifest=this.pict.newManyfest({Scope:"GenericInformary"})}getFormElements(t){let e='[data-i-form="'.concat(t,'"]');return this.pict.ContentAssignment.getElement(e)}getContentBrowserAddress(t,e,i,n){return i?'[data-i-form="'.concat(t,'"][data-i-datum="').concat(e,'"][data-i-container="').concat(i,'"][data-i-index="').concat(n,'"]'):'[data-i-form="'.concat(t,'"][data-i-datum="').concat(e,'"]')}getComposedContainerAddress(t,e,i){return"".concat(t,"[").concat(e,"].").concat(i)}marshalFormToData(t,e,i,n,r){const o="object"==typeof i?i:this.genericManifest,a=this.getFormElements(e),s=null==n&&n,c="number"==typeof r?String(r):r;for(const i of a)this.marshalSpecicificFormElementToData(e,i,o,t,s,c)}marshalSpecicificFormElementToData(t,e,i,n,r,o){const a=e.getAttribute("data-i-datum"),s=e.getAttribute("data-i-container"),c=e.getAttribute("data-i-index");if(r&&r!==a)return!1;if(o&&c&&o!==c)return!1;let l=this.pict.ContentAssignment.readContent(this.getContentBrowserAddress(t,a,s,c));if(this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling BrowserForm Data ".concat(l," from form element [").concat(a,"] in container [").concat(s,"] at index [").concat(c,"] to the datum address [").concat(a,"].")),null==l)return!1;s?i.setValueAtAddress(n,this.getComposedContainerAddress(s,c,a),l):i.setValueAtAddress(n,a,l)}marshalDataToForm(t,e,i){let n="object"==typeof i?i:this.genericManifest,r=this.getFormElements(e);for(let i=0;i<r.length;i++)this.marshalSpecificElementDataToForm(e,r[i],n,t)}marshalSpecificElementDataToForm(t,e,i,n){let r=e.getAttribute("data-i-datum"),o=e.getAttribute("data-i-container"),a=Number(e.getAttribute("data-i-index"));if(!r)return this.log.warn("Informary found a form element without a datum address. Skipping."),!1;if(o){let e=i.getValueAtAddress(n,this.getComposedContainerAddress(o,a,r));this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling App State data ".concat(e," to Browser Form element [").concat(r,"] in container [").concat(o,"] at index [").concat(a,"].")),null!=e&&this.pict.ContentAssignment.assignContent(this.getContentBrowserAddress(t,r,o,a),e)}else{let e=i.getValueAtAddress(n,r);this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling App State data ".concat(e," to Browser Form element [").concat(r,"].")),null!=e&&this.pict.ContentAssignment.assignContent(this.getContentBrowserAddress(t,r,o,a),e)}}manualMarshalDataToFormByInput(t){if("object"!=typeof t)return this.log.error("Informary failed to marshal data to form because the input is not an object."),!1;if(!("Hash"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a hash."),!1;if(!("PictForm"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a PictForm object."),!1;let e=this.pict.views[t.PictForm.ViewHash];return e?this.pict.ContentAssignment.assignContent(t.Macro.HTMLSelector,e.getValueByHash(t.Hash)):(this.log.error("Informary failed to marshal data to form because the input view is missing."),!1)}manualMarshalTabularDataToFormByInput(t,e){if("object"!=typeof t)return this.log.error("Informary failed to marshal data to form because the input is not an object."),!1;if(!("Hash"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a hash."),!1;if(!("PictForm"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a PictForm object."),!1;let i=this.pict.views[t.PictForm.ViewHash];return i?this.pict.ContentAssignment.assignContent("".concat(t.Macro.HTMLSelectorTabular,'[data-i-index="').concat(e,'"]'),i.getTabularValueByHash(t.PictForm.GroupIndex,t.PictForm.InputIndex,e)):(this.log.error("Informary failed to marshal data to form because the input view is missing."),!1)}manualMarshalDataToForm(t,e){return this.pict.ContentAssignment.assignContent(t,e)}manualMarshalTabularDataToForm(t,e,i){return this.pict.ContentAssignment.assignContent("".concat(t,'[data-i-index="').concat(i,'"]'),e)}},e.exports.default_configuration=r},{"pict-provider":9}],52:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-InputExtension",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i)}getInputHTMLID(t){return"#INPUT-FOR-".concat(t)}getTabularInputHTMLID(t,e){return"#TABULAR-DATA-".concat(t,"-").concat(e)}onInputInitialize(t,e,i,n,r,o,a){return!0}onInputInitializeTabular(t,e,i,n,r,o,a){return!0}onDataChange(t,e,i,n,r){return!0}onDataChangeTabular(t,e,i,n,r,o){return!0}onDataMarshalToForm(t,e,i,n,r,o,a){return!0}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return!0}onDataRequest(t,e,i,n){return!0}onDataRequestTabular(t,e,i,n,r){return!0}onEvent(t,e,i,n,r,o){return!0}onAfterEventCompletion(t,e,i,n,r,o){return!0}onEventTabular(t,e,i,n,r,o,a){return!0}onAfterEventTabularCompletion(t,e,i,n,r,o,a){return!0}},e.exports.default_configuration=r},{"pict-provider":9}],53:[function(t,e,i){const n=t("pict-provider");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}filterList(t,e,i){if("object"!=typeof e)return this.log.warn("FilterList failed because the input is not an object."),i;if(!("PictForm"in e))return this.log.warn("FilterList failed because the input does not have a PictForm stanza object."),i;if(!Array.isArray(i))return this.log.warn("FilterList for input [".concat(e.Hash,"] failed because the list is not an array.")),[];let n=e.PictForm.ListFilterRules;if(!n||0==n.length||!Array.isArray(n))return i;let r=i.slice(0);for(let o=i.length-1;o>=0;o--){let a=i[o],s=!0;for(let r=0;r<n.length;r++){let o,c=n[r],l="FilteredRecordComparisonValue"in c&&c.FilteredRecordComparisonValueAddress;switch(o=l?t.getValueByHash(l):a.id,c.FilterType){case"Explicit":let n=c.FilterValueAddress,r="FilterValueComparison"in c?c.FilterValueComparison:"==",l="IgnoreEmptyValue"in c&&c.IgnoreEmptyValue,p=t.getValueByHash(n);if(l&&(!p||""==p))break;switch(r.toLowerCase()){case"=":case"==":case"eq":o!=p&&(this.fable.log.debug("FilterList: ".concat(o," != ").concat(p,"; distilling is removing from the outcome array.")),s=!1);break;case"!=":case"ne":case"~=":case"ae":o==p&&(this.fable.log.debug("FilterList: ".concat(o," == ").concat(p,"; distilling is removing from the outcome array.")),s=!1)}break;case"CrossMap":let d,u=c.JoinListAddress,h="JoinListAddressGlobal"in c&&c.JoinListAddressGlobal,m=c.JoinListValueAddress,g=c.ExternalValueAddress,f=c.FilterToValueAddress,D="IgnoreEmpty"in c&&c.IgnoreEmpty;if(h){const e={Fable:this.pict,Pict:this.pict,AppData:this.pict.AppData,Bundle:this.pict.Bundle,View:t};d=this.pict.manifest.getValueAtAddress(e,u)}else d=t.getValueByHash(u);let y=t.getValueByHash(f);if(D&&(!y||""==y))break;if(!Array.isArray(d)&&null!=d&&"object"==typeof d){let t=Object.keys(d),e=[];for(let i=0;i<t.length;i++)e.push(d[t[i]]);d=e}if(!Array.isArray(d)||0==d.length)break;let v=!1;for(let t=0;t<d.length;t++){let e=this.pict.manifest.getValueAtAddress(d[t],m),i=this.pict.manifest.getValueAtAddress(d[t],g);if((!D||e&&""!=e)&&(y==i&&e==o)){v=!0;break}}s=v&&s;break;default:let b=this.pict.providers[c.FilterType];b&&(s=b.filterList(t,e,i,a))}}s||r.splice(o,1)}return r}},e.exports.default_configuration={ProviderIdentifier:"Pict-DynamicForms-ListDistilling",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1}},{"pict-provider":9}],54:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-MetaList",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.fable,this.log,this.UUID,this.Hash,this.computedLists={},this.listDefinitions={}}getList(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.listDefinitions[t].Dynamic){const i=[],n=this.pict.getUUID(),r=n.substring(0,8),o="AppData._MetaLists.".concat(r);return this.pict.manifest.setValueByHash(this.pict,o,i),this.pict.TransactionTracking.registerTransaction(n),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("GetPickList:".concat(t,":").concat(o,":").concat(JSON.stringify(e)),n),this.pict.views.PictFormMetacontroller.finalizeTransaction(n),delete this.pict.AppData._MetaLists[r],i}return t in this.computedLists?this.computedLists[t]:[]}hasList(t){return t in this.computedLists}buildViewSpecificLists(t){let e=Array.isArray(t)?t:Object.keys(this.fable.views);for(let t=0;t<e.length;t++){let i=e[t],n=this.fable.views[i];if(n.isPictSectionForm){let t=n.sectionDefinition;if("PickLists"in t&&Array.isArray(t.PickLists))for(let e=0;e<t.PickLists.length;e++){let i=t.PickLists[e];this.buildList(i)}}}}rebuildListByHash(t){t in this.listDefinitions&&this.buildList(this.listDefinitions[t])}buildList(t){if("object"!=typeof t)return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList that is not an object. Skipping.")),!1;if(!("Hash"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a Hash. Skipping.")),!1;t.Hash in this.listDefinitions||(this.listDefinitions[t.Hash]=t,this.computedLists[t.Hash]=[]);let e=[];if(!("ListAddress"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a ListAddress. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!("ListSourceAddress"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a ListSourceAddress. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!("TextTemplate"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a TextTemplate. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!("IDTemplate"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a IDTemplate. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!this.pict.views.PictFormMetacontroller)return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] requires PictFormMetacontroller but not found. Skipping.")),this.computedLists[t.Hash]=[],!1;let i=this.pict.providers.DataBroker.getValueByHash(t.ListSourceAddress);if(!i)return this.computedLists[t.Hash]=[],!1;let n={};if(Array.isArray(i))for(let r=0;r<i.length;r++){let o=i[r];if(o&&"object"==typeof o){let i=this.pict.parseTemplate(t.TextTemplate,o),r=this.pict.parseTemplate(t.IDTemplate,o);if(!i||!r){this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] failed to generate the Text or ID for PickList [").concat(t.Hash,"]. Skipping."));continue}if(t.Unique&&r in n)continue;n[r]=!0,e.push({id:r,text:i})}}t.Sorted&&e.sort((t,e)=>t.text.localeCompare(e.text)),this.computedLists[t.Hash]=e}},e.exports.default_configuration=r},{"pict-provider":9}],55:[function(t,e,i){const n=t("pict-provider"),r=t("../views/Pict-View-DynamicForm.js"),o={ProviderIdentifier:"Pict-DynamicForms-Provider-MetatemplateGenerator",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},a={Hash:"DynamicInputs",Name:"Dynamic Inputs",ViewHash:"PictFormMetacontroller-DynamicInputs",IncludeInMetatemplateSectionGeneration:!1,Manifests:{Section:{Scope:"MetaTemplate",Sections:[{Hash:"DynamicInputs",Name:"Dynamic Inputs"}],Descriptors:{"MetaTemplate.DynamicInputPlaceholder":{Name:"DynamicInputPlaceholder",Hash:"DynamicInputPlaceholder",DataType:"String",Macro:{HTMLSelector:""},PictForm:{Section:"DynamicInputs"}}}}}};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(o)),e),i),this.pict,this.log,this.dynamicInputView,this.baseTemplatePrefix="Pict-MT-Base"}onInitializeAsync(t){return this.createOnDemandMetatemplateView(),super.onInitializeAsync(t)}createOnDemandMetatemplateView(){const t=JSON.parse(JSON.stringify(a));t.ViewHash in this.pict.views?this.dynamicInputView=this.pict.views[t.ViewHash]:this.dynamicInputView=this.pict.addView(t.ViewHash,t,r)}getMetatemplateTemplateReferenceRaw(t,e,i){return t.checkViewSpecificTemplate(e)?"\n{~T:".concat(t.formsTemplateSetPrefix).concat(e,":").concat(i,"~}"):t.checkThemeSpecificTemplate(e)?"\n{~T:".concat(t.defaultTemplatePrefix).concat(e,":").concat(i,"~}"):""}getMetatemplateTemplateReference(t,e,i){return this.getMetatemplateTemplateReferenceRaw(t,e,'Pict.views["'.concat(t.Hash,'"].').concat(i))}getInputMetatemplateTemplateReference(t,e,i,n){let r="-Template-Input-InputType-".concat(i),o="-Template-Input-DataType-".concat(e);if(i){let e=this.getMetatemplateTemplateReference(t,r,n);if(e)return e}let a=this.getMetatemplateTemplateReference(t,o,n);return a||this.getMetatemplateTemplateReference(t,"-Template-Input",n)}getTabularInputMetatemplateTemplateReference(t,e,i,n,r,o){let a="-TabularTemplate-Begin-Input-InputType-".concat(i),s="-TabularTemplate-Mid-Input-InputType-".concat(i),c="-TabularTemplate-End-Input-InputType-".concat(i),l="-TabularTemplate-Begin-Input-DataType-".concat(e),p="-TabularTemplate-Mid-Input-DataType-".concat(e),d="-TabularTemplate-End-Input-DataType-".concat(e),u=this.getMetatemplateTemplateReference(t,"-TabularTemplate-Mid-Input",n),h=this.getMetatemplateTemplateReference(t,"-TabularTemplate-InformaryAddress-Input",n);if(i){let e=this.getMetatemplateTemplateReference(t,a,n),i=this.getMetatemplateTemplateReference(t,c,n),r=this.getMetatemplateTemplateReference(t,s,n);if(u=r||u,e&&i)return e+u+h+i}let m=this.getMetatemplateTemplateReference(t,l,n),g=this.getMetatemplateTemplateReference(t,d,n);if(m&&g){let e=this.getMetatemplateTemplateReference(t,p,n);return u=e||u,m+u+h+g}return m=this.getMetatemplateTemplateReference(t,"TabularTemplate-Begin-Input",n),g=this.getMetatemplateTemplateReference(t,"TabularTemplate-End-Input",n),m&&g?m+u+h+g:(this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] catastrophic error generating tabular metatemplate: missing input template for Data Type ").concat(e," and Input Type ").concat(i,", Data Address ").concat(n,", Group Index ").concat(r," and Record Subaddress ").concat(o,".")),"")}getVerticalInputMetatemplateTemplateReference(t,e,i,n){let r="-VerticalTemplate-Input-InputType-".concat(i),o="-VerticalTemplate-Input-DataType-".concat(e);if(i){let e=this.getMetatemplateTemplateReference(t,r,n);if(e)return e}let a=this.getMetatemplateTemplateReference(t,o,n);return a||this.getMetatemplateTemplateReference(t,"-Template-Input",n)}getGroupLayoutProvider(t,e){let i="string"==typeof e.Layout?e.Layout:"string"==typeof t.sectionDefinition.DefaultGroupLayout?t.sectionDefinition.DefaultGroupLayout:"Record";switch(i){case"Tabular":return this.pict.providers["Pict-Layout-Tabular"];case"Record":return this.pict.providers["Pict-Layout-Record"];case"Vertical":return this.pict.providers["Pict-Layout-VerticalRecord"];default:return"Pict-Layout-".concat(i)in this.pict.providers?this.pict.providers["Pict-Layout-".concat(i)]:this.pict.providers["Pict-Layout-Record"]}}rebuildCustomTemplate(t){let e="";this.pict.views.PictFormMetacontroller&&"formTemplatePrefix"in this.pict.views.PictFormMetacontroller&&!("defaultTemplatePrefix"in t)&&(t.defaultTemplatePrefix=this.pict.views.PictFormMetacontroller.formTemplatePrefix),e+=this.getMetatemplateTemplateReference(t,"-Template-Wrap-Prefix","sectionDefinition"),e+=this.getMetatemplateTemplateReference(t,"-Template-Section-Prefix","sectionDefinition");for(let i=0;i<t.sectionDefinition.Groups.length;i++){let n=t.sectionDefinition.Groups[i];n.GroupIndex=i,n.SectionTabularRowVirtualTemplateHash="Pict-Form-Template-TabularRow-Virtual-".concat(t.options.Hash,"-G").concat(n.GroupIndex),n.SectionTabularRowTemplateHash="Pict-Form-Template-TabularRow-".concat(t.options.Hash,"-G").concat(n.GroupIndex),e+=this.getGroupLayoutProvider(t,n).generateGroupLayoutTemplate(t,n)}e+=this.getMetatemplateTemplateReference(t,"-Template-Section-Postfix","sectionDefinition"),e+=this.getMetatemplateTemplateReference(t,"-Template-Wrap-Postfix","sectionDefinition"),this.pict.providers.MetatemplateMacros.rebuildMacros(t),this.pict.TemplateProvider.addTemplate(t.options.SectionTemplateHash,e)}},e.exports.default_configuration=o},{"../views/Pict-View-DynamicForm.js":103,"pict-provider":9}],56:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-MetatemplateMacros",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.fable,this.log,this.UUID,this.Hash,this.additionalInputMacros={},"AdditionalInputMacros"in this.options&&(this.additionalInputMacros=Object.assign(this.additionalInputMacros,this.options.AdditionalInputMacros)),"CustomInputMacros"in this.pict.settings&&(this.AdditionalInputMacros=Object.assign(this.additionalInputMacros,this.pict.settings.CustomInputMacros)),this.additionalGroupMacros={},"AdditionalGroupMacros"in this.options&&(this.additionalGroupMacros=Object.assign(this.additionalGroupMacros,this.options.AdditionalGroupMacros)),"CustomGroupMacros"in this.pict.settings&&(this.additionalGroupMacros=Object.assign(this.additionalGroupMacros,this.pict.settings.CustomGroupMacros)),this.additionalSectionMacros={},"AdditionalSectionMacros"in this.options&&(this.additionalSectionMacros=Object.assign(this.additionalSectionMacros,this.options.AdditionalSectionMacros)),"CustomSectionMacros"in this.pict.settings&&(this.additionalSectionMacros=Object.assign(this.additionalSectionMacros,this.pict.settings.CustomSectionMacros))}buildInputMacros(t,e){let i=Object.keys(t.options.MacroTemplates.Input),n=Object.keys(this.additionalInputMacros);"Macro"in e||(e.Macro={});for(let n=0;n<i.length;n++)e.Macro[i[n]]=t.pict.parseTemplate(t.options.MacroTemplates.Input[i[n]],e,null,[t]);for(let i=0;i<n.length;i++)e.Macro[n[i]]=t.pict.parseTemplate(this.additionalInputMacros[n[i]],e,null,[t])}rebuildMacros(t){if(!("MacroTemplates"in t.options))return!1;let e=Object.keys(t.options.MacroTemplates.Section),i=Object.keys(this.additionalSectionMacros);"object"!=typeof t.sectionDefinition.Macro&&(t.sectionDefinition.Macro={});for(let i=0;i<e.length;i++)t.sectionDefinition.Macro[e[i]]=t.pict.parseTemplate(t.options.MacroTemplates.Section[e[i]],t.sectionDefinition,null,[t]);for(let e=0;e<i.length;e++)t.sectionDefinition.Macro[i[e]]=t.pict.parseTemplate(this.additionalSectionMacros[i[e]],t.sectionDefinition,null,[t]);for(let e=0;e<t.sectionDefinition.Groups.length;e++){let i=t.sectionDefinition.Groups[e],n=Object.keys(t.options.MacroTemplates.Group),r=Object.keys(this.additionalGroupMacros);"Macro"in i||(i.Macro={});for(let e=0;e<n.length;e++)i.Macro[n[e]]=t.pict.parseTemplate(t.options.MacroTemplates.Group[n[e]],i,null,[t]);for(let e=0;e<r.length;e++)i.Macro[r[e]]=t.pict.parseTemplate(this.additionalGroupMacros[r[e]],i,null,[t]);Array.isArray(i.Rows)||(i.Rows=[]);for(let e=0;e<i.Rows.length;e++){let n=i.Rows[e];for(let e=0;e<n.Inputs.length;e++)this.buildInputMacros(t,n.Inputs[e])}if(i.supportingManifest){let e=Object.keys(i.supportingManifest.elementDescriptors);for(let n=0;n<e.length;n++)this.buildInputMacros(t,i.supportingManifest.elementDescriptors[e[n]])}}}},e.exports.default_configuration=r},{"pict-provider":9}],57:[function(t,e,i){e.exports={TemplatePrefix:"Pict-Forms-ReadOnly",Templates:[{HashPostfix:"-Template-Form-Container-Header",Template:'\n\x3c!-- Pict Form Metacontroller container Header\n\n ;,//;, ,;/\n o:::::::;;///\n>::::::::;;\\ \'\'\\\\\'" \';\nGlug glug glug Oo... --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-FormContainer" class="pict-form">'},{HashPostfix:"-Template-Form-Container-Wrap-Prefix",Template:'\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-{~D:Record.options.Hash~}-Wrap" class="pict-form">'},{HashPostfix:"-Template-Form-Container",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="Pict-Form-Container-{~D:Record.options.Hash~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Custom",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="{~D:Record.options.CustomTargetID~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Wrap-Postfix",Template:"\n</div>\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Prefix",Template:"\n\t\x3c!-- Pict Form Wrap Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Postfix",Template:"\n\t\x3c!-- Pict Form Wrap Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Section-Prefix",Template:'\n\t\t\x3c!-- Form Section Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t<div class="pict-form-section">\n\t\t<h2>{~D:Record.Name~}</h2>\n'},{HashPostfix:"-Template-Section-Postfix",Template:"\n\t\t</div>\n\t\t\x3c!-- Form Section Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Prefix",Template:'\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<h3>Group: {~D:Record.Name~}</h3>\n'},{HashPostfix:"-Template-Row-Prefix",Template:"\n\t\t\t\t\x3c!-- Form Template Row Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t\t<div>\n"},{HashPostfix:"-Template-Row-Postfix",Template:"\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- Form Template Row Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Postfix",Template:"\n\t\t\t</div>\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <textarea disabled {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~}></textarea>\n"},{HashPostfix:"-Template-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <select disabled {~D:Record.Macro.ControlAttr~} id="SELECT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}"></select>\n'},{HashPostfix:"-Template-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled {~D:Record.Macro.ControlAttr~} id="DATETIME-INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}" type="datetime-local" value="" />\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector",DefaultInputExtensions:["Pict-Input-TabGroupSelector"],Template:'\n\t\t\t\t\t\x3c!-- InputType TabGroupSelector {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t\x3c!-- the TabSelector Input provider deals with populating this from the manifest. --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t\x3c!-- <span>{~D:Record.Name~}:</span> --\x3e\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="TAB-SELECT-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-TabElement",Template:"\n\t\t\t\x3c!-- Sections have \"tab groups\" which are defined by the hash of the Descriptor that hosts the current TabGroup value. --\x3e\n\t\t\t<a href=\"#\" id=\"TAB-{~D:Context[1].TabGroupHash~}-{~D:Record.Macro.RawHTMLID~}\" onclick=\"{~P~}.providers['Pict-Input-TabGroupSelector'].selectTabByViewHash('{~D:Context[0].Hash~}','{~D:Record.Hash~}', '{~D:Context[1].TabGroupHash~}')\">{~D:Context[1].TabGroupHash~}</a>\n"},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-EmptyGroupContent",Template:"\n\t\t\t\x3c!-- This is the template for if the tmpInput.PictForm.TabGroupSet array is empty. --\x3e\n\t\t\t<p>Warning! No tabs to select from for {~D:Record.TabGroupSetRawHTMLID~}</p>\n"},{HashPostfix:"-TuiGrid-Container",Template:'\n\t\t\t<div {~D:Record.Macro.ControlAttr~} id="{~D:Record.TuiGridHTMLID~}"></div>\n'},{HashPostfix:"-TuiGrid-Controls",Template:"\n\t\t\t<div>[ <a href=\"#\" onclick=\"{~P~}.providers['Pict-Layout-TuiGrid'].addRow('{~D:Context[0].Hash~}', {~D:Record.GroupIndex~})\">create</a> ]</div>\n"},{HashPostfix:"-TabularTemplate-Group-Prefix",Template:'\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Group-Postfix",Template:'\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div><a href="#" onclick="{~D:Record.Macro.TabularCreateRowFunctionCall~}">create</a></div>\n\t\t\t</div>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPrefix",Template:"\x3c!-- TabularTemplateRowHeader-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPostfix",Template:'\x3c!-- TabularTemplateRowHeader-ExtraPostfix --\x3e\n\t\t\t\t\t\t<th style="min-width:100px;"></th>\n'},{HashPostfix:"-TabularTemplate-Row-ExtraPrefix",Template:"\x3c!-- TabularTemplateRow-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-Row-ExtraPostfix",Template:"\x3c!-- TabularTemplateRow-ExtraPostfix--\x3e\n\t\t\t\t\t<td><a href=\"#\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].deleteDynamicTableRow({~D:Record.Group~},'{~D:Record.Key~}')\">del</a>\n\t\t\t\t\t<a href=\"#\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowUp({~D:Record.Group~},'{~D:Record.Key~}')\">up</a>\n\t\t\t\t\t<a href=\"#\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowDown({~D:Record.Group~},'{~D:Record.Key~}')\">down</a></td>\n"},{HashPostfix:"-TabularTemplate-RowHeader-Prefix",Template:"\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n"},{HashPostfix:"-TabularTemplate-HeaderCell",Template:'\n\t\t\t\t\t\t\x3c!-- Descriptor {~D:Record.Name~} [{~D:Record.Hash~}] -> {~D:Record.Address~} --\x3e\n\t\t\t\t\t\t<th data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">{~D:Record.Name~}</th>\n'},{HashPostfix:"-TabularTemplate-RowHeader-Postfix",Template:"\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n"},{HashPostfix:"-TabularTemplate-Row-Prefix",Template:'\n\t\t\t\t\t<tr data-tabular-row-index="{~D:Record.Key~}" data-tabular-group-index="{~D:Record.Group~}">{~T:TabularTemplateRow-ExtraPrefix~}\n'},{HashPostfix:"-TabularTemplate-Cell-Prefix",Template:'\n\t\t\t\t\t\t<td data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">\x3c!-- {~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Cell-Postfix",Template:"\n\t\t\t\t\t\t</td>\n"},{HashPostfix:"-TabularTemplate-Row-Postfix",Template:"\n\t\t\t\t\t{~T:TabularTemplateRow-ExtraPostfix~}</tr>"},{HashPostfix:"-TabularTemplate-Begin-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input",Template:' value="">'},{HashPostfix:"-TabularTemplate-Mid-Input",Template:" "},{HashPostfix:"-TabularTemplate-InformaryAddress-Input",Template:" data-i-index=\"{~D:Context[2].Key~}\" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].dataChangedTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\" "},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-String",Template:' value="">'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-Number",Template:' value="">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<textarea disabled {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} "},{HashPostfix:"-TabularTemplate-End-Input-InputType-TextArea",Template:" ></textarea>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" id="SELECT-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Option",Template:" value=\"\">\n\t\t\t\t\t<select disabled {~D:Record.Macro.ControlAttr~} id=\"SELECT-TABULAR-DROPDOWN-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}\" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].inputDataRequestTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\"></select>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Boolean",Template:' value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" id="DATETIME-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-DateTime",Template:' value="">\n\t\t\t\t\t<input disabled {~D:Record.Macro.ControlAttr~} id="DATETIME-TABULAR-INPUT-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" onchange="{~P~}.views[\'{~D:Context[0].Hash~}\'].inputDataRequestTabular(\'{~D:Context[2].Group~}\', \'{~D:Record.PictForm.InputIndex~}\', \'{~D:Context[2].Key~}\')" type="datetime-local" value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Hidden",Template:'\n\t\t\t\t\t\x3c!-- InputType Hidden {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} {~D:Record.Macro.InformaryTabular~}\n'},{HashPostfix:"-TabularTemplate-End-Input-InputType-Hidden",Template:' value="">\n'}]}},{}],58:[function(t,e,i){e.exports={TemplatePrefix:"Pict-MT-Base",Templates:[{HashPostfix:"-Template-Form-Container-Header",Template:'\n\x3c!-- Pict Form Metacontroller container Header\n\n ;,//;, ,;/\n o:::::::;;///\n>::::::::;;\\ \'\'\\\\\'" \';\nGlug glug glug Oo... --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-FormContainer" class="pict-form">'},{HashPostfix:"-Template-Form-Container-Wrap-Prefix",Template:'\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-{~D:Record.options.Hash~}-Wrap" class="pict-form">'},{HashPostfix:"-Template-Form-Container",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="Pict-Form-Container-{~D:Record.options.Hash~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Custom",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="{~D:Record.options.CustomTargetID~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Wrap-Postfix",Template:"\n</div>\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Prefix",Template:"\n\t\x3c!-- Pict Form Wrap Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Postfix",Template:"\n\t\x3c!-- Pict Form Wrap Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Section-Prefix",Template:'\n\t\t\x3c!-- Form Section Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t<div id="SECTION-{~D:Context[0].formID~}" class="pict-form-section {~D:Record.CSSClass~}">\n\t\t<h2>{~D:Record.Name~}</h2>\n'},{HashPostfix:"-Template-Section-Postfix",Template:"\n\t\t</div>\n\t\t\x3c!-- Form Section Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Prefix",Template:'\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" class="{~D:Record.CSSClass~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<h3>Group: {~D:Record.Name~}</h3>\n'},{HashPostfix:"-Template-Row-Prefix",Template:"\n\t\t\t\t\x3c!-- Form Template Row Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t\t<div>\n"},{HashPostfix:"-Template-Row-Postfix",Template:"\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- Form Template Row Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-VerticalRow-Prefix",Template:'\n\t\t\t\t\x3c!-- Form Template Vertical Row Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-group">\n'},{HashPostfix:"-Template-VerticalRow-Postfix",Template:"\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- Form Template Vertical Row Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Postfix",Template:"\n\t\t\t</div>\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-PreciseNumber",Template:'\n\t\t\t\t\t\x3c!-- DataType PreciseNumber {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-InputType-PreciseNumberReadOnly",DefaultInputExtensions:["Pict-Input-PreciseNumber"],Template:'\n\t\t\t\t\t\x3c!-- InputType PreciseNumberReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} id="INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" value="" readonly="readonly">\n'},{HashPostfix:"-Template-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <textarea {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~}></textarea>\n"},{HashPostfix:"-Template-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <select {~D:Record.Macro.ControlAttr~} id="SELECT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}"></select>\n'},{HashPostfix:"-Template-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input {~D:Record.Macro.ControlAttr~} id="DATETIME-INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}" type="datetime-local" value="" />\n'},{HashPostfix:"-Template-Input-InputType-Hidden",Template:"\n\t\t\t\t\t\x3c!-- InputType Hidden {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n"},{HashPostfix:"-Template-Input-InputType-Color",Template:'\n\t\t\t\t\t\x3c!-- InputType Color {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="color" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} />\n'},{HashPostfix:"-Template-Input-InputType-DisplayOnly",Template:"\n\t\t\t\t\t\x3c!-- InputType DisplayOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <span {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></span>\n"},{HashPostfix:"-Template-Input-InputType-ReadOnly",Template:'\n\t\t\t\t\t\x3c!-- InputType ReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="text" readonly {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></input>\n'},{HashPostfix:"-Template-Input-InputType-Link",DefaultInputExtensions:["Pict-Input-Link"],Template:'\n\t\t\t\t\t\x3c!-- InputType Link {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<a {~D:Record.Macro.ControlAttr~} id="INPUT-FOR-{~D:Record.Macro.RawHTMLID~}">{~D:Record.Name~}</a>\n'},{HashPostfix:"-Template-Input-InputType-Chart",DefaultInputExtensions:["Pict-Input-Chart"],Template:'\n\t\t\t\t\t\x3c!-- InputType Chart {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<div style="width:{~DWAF:Record.PictForm.QuantizedWidth:100~}%; display:inline-block;">\n\t\t\t\t\t\t<input type="hidden" id="CONFIG-FOR-{~D:Record.Macro.RawHTMLID~}" value="">\n\t\t\t\t\t\t<h3><span>{~D:Record.Name~}:</span></h3>\n\t\t\t\t\t\t<div style="width:100%;"><canvas id="CANVAS-FOR-{~D:Record.Macro.RawHTMLID~}" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></canvas></div>\n\t\t\t\t\t</div>\n'},{HashPostfix:"-Template-Input-InputType-Markdown",DefaultInputExtensions:["Pict-Input-Markdown"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-markdown"></div>\n'},{HashPostfix:"-Template-Input-InputType-HTML",DefaultInputExtensions:["Pict-Input-HTML"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-html"></div>\n'},{HashPostfix:"-Template-Input-InputType-Templated",DefaultInputExtensions:["Pict-Input-Templated"],Template:'\n\t\t\t\t\t\x3c!-- InputType Templated {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-templated"></div>\n'},{HashPostfix:"-Template-Input-InputType-TemplatedEntityLookup",DefaultInputExtensions:["Pict-Input-TemplatedEntityLookup"],Template:'\n\t\t\t\t\t\x3c!-- InputType TemplatedEntityLookup {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-RichText",DefaultInputExtensions:["Pict-Input-RichText"],Template:'\n\t\t\t\t\t\x3c!-- InputType RichText {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-richtext"></div>\n'},{HashPostfix:"-Template-Input-InputType-Diagram",DefaultInputExtensions:["Pict-Input-Diagram"],Template:'\n\t\t\t\t\t\x3c!-- InputType Diagram {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-diagram"></div>\n'},{HashPostfix:"-VerticalTemplate-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-PreciseNumber",Template:'\n\t\t\t\t\t\x3c!-- DataType PreciseNumber {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-PreciseNumberReadOnly",DefaultInputExtensions:["Pict-Input-PreciseNumber"],Template:'\n\t\t\t\t\t\x3c!-- InputType PreciseNumberReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} id="INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" value="" readonly="readonly">\n\t\t\t\t\t</div>\n\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-TextArea",Template:'\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<textarea {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~}></textarea>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<select {~D:Record.Macro.ControlAttr~} id="SELECT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}"></select>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input {~D:Record.Macro.ControlAttr~} id="DATETIME-INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}" type="datetime-local" value="" />\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Color",Template:'\n\t\t\t\t\t\x3c!-- InputType Color {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="color" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} />\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-DisplayOnly",Template:'\n\t\t\t\t\t\x3c!-- InputType DisplayOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<span {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></span>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-ReadOnly",Template:'\n\t\t\t\t\t\x3c!-- InputType ReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="text" readonly {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></input>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Link",DefaultInputExtensions:["Pict-Input-Link"],Template:'\n\t\t\t\t\t\x3c!-- InputType Link {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<a {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}>{~D:Record.Name~}</a>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Markdown",DefaultInputExtensions:["Pict-Input-Markdown"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-markdown"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-HTML",DefaultInputExtensions:["Pict-Input-HTML"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-html"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Templated",DefaultInputExtensions:["Pict-Input-Templated"],Template:'\n\t\t\t\t\x3c!-- InputType Templated {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-templated"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-TemplatedEntityLookup",DefaultInputExtensions:["Pict-Input-TemplatedEntityLookup"],Template:'\n\t\t\t\t\t\x3c!-- InputType TemplatedEntityLookup {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-RichText",DefaultInputExtensions:["Pict-Input-RichText"],Template:'\n\t\t\t\t\t\x3c!-- InputType RichText {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<label class="pict-form-label">{~D:Record.Name~}</label>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-richtext"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Diagram",DefaultInputExtensions:["Pict-Input-Diagram"],Template:'\n\t\t\t\t\t\x3c!-- InputType Diagram {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<label class="pict-form-label">{~D:Record.Name~}</label>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-diagram"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector",DefaultInputExtensions:["Pict-Input-TabGroupSelector"],Template:'\n\t\t\t\t\t\x3c!-- InputType TabGroupSelector {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t\x3c!-- the TabSelector Input provider deals with populating this from the manifest. --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t\x3c!-- <span>{~D:Record.Name~}:</span> --\x3e\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="TAB-SELECT-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-TabElement",Template:"\n\t\t\t\x3c!-- Sections have \"tab groups\" which are defined by the hash of the Descriptor that hosts the current TabGroup value. --\x3e\n\t\t\t<a href=\"#/\" id=\"TAB-{~D:Context[1].TabGroupHash~}-{~D:Record.Macro.RawHTMLID~}\" onclick=\"{~P~}.providers['Pict-Input-TabGroupSelector'].selectTabByViewHash('{~D:Context[0].Hash~}','{~D:Record.Hash~}', '{~D:Context[1].TabGroupHash~}')\">{~D:Context[1].TabGroupName~}</a>\n"},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-EmptyGroupContent",Template:"\n\t\t\t\x3c!-- This is the template for if the tmpInput.PictForm.TabGroupSet array is empty. --\x3e\n\t\t\t<p>Warning! No tabs to select from for {~D:Record.TabGroupSetRawHTMLID~}</p>\n"},{HashPostfix:"-Template-Input-InputType-TabSectionSelector",DefaultInputExtensions:["Pict-Input-TabSectionSelector"],Template:'\n\t\t\t\t\t\x3c!-- InputType TabSectionSelector {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t\x3c!-- the TabSelector Input provider deals with populating this from the manifest. --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t\x3c!-- <span>{~D:Record.Name~}:</span> --\x3e\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="TAB-SELECT-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-TabSectionSelector-TabElement",Template:"\n\t\t\t\x3c!-- Sections have \"tab groups\" which are defined by the hash of the Descriptor that hosts the current TabSection value. --\x3e\n\t\t\t<a href=\"#/\" id=\"TAB-{~D:Context[1].TabSectionHash~}-{~D:Record.Macro.RawHTMLID~}\" onclick=\"{~P~}.providers['Pict-Input-TabSectionSelector'].selectTabByViewHash('{~D:Context[0].Hash~}','{~D:Record.Hash~}', '{~D:Context[1].TabSectionHash~}')\">{~D:Context[1].TabSectionName~}</a>\n"},{HashPostfix:"-Template-Input-InputType-TabSectionSelector-EmptyGroupContent",Template:"\n\t\t\t\x3c!-- This is the template for if the tmpInput.PictForm.TabSectionSet array is empty. --\x3e\n\t\t\t<p>Warning! No tabs to select from for {~D:Record.TabSectionSetRawHTMLID~}</p>\n"},{HashPostfix:"-TuiGrid-Container",Template:'\n\t\t\t<div {~D:Record.Macro.ControlAttr~} id="{~D:Record.TuiGridHTMLID~}"></div>\n'},{HashPostfix:"-TuiGrid-Controls",Template:"\n\t\t\t<div>[ <a href=\"#/\" onclick=\"{~P~}.providers['Pict-Layout-TuiGrid'].addRow('{~D:Context[0].Hash~}', {~D:Record.GroupIndex~})\">create</a> ]</div>\n"},{HashPostfix:"-RecordSetTemplate-Group-Prefix",Template:"\n\t\t\t<div {~D:Record.Macro.PictFormLayout~}>\n\t\t\t\x3c!-- Form RecordSet Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-RecordSetTemplate-Group-Postfix",Template:'\n\t\t\t<div><a href="#/" onclick="{~D:Record.Macro.TabularCreateRowFunctionCall~}">create</a></div>\n\t\t\t</div>\n\t\t\t\x3c!-- Form RecordSet Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-RecordSetTemplate-Row-ExtraPrefix",Template:"\x3c!-- RecordSetTemplateRow-ExtraPrefix --\x3e"},{HashPostfix:"-RecordSetTemplate-Row-ExtraPostfix",Template:'\x3c!-- RecordSetTemplateRow-ExtraPostfix--\x3e\n\t\t\t\t\t<div class="PictSectionForm-RecordSet-Controls">\n\t\t\t\t\t\t<a href="#/" onClick="{~P~}.views[\'{~D:Context[0].Hash~}\'].deleteDynamicTableRow({~D:Record.Group~},\'{~D:Record.Key~}\')">del</a>\n\t\t\t\t\t\t<a href="#/" onClick="{~P~}.views[\'{~D:Context[0].Hash~}\'].moveDynamicTableRowUp({~D:Record.Group~},\'{~D:Record.Key~}\')">up</a>\n\t\t\t\t\t\t<a href="#/" onClick="{~P~}.views[\'{~D:Context[0].Hash~}\'].moveDynamicTableRowDown({~D:Record.Group~},\'{~D:Record.Key~}\')">down</a>\n\t\t\t\t\t</div>\n'},{HashPostfix:"-RecordSetTemplate-Row-Prefix",Template:'\n\t\t\t\t\t<div class="RecordSetEntry">\n\t\t\t\t\t\x3c!-- RecordSetTemplateRow-Prefix --\x3e\n'},{HashPostfix:"-RecordSetTemplate-Cell-Prefix",Template:'\n\t\t\t\t\t\t<div style="display:inline;">\n\t\t\t\t\t\t\t\x3c!-- RecordSetTemplateCell-Prefix --\x3e\n\t\t\t\t\t\t\t<span class="RecordSetInputLabel">{~D:Record.Name~}</span>\n'},{HashPostfix:"-RecordSetTemplate-Cell-Postfix",Template:"\n\t\t\t\t\t\t\t\x3c!-- RecordSetTemplateCell-Postfix --\x3e\n\t\t\t\t\t\t</div>\n"},{HashPostfix:"-RecordSetTemplate-Row-Postfix",Template:"\n\t\t\t\t\t\x3c!-- RecordSetTemplateRow-Postfix --\x3e\n\t\t\t\t\t</div>"},{HashPostfix:"-TabularTemplate-Group-Prefix",Template:'\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Group-Postfix",Template:'\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div><a href="#/" onclick="{~D:Record.Macro.TabularCreateRowFunctionCall~}">create</a></div>\n\t\t\t</div>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPrefix",Template:"\x3c!-- TabularTemplateRowHeader-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPostfix",Template:'\x3c!-- TabularTemplateRowHeader-ExtraPostfix --\x3e\n\t\t\t\t\t\t<th style="min-width:100px;"></th>\n'},{HashPostfix:"-TabularTemplate-Row-ExtraPrefix",Template:"\x3c!-- TabularTemplateRow-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-Row-ExtraPostfix",Template:"\x3c!-- TabularTemplateRow-ExtraPostfix--\x3e\n\t\t\t\t\t<td><a href=\"#/\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].deleteDynamicTableRow({~D:Record.Group~},'{~D:Record.Key~}')\">del</a>\n\t\t\t\t\t<a href=\"#/\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowUp({~D:Record.Group~},'{~D:Record.Key~}')\">up</a>\n\t\t\t\t\t<a href=\"#/\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowDown({~D:Record.Group~},'{~D:Record.Key~}')\">down</a></td>\n"},{HashPostfix:"-TabularTemplate-RowHeader-Prefix",Template:"\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n"},{HashPostfix:"-TabularTemplate-HeaderCell",Template:'\n\t\t\t\t\t\t\x3c!-- Descriptor {~D:Record.Name~} [{~D:Record.Hash~}] -> {~D:Record.Address~} --\x3e\n\t\t\t\t\t\t<th data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">{~D:Record.Name~}</th>\n'},{HashPostfix:"-TabularTemplate-RowHeader-Postfix",Template:"\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n"},{HashPostfix:"-TabularTemplate-ExtraHeaderRow-Prefix",Template:'\n\t\t\t\t\t<tr class="pict-tabular-extra-header-row">\n'},{HashPostfix:"-TabularTemplate-ExtraHeaderRow-Postfix",Template:"\n\t\t\t\t\t</tr>\n"},{HashPostfix:"-TabularTemplate-ExtraHeaderCell",Template:'<th colspan="{~D:Record.ColumnSpan~}" class="pict-tabular-extra-header-cell {~D:Record.CSSClass~}">{~D:Record.Label~}</th>'},{HashPostfix:"-TabularTemplate-RowLabel-HeaderCell",Template:'<th class="pict-row-label-header">{~D:Record.Name~}</th>'},{HashPostfix:"-TabularTemplate-RowLabel-Cell",Template:'<td rowspan="{~D:Record.RowSpan~}" class="pict-row-label">{~D:Record.RenderedLabel~}</td>'},{HashPostfix:"-TabularTemplate-RowLabel-Cell-Skipped",Template:""},{HashPostfix:"-TabularTemplate-Row-Prefix",Template:'\n\t\t\t\t\t<tr data-tabular-row-index="{~D:Record.Key~}" data-tabular-group-index="{~D:Record.Group~}">{~T:TabularTemplateRow-ExtraPrefix~}\n'},{HashPostfix:"-TabularTemplate-Cell-Prefix",Template:'\n\t\t\t\t\t\t<td data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">\x3c!-- {~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Cell-Postfix",Template:"\n\t\t\t\t\t\t</td>\n"},{HashPostfix:"-TabularTemplate-Row-Postfix",Template:"\n\t\t\t\t\t{~T:TabularTemplateRow-ExtraPostfix~}</tr>"},{HashPostfix:"-TabularTemplate-Begin-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input",Template:' value="">'},{HashPostfix:"-TabularTemplate-Mid-Input",Template:" "},{HashPostfix:"-TabularTemplate-InformaryAddress-Input",Template:" data-i-index=\"{~D:Context[2].Key~}\" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].dataChangedTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\" "},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-String",Template:' value="">'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-Number",Template:' value="">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-PreciseNumber",Template:'\n\t\t\t\t\t\x3c!-- DataType PreciseNumber {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} id="TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" '},{HashPostfix:"-TabularTemplate-End-Input-DataType-PreciseNumber",Template:' value="">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-PreciseNumberReadOnly",DefaultInputExtensions:["Pict-Input-PreciseNumber"],Template:'\n\t\t\t\t\t\x3c!-- InputType PreciseNumberReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" id="PRECISE-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.InformaryTabular~}\n'},{HashPostfix:"-TabularTemplate-End-Input-InputType-PreciseNumberReadOnly",Template:'\n\t\t\t\t\t\tvalue="">\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} id="TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~} value="" readonly="readonly">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<textarea {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} "},{HashPostfix:"-TabularTemplate-End-Input-InputType-TextArea",Template:" ></textarea>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" id="SELECT-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Option",Template:" value=\"\">\n\t\t\t\t\t<select {~D:Record.Macro.ControlAttr~} id=\"SELECT-TABULAR-DROPDOWN-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}\" {~D:Record.Macro.HTMLName~} onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].inputDataRequestTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\"></select>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Boolean",Template:' value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" id="DATETIME-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-DateTime",Template:' value="">\n\t\t\t\t\t<input {~D:Record.Macro.ControlAttr~} id="DATETIME-TABULAR-INPUT-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~}\n\t\t\t\t\t\tonchange="{~P~}.views[\'{~D:Context[0].Hash~}\'].inputDataRequestTabular(\'{~D:Context[2].Group~}\', \'{~D:Record.PictForm.InputIndex~}\', \'{~D:Context[2].Key~}\')"\n\t\t\t\t\t\ttype="datetime-local" value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Hidden",Template:"\n\t\t\t\t\t\x3c!-- InputType Hidden {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span\n"},{HashPostfix:"-TabularTemplate-End-Input-InputType-Hidden",Template:"></span>"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Color",Template:'\n\t\t\t\t\t\x3c!-- InputType Color {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="color" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} {~D:Record.Macro.InformaryTabular~}'},{HashPostfix:"-TabularTemplate-End-Input-InputType-Color",Template:" />\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-DisplayOnly",Template:"\n\t\t\t\t\t\x3c!-- InputType DisplayOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <span {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InformaryTabular~}"},{HashPostfix:"-TabularTemplate-End-Input-InputType-DisplayOnly",Template:" ></span>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-ReadOnly",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input readonly type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-ReadOnly",Template:' value="">'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Link",DefaultInputExtensions:["Pict-Input-Link"],Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Link",Template:' value="">\n\t\t\t\t\t<a {~D:Record.Macro.ControlAttr~} id="TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~}>{~D:Record.Name~}</a>'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-TemplatedEntityLookup",Template:'\n\t\t\t\t\t\x3c!-- InputType TemplatedEntityLookup {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-TemplatedEntityLookup",Template:' value="">'}]}},{}],59:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.log}getTriggerGroupConfigurationArray(t){let e=t.PictForm.AutofillTriggerGroup;return e?(Array.isArray(e)||(e=[e]),e):[]}autoFillFromAddressList(t,e,i,n){if(!("TriggerGroupHash"in i)||"string"!=typeof i.TriggerGroupHash)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerGroupHash string is not present."),!1;if(!("TriggerAddress"in i)||"string"!=typeof i.TriggerAddress)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerAddress string is not present."),!1;let r=this.pict.manifest.getValueByHash(this.pict,i.TriggerAddress);return!(!r&&!i.MarshalEmptyValues)&&(t.setDataByInput(e,r),t.manualMarshalDataToViewByInput(e),!0)}autoFillFromAddressListTabular(t,e,i,n,r){if(!("TriggerGroupHash"in i)||"string"!=typeof i.TriggerGroupHash)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerGroupHash string is not present."),!1;if(!("TriggerAddress"in i)||"string"!=typeof i.TriggerAddress)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerAddress string is not present."),!1;let o=this.pict.manifest.getValueByHash(this.pict,i.TriggerAddress);return!(!o&&!i.MarshalEmptyValues)&&(t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,r,o),t.manualMarshalTabularDataToViewByInput(e,r),!0)}onDataChange(t,e,i,n,r){let o=this.getTriggerGroupConfigurationArray(e);if(Array.isArray(o)&&this.pict.views.PictFormMetacontroller)for(let i=0;i<o.length;i++){const n=o[i];n.TriggerAllInputs&&(Array.isArray(n.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,n.PreSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," pre-trigger")),t.registerOnTransactionCompleteCallback(r,()=>{Array.isArray(n.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,n.PostSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," post-trigger"))}),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(n.TriggerGroupHash,":DataChange:").concat(e.Hash||e.DataAddress,":").concat(this.pict.getUUID()),r))}return super.onDataChange(t,e,i,n,r)}onDataChangeTabular(t,e,i,n,r,o){let a=this.getTriggerGroupConfigurationArray(e);if(Array.isArray(a)&&this.pict.views.PictFormMetacontroller)for(let i=0;i<a.length;i++){const n=a[i];n.TriggerAllInputs&&(Array.isArray(n.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,n.PreSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," tabular pre-trigger")),t.registerOnTransactionCompleteCallback(o,()=>{Array.isArray(n.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,n.PostSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," tabular post-trigger"))}),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(n.TriggerGroupHash,":DataChange:").concat(e.Hash||e.DataAddress,":").concat(this.pict.getUUID()),o))}return super.onDataChangeTabular(t,e,i,n,r,o)}onAfterEventCompletion(t,e,i,n,r,o){let a=_slicedToArray(("string"==typeof r?r:"").split(":"),5),s=a[0],c=a[1],l=(a[2],a[3]),p=a[4];p||(p=this.pict.getUUID());let d=e.PictForm.AutofillTriggerGroup;if(!d||"TriggerGroup"!==s||(e.Hash||e.DataAddress)==l)return super.onAfterEventCompletion(t,e,i,n,r,o);Array.isArray(d)||(d=[d]);for(let r=0;r<d.length;r++){let o=d[r];if(o.TriggerGroupHash===c){if(Array.isArray(o.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,o.PreSolvers,"AutofillTriggerGroup hash ".concat(o.TriggerGroupHash," pre-autofill")),"TriggerAddress"in o&&this.autoFillFromAddressList(t,e,o,n),o.SelectOptionsRefresh){let t=this.pict.views[e.PictForm.ViewHash];this.pict.providers.DynamicMetaLists.rebuildListByHash(e.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectList(t,t.getGroup(e.PictForm.GroupIndex),t.getRow(e.PictForm.GroupIndex,e.PictForm.Row),e,i,n),t.manualMarshalDataToViewByInput(e,p)}Array.isArray(o.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,o.PostSolvers,"AutofillTriggerGroup hash ".concat(o.TriggerGroupHash," post-autofill"))}}return super.onAfterEventCompletion(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){let s=_slicedToArray(("string"==typeof o?o:"").split(":"),5),c=s[0],l=s[1],p=(s[2],s[3]),d=s[4];if(d||(d=this.pict.getUUID()),!e.PictForm.AutofillTriggerGroup||"TriggerGroup"!==c||(e.Hash||e.DataAddress)==p)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);let u=e.PictForm.AutofillTriggerGroup;Array.isArray(u)||(u=[u]);for(const o of u)if(o.TriggerGroupHash===l)if(o.SelectOptionsRefresh)if(e.PictForm.SelectOptionsPickList){let t=this.pict.views[e.PictForm.ViewHash];this.pict.providers.DynamicMetaLists.rebuildListByHash(e.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectListTabular(t,t.getGroup(e.PictForm.GroupIndex),t.getRow(e.PictForm.GroupIndex,e.PictForm.Row),e,i,n,r),t.manualMarshalTabularDataToViewByInput(e,r,d)}else;else this.autoFillFromAddressListTabular(t,e,o,n,r);return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],60:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.options.DefaultCoreParsingConfiguration&&Array.isArray(this.options.DefaultCoreParsingConfiguration)||(this.options.DefaultCoreParsingConfiguration={AddressInObject:"",ObjectType:"object",MergeMethod:"Object",Steps:[{InputProperty:!1,Method:"Initialize",Merge:!1},{InputProperty:"PictForm.ChartConfigCorePrototypeRaw",Method:"Raw",Merge:!0},{InputProperty:"PictForm.ChartConfigCorePrototypeAddress",Method:"Address",Merge:!0},{InputProperty:"PictForm.ChartConfigCorePrototype",Method:"SingleSolver",Merge:!0}]}),this.defaultCoreParsingConfiguration=JSON.parse(JSON.stringify(this.options.DefaultCoreParsingConfiguration)),"object"==typeof this.options.DefaultLabelParsingConfiguration&&Array.isArray(this.options.DefaultLabelParsingConfiguration.Steps)||(this.options.DefaultLabelParsingConfiguration={AddressInObject:"data.labels",ObjectType:"array",MergeMethod:"Array",Steps:[{InputProperty:!1,Method:"Initialize",Merge:!1},{InputProperty:"PictForm.ChartLabelsRaw",Method:"Raw",Merge:!1},{InputProperty:"PictForm.ChartLabelsAddress",Method:"Address",Merge:!1},{InputProperty:"PictForm.ChartLabelsSolver",Method:"SingleSolver",Merge:!1}]}),this.defaultLabelParsingConfiguration=JSON.parse(JSON.stringify(this.options.DefaultLabelParsingConfiguration)),"object"==typeof this.options.DefaultDataParsingConfiguration&&Array.isArray(this.options.DefaultDataParsingConfiguration.Steps)||(this.options.DefaultDataParsingConfiguration={AddressInObject:"data.datasets",ObjectType:"array",MergeMethod:"Array",Steps:[{InputProperty:!1,Method:"Initialize",Merge:!1},{InputProperty:"PictForm.ChartDatasetsRaw",Method:"Raw",Merge:!1},{InputProperty:"PictForm.ChartDatasetsAddress",Method:"Address",Merge:!1},{InputProperty:"PictForm.ChartDatasetsSolvers",Method:"ArrayOfSolvers",Merge:!0}]}),this.defaultDataParsingConfiguration=JSON.parse(JSON.stringify(this.options.DefaultDataParsingConfiguration)),this.currentChartObjects={},this.currentChartDataObjects={}}applyInputParsingConfiguration(t,e,i,n){let r=t,o=n,a=e,s=i;if("object"!=typeof t)return!1;if("string"!=typeof n||n.length<1)return!1;if("object"!=typeof s)return!1;"object"!=typeof a&&(a={});let c,l=this.pict.manifest.getValueByHash(r,o);"object"==typeof l&&(s=Object.assign(s,l)),c=s.AddressInObject&&""!=s.AddressInObject?this.pict.manifest.getValueByHash(a,s.AddressInObject):a;for(let e=0;e<s.Steps.length;e++){let i=s.Steps[e];switch(i.Method){case"Initialize":if(s.AddressInObject&&"string"==typeof s.AddressInObject&&s.AddressInObject.length>0){let t=this.pict.manifest.getValueByHash(a,s.AddressInObject);"array"===s.ObjectType?t&&Array.isArray(t)||this.pict.manifest.setValueByHash(a,s.AddressInObject,[]):"object"===s.ObjectType?t&&"object"==typeof t||this.pict.manifest.setValueByHash(a,s.AddressInObject,{}):this.pict.log.warn("Unsupported ObjectType ".concat(s.ObjectType," parsing chart Initialize configuration for input ").concat(r.Macro.RawHTMLID))}break;case"Raw":if(!this.pict.manifest.checkAddressExists(r,i.InputProperty))break;let e=this.pict.manifest.getValueByHash(r,i.InputProperty);if("object"!==typeof e)break;if("array"===s.ObjectType){if(Array.isArray(e))if(i.Merge){Array.isArray(c)||(c=[]);let t=c.concat(e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e)}else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,e):e;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);break;case"Address":let n=this.pict.manifest.getValueByHash(r,i.InputProperty);if(!n)break;if("object"!=typeof this.pict.resolveStateFromAddress(n,t))break;if("array"===s.ObjectType){if(Array.isArray(e))if(i.Merge){Array.isArray(c)||(c=[]);let t=c.concat(e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e)}else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,e):e;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);break;case"SingleSolver":let o=this.pict.manifest.getValueByHash(r,i.InputProperty);if("string"!=typeof o)break;let l=this.pict.providers.DynamicSolver.runSolver(o,!0);if("array"===s.ObjectType){if(Array.isArray(l))if(i.Merge){Array.isArray(c)||(c=[]);let t=c.concat(l);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,l)}else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,l);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,l):l;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);break;case"ArrayOfSolvers":let p=this.pict.manifest.getValueByHash(r,i.InputProperty);if(!Array.isArray(p))break;for(let t=0;t<p.length;t++){let n=p[t];if("object"!=typeof n)continue;let r=n.Label,o=n.DataSolver,l=this.pict.providers.DynamicSolver.runSolver(o,!0),d={label:r,data:Array.isArray(l)?l:[]};if(n.ChartType&&(d.type=n.ChartType),n.CustomYAxisID&&(d.yAxisID=n.CustomYAxisID),n.CustomXAxisID&&(d.xAxisID=n.CustomXAxisID),n.Tension&&(d.tension=n.Tension),n.PointRadius&&(d.pointRadius=n.PointRadius),n.StackGroup&&(d.stack=n.StackGroup),"array"===s.ObjectType)Array.isArray(l)&&(i.Merge?(Array.isArray(c)||(c=[]),c.push(d),this.pict.manifest.setValueByHash(a,s.AddressInObject,c)):this.pict.manifest.setValueByHash(a,s.AddressInObject,[d]));else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,l);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,l):l;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e)}}}}getInputChartConfiguration(t,e,i){if(!("PictForm"in e))return!1;let n=e.PictForm,r="object"==typeof n.ChartJSOptionsCorePrototype?n.ChartJSOptionsCorePrototype:{};return this.applyInputParsingConfiguration(e,r,this.defaultCoreParsingConfiguration,"PictForm.ChartConfigCoreParsingConfigurationOverride"),"type"in r||(r.type="string"==typeof n.ChartType?n.ChartType:"bar"),this.applyInputParsingConfiguration(e,r,this.defaultLabelParsingConfiguration,"PictForm.ChartLabelsParsingConfigurationOverride"),this.applyInputParsingConfiguration(e,r,this.defaultDataParsingConfiguration,"PictForm.ChartDataParsingConfigurationOverride"),r}initializeChartVisualization(t,e,i,n,r,o){let a="#CONFIG-FOR-".concat(n.Macro.RawHTMLID),s=this.getInputChartConfiguration(t,n,r);this.pict.ContentAssignment.assignContent(a,JSON.stringify(s));let c="#CANVAS-FOR-".concat(n.Macro.RawHTMLID),l=this.pict.ContentAssignment.getElement(c);if(!Array.isArray(l)||l.length<1)return this.log.warn("Chart canvas element not found for input ".concat(c)),!1;l=l[0],"function"!=typeof window.Chart?this.log.warn("Chart.js library not loaded for input ".concat(c)):(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)]=new window.Chart(l,s),this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]=JSON.stringify(s.data))}onInputInitialize(t,e,i,n,r,o,a){return this.initializeChartVisualization(t,e,i,n,r,o),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return super.onDataChange(t,e,i,n,r)}onDataChangeTabular(t,e,i,n,r,o){return super.onDataChangeTabular(t,e,i,n,r,o)}onDataMarshalToForm(t,e,i,n,r,o,a){if(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)]){let e=this.getInputChartConfiguration(t,n,r),i=JSON.stringify(e.data);this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]!==i&&(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)].data=e.data,this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)].update(),this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]=i)}else this.initializeChartVisualization(t,e,i,n,r,o);return super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onDataRequest(t,e,i,n){return super.onDataRequest(t,e,i,n)}onDataRequestTabular(t,e,i,n,r){return super.onDataRequestTabular(t,e,i,n,r)}}},{"../Pict-Provider-InputExtension.js":52}],61:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.log}getDateTimeInputHTMLID(t){return"#DATETIME-INPUT-FOR-".concat(t)}getTabularDateTimeHiddenInputHTMLID(t,e){return"#DATETIME-TABULAR-DATA-".concat(t,"-").concat(e)}getTabularDateTimeInputHTMLID(t,e){return"#DATETIME-TABULAR-INPUT-".concat(t,"-").concat(e)}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getDateTimeInputHTMLID(n.Macro.RawHTMLID),r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getTabularDateTimeInputHTMLID(i.Macro.RawHTMLID,o),n),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onDataRequest(t,e,i,n){let r;try{r=this.pict.ContentAssignment.readContent(this.getDateTimeInputHTMLID(e.Macro.RawHTMLID)),this.pict.ContentAssignment.assignContent(n,r),t.dataChanged(e.Hash)}catch(t){this.log.error("The value [".concat(r,"] is not a valid date; skipping parsing for [#").concat(e.Macro.RawHTMLID,"]."))}return super.onDataRequest(t,e,i,n)}onDataRequestTabular(t,e,i,n,r){let o;try{o=this.pict.ContentAssignment.readContent(this.getTabularDateTimeInputHTMLID(e.Macro.RawHTMLID,r)),this.pict.ContentAssignment.assignContent(this.getTabularDateTimeHiddenInputHTMLID(e.Macro.RawHTMLID,r),o),t.dataChangedTabular(e.PictForm.GroupIndex,e.PictForm.InputIndex,r)}catch(t){this.log.error("The value [".concat(o,"] is not a valid date; skipping parsing for [#").concat(e.Macro.RawHTMLID,"]."))}return super.onDataRequestTabular(t,e,i,n,r)}}},{"../Pict-Provider-InputExtension.js":52}],62:[function(t,e,i){e.exports="\n.pict-section-form-diagram\n{\n\tdisplay: block;\n\twidth: 100%;\n\tmin-height: 120px;\n\tborder: 1px solid var(--theme-color-border-primary, #D4C4A8);\n\tborder-radius: 4px;\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tbox-sizing: border-box;\n\tposition: relative;\n}\n\n.pict-section-form-diagram-view\n{\n\tpadding: 12px;\n\tmin-height: 96px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow: auto;\n}\n\n.pict-section-form-diagram-view.is-empty\n{\n\tcolor: var(--theme-color-text-muted, #8A7F72);\n\tfont-style: italic;\n\tfont-size: 0.9rem;\n}\n\n.pict-section-form-diagram-view svg\n{\n\tdisplay: block;\n\tmax-width: 100%;\n\theight: auto;\n}\n\n.pict-section-form-diagram-edit\n{\n\tpadding: 0;\n\tmin-height: 420px;\n\tdisplay: flex;\n}\n\n/* The Excalidraw view brings its own chrome inside the slot. Force the wrap\n * and the Excalidraw root to fill so the canvas doesn't collapse to 0\n * height inside the form slot. */\n.pict-section-form-diagram-edit > .pict-excalidraw-wrap,\n.pict-section-form-diagram-edit > .pict-excalidraw-wrap > .pict-excalidraw-mount\n{\n\tflex: 1 1 auto;\n\tmin-height: 420px;\n}\n\n.pict-section-form-diagram-edit .excalidraw\n{\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 420px;\n}\n\n.pict-section-form-diagram-toggle\n{\n\tposition: absolute;\n\ttop: 6px;\n\tright: 6px;\n\tz-index: 2;\n\tpadding: 3px 9px;\n\tfont-size: 0.72rem;\n\tfont-weight: 600;\n\tcolor: var(--theme-color-text-secondary, #5A4A3C);\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tborder: 1px solid var(--theme-color-border-secondary, #D4C4A8);\n\tborder-radius: 3px;\n\tcursor: pointer;\n\tuser-select: none;\n}\n\n.pict-section-form-diagram-toggle:hover\n{\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tborder-color: var(--theme-color-accent, #2E7D74);\n}\n\n.pict-section-form-diagram.mode-edit .pict-section-form-diagram-toggle::after { content: 'Done'; }\n.pict-section-form-diagram.mode-view .pict-section-form-diagram-toggle::after { content: 'Edit'; }\n"},{}],63:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js"),r=t("pict-section-excalidraw"),o=t("./Pict-Provider-Input-Diagram-CSS.js"),a=t("./util/Themeify-SVG.js"),s={ProviderIdentifier:"Pict-Input-Diagram",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(s)),e),i),this.pict,this.log,this._instances={},this.pict&&this.pict.CSSMap&&"function"==typeof this.pict.CSSMap.addCSS&&this.pict.CSSMap.addCSS("Pict-Input-Diagram-CSS",o,500)}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}_resolveValue(t,e){return"string"==typeof e&&e.length>0?e:t&&t.Content&&"string"==typeof t.Content?t.Content:t&&t.Default&&"string"==typeof t.Default?t.Default:""}_isLikelySvg(t){return"string"==typeof t&&/<svg[\s>]/i.test(t)}_assignSlotContent(t,e){return!(!this.pict||!this.pict.ContentAssignment||"function"!=typeof this.pict.ContentAssignment.assignContent)&&(this.pict.ContentAssignment.assignContent(t,e),!0)}_writeHiddenInputValue(t,e){let i="undefined"!=typeof document?document.getElementById(t):null;if(!i)return!1;i.value=null==e?"":String(e);try{i.dispatchEvent(new Event("change",{bubbles:!0}))}catch(t){}return!0}_resolveVendor(){return"undefined"==typeof window?null:window.PictSectionExcalidrawVendor||null}_buildViewHTML(t){return this._isLikelySvg(t)?'<div class="pict-section-form-diagram-view">'.concat(t,"</div>"):'<div class="pict-section-form-diagram-view is-empty">(empty diagram)</div>'}_setSlotModeClass(t,e){if("undefined"==typeof document)return;let i=t.Macro.RawHTMLID,n=document.getElementById(i)||document.querySelector(this.getContentDisplayHTMLID(i));n&&n.classList&&(n.classList.remove("mode-edit","mode-view","pict-section-form-diagram-edit"),"edit"===e?n.classList.add("mode-edit","pict-section-form-diagram-edit"):n.classList.add("mode-view"))}_mountView(t,e,i){let n=e.Macro.RawHTMLID,r=this.getContentDisplayHTMLID(n),o=this._resolveValue(e,i);this._assignSlotContent(r,this._buildViewHTML(o)),this._setSlotModeClass(e,"view");let a=this._instances[e.Hash]||{};a.mode="view",a.slotID=r,a.lastValue=o,a.input=e,a.viewInstance=null,this._instances[e.Hash]=a}_extractSceneFromSvg(t,e){if(!this._isLikelySvg(t))return e(null,null);let i=this._resolveVendor();if(!i||!i.loadFromBlob)return this.log&&this.log.warn("[Pict-Input-Diagram] vendor.loadFromBlob unavailable — falling back to empty scene"),e(null,null);try{let n=new window.Blob([t],{type:"image/svg+xml"}),r=i.loadFromBlob(n,null,null);Promise.resolve(r).then(t=>{e(null,t||null)},t=>{e(t,null)})}catch(t){e(t,null)}}_buildEditorOptions(t,e,i){let n=t.PictForm&&t.PictForm.Diagram||{},r=n.EditorOptions||{},o=t.Macro.RawHTMLID;this.pict.AppData._PictInputDiagram||(this.pict.AppData._PictInputDiagram={}),this.pict.AppData._PictInputDiagram[t.Hash]||(this.pict.AppData._PictInputDiagram[t.Hash]={Scene:null});let a="AppData._PictInputDiagram.".concat(t.Hash,".Scene");return Object.assign({},r,{ViewIdentifier:"Pict-Input-Diagram-Editor-".concat(t.Hash),TargetElementAddress:this.getContentDisplayHTMLID(o),DrawingDataAddress:a,EditorImplementation:n.EditorImplementation||"react"})}_mountEdit(t,e,i,n){let o=e.Macro.RawHTMLID,s=this.getContentDisplayHTMLID(o),c=this._resolveValue(e,i),l=this._instances[e.Hash]||{};l.input=e;let p=!1!==(e.PictForm&&e.PictForm.Diagram||{}).ThemeColors;this._assignSlotContent(s,""),this._extractSceneFromSvg(c,(t,i)=>{let d=this._buildEditorOptions(e,c,l),u=d.ViewIdentifier,h=this;i&&this.pict.AppData._PictInputDiagram&&this.pict.AppData._PictInputDiagram[e.Hash]&&(this.pict.AppData._PictInputDiagram[e.Hash].Scene={elements:i.elements||[],appState:i.appState||{},files:i.files||{}}),d.OnChange=(t,i)=>{try{let i=t.exportSvg({exportEmbedScene:!0,exportBackground:!1});Promise.resolve(i).then(t=>{let i=t&&"string"==typeof t.outerHTML?t.outerHTML:"string"==typeof t?t:null;if(!i)return;p&&(i=a.themeifySVG(i)),h._writeHiddenInputValue(o,i);let n=h._instances[e.Hash];n&&(n.lastValue=i)},t=>{h.log&&h.log.warn("[Pict-Input-Diagram] exportSvg failed in OnChange",{error:t.message,inputHash:e.Hash})})}catch(t){h.log&&h.log.warn("[Pict-Input-Diagram] OnChange handler threw",{error:t.message,inputHash:e.Hash})}},this.pict.addView(u,d,r);let m=this.pict.views[u];if(!m){let t=new Error("Failed to instantiate Diagram editor view "+u);return this.log&&this.log.error("[Pict-Input-Diagram] addView returned nothing",{viewHash:u}),void("function"==typeof n&&n(t))}this._setSlotModeClass(e,"edit"),l.mode="edit",l.slotID=s,l.lastValue=c,l.viewInstance=m,l.viewHash=u,l.themeColors=p,this._instances[e.Hash]=l;try{let t=m.render();t&&"function"==typeof t.then?t.then(()=>{"function"==typeof n&&n(null)},t=>{"function"==typeof n&&n(t)}):"function"==typeof n&&n(null)}catch(t){this.log&&this.log.error("[Pict-Input-Diagram] editor.render threw",{error:t.message}),"function"==typeof n&&n(t)}})}_destroyEdit(t){let e=this._instances[t.Hash];if(!e||!e.viewInstance)return;let i=e.viewInstance;try{"function"==typeof i.destroy&&i.destroy()}catch(t){this.log&&this.log.warn("[Pict-Input-Diagram] editor.destroy threw",{error:t.message})}if(this.pict.AppData._PictInputDiagram&&this.pict.AppData._PictInputDiagram[t.Hash]&&delete this.pict.AppData._PictInputDiagram[t.Hash],e.viewHash&&this.pict.views&&this.pict.views[e.viewHash])try{delete this.pict.views[e.viewHash]}catch(t){}e.viewInstance=null,e.viewHash=null}getMode(t){let e=this._instances[t];return e?e.mode:null}setMode(t,e,i){let n=this._instances[t];if(!n){let e=new Error("Cannot setMode — input is not mounted: "+t);return void("function"==typeof i&&i(e))}if("edit"!==e&&"view"!==e){let t=new Error('setMode: unknown mode "'+e+'" (use "edit" or "view")');return void("function"==typeof i&&i(t))}n.mode!==e?"edit"!==e?(this._destroyEdit(n.input),this._mountView(null,n.input,n.lastValue),"function"==typeof i&&i(null)):this._mountEdit(null,n.input,n.lastValue,i):"function"==typeof i&&i(null)}toggleMode(t,e){let i="edit"===this.getMode(t)?"view":"edit";this.setMode(t,i,e)}commit(t,e){let i=this._instances[t];if(!i||"edit"!==i.mode||!i.viewInstance)return void("function"==typeof e&&e(null));let n=!1!==i.themeColors,r=this,o=i.input.Macro.RawHTMLID;try{let t=i.viewInstance.exportSvg({exportEmbedScene:!0,exportBackground:!1});Promise.resolve(t).then(t=>{let s=t&&"string"==typeof t.outerHTML?t.outerHTML:null;s&&(n&&(s=a.themeifySVG(s)),r._writeHiddenInputValue(o,s),i.lastValue=s),"function"==typeof e&&e(null)},t=>{"function"==typeof e&&e(t)})}catch(t){"function"==typeof e&&e(t)}}onInputInitialize(t,e,i,n,r,o,a){return this._mountView(t,n,r),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=new Error("Diagram InputType is not supported inside Tabular rows in Phase 1.");throw this.log&&this.log.warn("[Pict-Input-Diagram] tabular not supported",{inputHash:i&&i.Hash}),s}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this._instances[n.Hash];return s?"view"===s.mode?this._mountView(t,n,r):(s.lastValue="string"==typeof r?r:s.lastValue,this._extractSceneFromSvg(s.lastValue,(t,e)=>{if(!t&&e&&s.viewInstance&&"function"==typeof s.viewInstance.setScene)try{s.viewInstance.setScene(e)}catch(t){this.log&&this.log.warn("[Pict-Input-Diagram] setScene threw after marshal",{error:t.message})}})):this._mountView(t,n,r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}},e.exports.default_configuration=s},{"../Pict-Provider-InputExtension.js":52,"./Pict-Provider-Input-Diagram-CSS.js":62,"./util/Themeify-SVG.js":77,"pict-section-excalidraw":19}],64:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.log}gatherEntitySet(t,e,i,n,r){if(!("Entity"in e)||"string"!=typeof e.Entity)return this.log.warn("EntityBundleRequest failed to parse entity request because the entity stanza did not contain an Entity string."),t();if(!("Filter"in e)||"string"!=typeof e.Filter)return this.log.warn("EntityBundleRequest failed to parse entity request because the entity stanza did not contain a Filter string."),t();if(!("Destination"in e)||"string"!=typeof e.Destination)return this.log.warn("EntityBundleRequest failed to parse entity request because the entity stanza did not contain a Destination string."),t();const o={Value:r,Input:n,View:i};let a=null,s=null;e.RecordCount&&(a=null!=e.RecordStartCursor?e.RecordStartCursor:0,s=null!=e.RecordCount?e.RecordCount:null);const c=this.pict.parseTemplate(e.Filter,o);""==c&&this.log.warn("EntityBundleRequest failed to parse entity request because the entity Filter did not return a string for FilterBy");const l=(i,n)=>i?(this.log.error("EntityBundleRequest request Error getting entity set for [".concat(e.Entity,"] with filter [").concat(c,"]: ").concat(i),i),t(i,"")):(this.log.trace("EntityBundleRequest found ".concat(n.length," records for ").concat(e.Entity," filtered to [").concat(c,"]")),e.SingleRecord?(n.length>1&&this.log.warn("EntityBundleRequest found more than one record for ".concat(e.Entity," filtered to [").concat(c,"] but SingleRecord is true; setting the first record.")),n.length<1&&this.pict.manifest.setValueByHash(this.pict,e.Destination,!1),this.pict.manifest.setValueByHash(this.pict,e.Destination,n[0])):this.pict.manifest.setValueByHash(this.pict,e.Destination,n),t());s?this.pict.EntityProvider.getEntitySetPage(e.Entity,c,a,s,l):this.pict.EntityProvider.getEntitySet(e.Entity,c,l)}gatherCustomDataSet(t,e,i,n,r){if(!("URL"in e)||"string"!=typeof e.URL)return this.log.warn("EntityBundleRequest failed to parse custom data request because the stanza did not contain a URL string."),t();const o={Value:r,Input:n,View:i},a=this.pict.parseTemplate(e.URL,o);""==a&&this.log.warn("EntityBundleRequest failed to parse custom data request because the entity Filter did not return a string for FilterBy");let s="";const c=!!e.Host&&e.Host,l=e.Protocol?e.Protocol:"https",p=!!e.Port&&e.Port;c?(s="".concat(l,"://").concat(c),p&&(s+=":".concat(p))):s=this.pict.EntityProvider.options.urlPrefix;let d={url:"".concat(s).concat(a)};return d=this.pict.EntityProvider.prepareRequestOptions(d),this.pict.EntityProvider.restClient.getJSON(d,(i,n,r)=>i?(this.log.error("EntityBundleRequest request Error getting data set for [".concat(e.Entity,"] with filter [").concat(a,"]: ").concat(i),i),t(i,"")):(this.log.trace("EntityBundleRequest completed request for ".concat(e.Entity," filtered to [").concat(a,"]")),e.Destination&&this.pict.manifest.setValueByHash(this.pict,e.Destination,r),t()))}async gatherDataFromServer(t,e,i,n,r){if("object"!=typeof e||!("PictForm"in e)||!("EntitiesBundle"in e.PictForm)||!Array.isArray(e.PictForm.EntitiesBundle))return this.log.warn("Input at ".concat(n," is set as an EntityBundleRequest input but no array of entity requests was found")),null;const o="BundleLoad-".concat(this.pict.getUUID());r&&t.registerEventTransactionAsyncOperation(r,o);let a=e,s=i,c=this.fable.newAnticipate();if(a.PictForm.EntitiesBundle.length>0&&a.PictForm.EntitiesBundle[0].PictMode)c.anticipate(t=>{this.pict.EntityProvider.gatherDataFromServer(a.PictForm.EntitiesBundle,e=>{setTimeout(()=>t(e),0)})});else{const e=[];let i={Value:s,Input:a,View:t};for(let n=0;n<a.PictForm.EntitiesBundle.length;n++){let r=a.PictForm.EntitiesBundle[n];c.anticipate(n=>{try{switch(r.Type){case"Custom":return this.gatherCustomDataSet(n,r,t,a,s);case"SetStateAddress":e.push(i),i=this.fable.manifest.getValueByHash(this.fable,r.StateAddress),void 0===i&&(i={},this.fable.manifest.setValueByHash(this.fable,r.StateAddress,i));break;case"PopState":e.length>0?i=e.pop():this.log.warn("EntityBundleRequest encountered a PopState without a matching SetStateAddress.");break;case"MapJoin":this.pict.EntityProvider.mapJoin(r,this.pict.EntityProvider.prepareState(i,r));break;case"ProjectDataset":this.pict.EntityProvider.projectDataset(r,this.pict.EntityProvider.prepareState(i,r));break;default:return this.gatherEntitySet(n,r,t,a,s)}}catch(t){this.log.error("EntityBundleRequest error gathering entity set: ".concat(t),t)}return n()})}c.anticipate(t=>setTimeout(t,0))}return c.anticipate(i=>{if(a.PictForm.EntityBundleTriggerGroup&&this.pict.views.PictFormMetacontroller){const i=this.getTriggerGroupConfigurationArray(a,a.PictForm.EntityBundleTriggerGroup)[0];let n;i&&Array.isArray(i.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,i.PreSolvers,"EntityBundleTriggerGroup hash ".concat(i.TriggerGroupHash," pre-trigger")),i&&Array.isArray(i.PostSolvers)&&(n=r||this.pict.getUUID(),n!==r&&this.pict.TransactionTracking.registerTransaction(n),t.registerOnTransactionCompleteCallback(n,()=>{Array.isArray(i.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,i.PostSolvers,"EntityBundleTriggerGroup hash ".concat(i.TriggerGroupHash," tabular post-trigger"))})),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(a.PictForm.EntityBundleTriggerGroup,":BundleLoad:").concat(e.Hash||e.DataAddress,":").concat(this.pict.getUUID()),r),n&&n!==r&&t.finalizeTransaction(n)}a.PictForm.EntityBundleTriggerMetacontrollerSolve&&this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.solve(),a.PictForm.EntityBundleTriggerMetacontrollerRender&&this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.render(),i()}),new Promise((e,i)=>{c.wait(i=>(i&&this.log.error("EntityBundleRequest error gathering entity set: ".concat(i),i),r&&t.eventTransactionAsyncOperationComplete(r,o),e(i)))})}getTriggerGroupConfigurationArray(t,e){let i=t.PictForm.AutofillTriggerGroup;return i?(Array.isArray(i)||(i=[i]),null==e?i:i.filter(t=>t.TriggerGroupHash===e)):[]}onInputInitialize(t,e,i,n,r,o,a){return n.PictForm&&(r||n.PictForm.EntityBundleTriggerWithoutValue)&&n.PictForm.EntityBundleTriggerOnInitialize&&this.gatherDataFromServer(t,n,r,o,a),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this.log.error("EntityBundleRequest for input [".concat(i.Hash,"] Tabular support is intentionally not supported.")),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return e.PictForm&&(i||e.PictForm.EntityBundleTriggerWithoutValue)&&!1!==e.PictForm.EntityBundleTriggerOnDataChange&&this.gatherDataFromServer(t,e,i,n,r),super.onDataChange(t,e,i,n,r)}onAfterEventCompletion(t,e,i,n,r,o){const a=_slicedToArray(("string"==typeof r?r:"").split(":"),2),s=a[0],c=a[1];return"TriggerGroup"===s&&c&&e.PictForm.TriggerGroupHash===c?(this.gatherDataFromServer(t,e,i,n,o),super.onAfterEventCompletion(t,e,i,n,r,o)):super.onAfterEventCompletion(t,e,i,n,r,o)}}},{"../Pict-Provider-InputExtension.js":52}],65:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}getInputContent(t,e){let i=null;return e&&"string"==typeof e&&(i=e),t.Content&&"string"==typeof t.Content&&(i=t.Content),t.Default&&"string"==typeof t.Default&&(i=t.Default),i}onInputInitialize(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onInputInitialize(t,e,i,n,s,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],66:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.setAttribute(this.getInputHTMLID(n.Macro.RawHTMLID),"href",r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.setAttribute(this.getTabularInputHTMLID(i.Macro.RawHTMLID,o),"href",n),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],67:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js"),r=t("marked");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}getInputContent(t,e){let i=null;return e&&"string"==typeof e&&(i=e),t.Content&&"string"==typeof t.Content&&(i=t.Content),t.Default&&"string"==typeof t.Default&&(i=t.Default),i&&(i=r.parse(i)),i}onInputInitialize(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onInputInitialize(t,e,i,n,s,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52,marked:4}],68:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}roundValue(t,e){let i=e;if("DecimalPrecision"in t.PictForm){let e=this.fable.Math.roundHalfUp;if("RoundingMethod"in t.PictForm)try{e=parseInt(t.PictForm.RoundingMethod)}catch(e){this.log.error("Error parsing rounding method onDataMarshalToForm for input ".concat(t.Hash),e)}i=this.fable.Math.toFixedPrecise(i,t.PictForm.DecimalPrecision,e)}return"AddCommas"in t.PictForm&&t.PictForm.AddCommas&&(i=this.fable.DataFormat.formatterAddCommasToNumber(i)),"DigitsPrefix"in t.PictForm&&(i=t.PictForm.DigitsPrefix+i),"DigitsPostfix"in t.PictForm&&(i+=t.PictForm.DigitsPostfix),i}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getInputHTMLID(n.Macro.RawHTMLID),this.roundValue(n,r)),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent("#PRECISE-"+this.getTabularInputHTMLID(i.Macro.RawHTMLID,o).substring(1),n),this.pict.ContentAssignment.assignContent(this.getTabularInputHTMLID(i.Macro.RawHTMLID,o),this.roundValue(i,n)),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],69:[function(t,e,i){e.exports="\n.pict-section-form-richtext\n{\n\tdisplay: block;\n\twidth: 100%;\n\tmin-height: 64px;\n\tborder: 1px solid var(--theme-color-border-primary, #D4C4A8);\n\tborder-radius: 4px;\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tfont-family: var(--theme-font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);\n\tfont-size: 0.95rem;\n\tline-height: 1.55;\n\tbox-sizing: border-box;\n}\n\n.pict-section-form-richtext-view\n{\n\tpadding: 10px 14px;\n\tmin-height: 48px;\n}\n\n.pict-section-form-richtext-view.is-empty\n{\n\tcolor: var(--theme-color-text-muted, #8A7F72);\n\tfont-style: italic;\n}\n\n.pict-section-form-richtext-view :first-child { margin-top: 0; }\n.pict-section-form-richtext-view :last-child { margin-bottom: 0; }\n\n.pict-section-form-richtext-view h1,\n.pict-section-form-richtext-view h2,\n.pict-section-form-richtext-view h3,\n.pict-section-form-richtext-view h4\n{\n\tcolor: var(--theme-color-text-heading, var(--theme-color-text-primary, #2A2520));\n\tmargin: 0.6em 0 0.3em 0;\n\tline-height: 1.25;\n}\n\n.pict-section-form-richtext-view code\n{\n\tfont-family: var(--theme-font-mono, 'SFMono-Regular', Menlo, monospace);\n\tfont-size: 0.9em;\n\tpadding: 1px 5px;\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tborder-radius: 3px;\n}\n\n.pict-section-form-richtext-view pre\n{\n\tfont-family: var(--theme-font-mono, 'SFMono-Regular', Menlo, monospace);\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tpadding: 10px 12px;\n\tborder-radius: 4px;\n\toverflow: auto;\n}\n\n.pict-section-form-richtext-view blockquote\n{\n\tmargin: 0.5em 0;\n\tpadding: 4px 12px;\n\tborder-left: 3px solid var(--theme-color-accent, #2E7D74);\n\tcolor: var(--theme-color-text-secondary, #5A4A3C);\n\tbackground: var(--theme-color-background-secondary, #FBF7EE);\n}\n\n.pict-section-form-richtext-view img\n{\n\tmax-width: 100%;\n\theight: auto;\n\tborder-radius: 3px;\n}\n\n.pict-section-form-richtext-edit\n{\n\tpadding: 0;\n\tmin-height: 220px;\n}\n\n/*\n * The editor (pict-section-markdowneditor) brings its own chrome inside the\n * slot. We just provide a container border + sane min-height; CodeMirror takes\n * over from there.\n */\n\n/* Optional mode-toggle affordance — render inside the slot from the host UI\n * via _Pict.providers['Pict-Input-RichText'].toggleMode('<hash>'). The chip is\n * absolutely positioned in the top-right corner so it doesn't take a column\n * from the form layout. */\n.pict-section-form-richtext { position: relative; }\n\n.pict-section-form-richtext-toggle\n{\n\tposition: absolute;\n\ttop: 6px;\n\tright: 6px;\n\tz-index: 2;\n\tpadding: 3px 9px;\n\tfont-size: 0.72rem;\n\tfont-weight: 600;\n\tcolor: var(--theme-color-text-secondary, #5A4A3C);\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tborder: 1px solid var(--theme-color-border-secondary, #D4C4A8);\n\tborder-radius: 3px;\n\tcursor: pointer;\n\tuser-select: none;\n}\n\n.pict-section-form-richtext-toggle:hover\n{\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tborder-color: var(--theme-color-accent, #2E7D74);\n}\n\n.pict-section-form-richtext.mode-edit .pict-section-form-richtext-toggle::after { content: 'Done'; }\n.pict-section-form-richtext.mode-view .pict-section-form-richtext-toggle::after { content: 'Edit'; }\n"},{}],70:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js"),r=t("marked"),o=t("pict-section-markdowneditor"),a=t("./Pict-Provider-Input-RichText-CSS.js"),s={ProviderIdentifier:"Pict-Input-RichText",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(s)),e),i),this.pict,this.log,this._instances={},this.pict&&this.pict.CSSMap&&"function"==typeof this.pict.CSSMap.addCSS&&this.pict.CSSMap.addCSS("Pict-Input-RichText-CSS",a,500)}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}_resolveContent(t,e){return"string"==typeof e&&e.length>0?e:t&&t.Content&&"string"==typeof t.Content?t.Content:t&&t.Default&&"string"==typeof t.Default?t.Default:""}_renderMarkdown(t){try{return r.parse(t||"")}catch(e){this.log&&this.log.warn("[Pict-Input-RichText] marked.parse failed",{error:e.message});let i=String(t||"").replace(/[&<>"]/g,t=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[t]));return"<pre>".concat(i,"</pre>")}}_writeHiddenInputValue(t,e){let i="undefined"!=typeof document?document.getElementById(t):null;if(!i)return!1;i.value=null==e?"":String(e);try{i.dispatchEvent(new Event("change",{bubbles:!0}))}catch(t){}return!0}_assignSlotContent(t,e){return!(!this.pict||!this.pict.ContentAssignment||"function"!=typeof this.pict.ContentAssignment.assignContent)&&(this.pict.ContentAssignment.assignContent(t,e),!0)}_mountView(t,e,i){let n,r=e.Macro.RawHTMLID,o=this.getContentDisplayHTMLID(r),a=this._resolveContent(e,i);if(n=a&&a.length>0?'<div class="pict-section-form-richtext-view">'.concat(this._renderMarkdown(a),"</div>"):'<div class="pict-section-form-richtext-view is-empty">(empty)</div>',this._assignSlotContent(o,n),"undefined"!=typeof document){let t=document.getElementById(r+"-CONTAINER")||document.querySelector(o);t&&t.classList&&(t.classList.remove("mode-edit"),t.classList.add("mode-view"))}let s=this._instances[e.Hash]||{};s.mode="view",s.slotID=o,s.lastValue=a,s.input=e,s.viewInstance=null,this._instances[e.Hash]=s}_buildEditorOptions(t,e,i){let n=(t.PictForm&&t.PictForm.RichText||{}).EditorOptions||{},r=t.Macro.RawHTMLID,o="AppData._PictInputRichText.".concat(t.Hash,".Segments");return this.pict.AppData._PictInputRichText||(this.pict.AppData._PictInputRichText={}),this.pict.AppData._PictInputRichText[t.Hash]={Segments:[{Content:e||""}]},Object.assign({},n,{ViewIdentifier:"Pict-Input-RichText-Editor-".concat(t.Hash),TargetElementAddress:this.getContentDisplayHTMLID(r),ContentDataAddress:o,ReadOnly:!1})}_mountEdit(t,e,i,n){let r=e.Macro.RawHTMLID,a=this.getContentDisplayHTMLID(r),s=this._resolveContent(e,i),c=this._instances[e.Hash]||{};c.input=e,this._assignSlotContent(a,"");let l=this._buildEditorOptions(e,s,c),p=l.ViewIdentifier,d=e.PictForm&&e.PictForm.RichText||{},u=this;this.pict.addView(p,l,class extends o{constructor(t,e,i){super(t,e,i)}onContentChange(t,i){try{u._writeHiddenInputValue(r,i);let t=u._instances[e.Hash];t&&(t.lastValue=i)}catch(t){u.log&&u.log.warn("[Pict-Input-RichText] onContentChange handler failed",{error:t.message,inputHash:e.Hash})}super.onContentChange&&super.onContentChange(t,i)}onImageUpload(t,i,n){if(!d.AllowImages)return u.log&&u.log.info("[Pict-Input-RichText] image upload rejected (AllowImages=false)",{inputHash:e.Hash,fileName:t&&t.name}),n("Image uploads are disabled for this field."),!0;let r=d.ImageUploader;if(r&&u.pict&&u.pict.PictApplication&&"function"==typeof u.pict.PictApplication[r])try{return u.pict.PictApplication[r](t,e,n)}catch(t){return u.log&&u.log.warn("[Pict-Input-RichText] ImageUploader threw",{error:t.message,inputHash:e.Hash}),n(t.message),!0}return!1}});let h=this.pict.views[p];if(!h){let t=new Error("Failed to instantiate RichText editor view "+p);return this.log&&this.log.error("[Pict-Input-RichText] addView returned nothing",{viewHash:p}),void("function"==typeof n&&n(t))}if("undefined"!=typeof document){let t=document.querySelector(a);t&&t.classList&&(t.classList.remove("mode-view"),t.classList.add("mode-edit","pict-section-form-richtext-edit"))}c.mode="edit",c.slotID=a,c.lastValue=s,c.viewInstance=h,c.viewHash=p,this._instances[e.Hash]=c;try{let t=h.render();t&&"function"==typeof t.then?t.then(()=>{"function"==typeof n&&n(null)},t=>{"function"==typeof n&&n(t)}):"function"==typeof n&&n(null)}catch(t){this.log&&this.log.error("[Pict-Input-RichText] editor.render threw",{error:t.message}),"function"==typeof n&&n(t)}}_destroyEdit(t){let e=this._instances[t.Hash];if(!e||!e.viewInstance)return;let i=e.viewInstance;try{"function"==typeof i.destroy&&i.destroy()}catch(t){this.log&&this.log.warn("[Pict-Input-RichText] editor.destroy threw",{error:t.message})}if(this.pict.AppData._PictInputRichText&&this.pict.AppData._PictInputRichText[t.Hash]&&delete this.pict.AppData._PictInputRichText[t.Hash],e.viewHash&&this.pict.views&&this.pict.views[e.viewHash])try{delete this.pict.views[e.viewHash]}catch(t){}e.viewInstance=null,e.viewHash=null}getMode(t){let e=this._instances[t];return e?e.mode:null}setMode(t,e,i){let n=this._instances[t];if(!n){let e=new Error("Cannot setMode — input is not mounted: "+t);return void("function"==typeof i&&i(e))}if("edit"!==e&&"view"!==e){let t=new Error('setMode: unknown mode "'+e+'" (use "edit" or "view")');return void("function"==typeof i&&i(t))}n.mode!==e?"edit"!==e?(this._destroyEdit(n.input),this._mountView(null,n.input,n.lastValue),"function"==typeof i&&i(null)):this._mountEdit(null,n.input,n.lastValue,i):"function"==typeof i&&i(null)}toggleMode(t,e){let i="edit"===this.getMode(t)?"view":"edit";this.setMode(t,i,e)}commit(t,e){let i=this._instances[t];i&&"edit"===i.mode&&i.viewInstance,"function"==typeof e&&e(null)}onInputInitialize(t,e,i,n,r,o,a){return this._mountView(t,n,r),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=new Error("RichText InputType is not supported inside Tabular rows in Phase 1.");throw this.log&&this.log.warn("[Pict-Input-RichText] tabular not supported",{inputHash:i&&i.Hash}),s}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this._instances[n.Hash];if(s){if("view"===s.mode)this._mountView(t,n,r);else if(s.lastValue="string"==typeof r?r:s.lastValue,this.pict.AppData._PictInputRichText&&this.pict.AppData._PictInputRichText[n.Hash]&&(this.pict.AppData._PictInputRichText[n.Hash].Segments=[{Content:s.lastValue}],s.viewInstance&&"function"==typeof s.viewInstance.render))try{s.viewInstance.render()}catch(t){this.log&&this.log.warn("[Pict-Input-RichText] re-render after marshal threw",{error:t.message})}}else this._mountView(t,n,r);return super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}},e.exports.default_configuration=s},{"../Pict-Provider-InputExtension.js":52,"./Pict-Provider-Input-RichText-CSS.js":69,marked:4,"pict-section-markdowneditor":28}],71:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getSelectInputHTMLID(t){return"#SELECT-FOR-".concat(t)}getTabularSelectInputID(t,e){return"#SELECT-TABULAR-DATA-".concat(t,"-").concat(e)}getTabularSelectDropdownID(t,e){return"#SELECT-TABULAR-DROPDOWN-".concat(t,"-").concat(e)}refreshSelectList(t,e,i,n,r,o){var a;let s=this.pict.ContentAssignment.getElement(this.getSelectInputHTMLID(n.Macro.RawHTMLID)),c=null===(a=n.PictForm)||void 0===a?void 0:a.SelectOptions;if(n.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(n.PictForm.SelectOptionsPickList)&&(c=this.pict.providers.DynamicMetaLists.getList(n.PictForm.SelectOptionsPickList)),!s||s.length<1)return!1;if(c=this.pict.providers.ListDistilling.filterList(t,n,c),s=s[0],s.innerHTML="",s&&c&&Array.isArray(c))for(let t=0;t<c.length;t++){let e=document.createElement("option");e.value=c[t].id,e.text=c[t].text,s.appendChild(e)}}refreshSelectListTabular(t,e,i,n,r,o,a){var s;let c=this.pict.ContentAssignment.getElement(this.getTabularSelectDropdownID(n.Macro.RawHTMLID,a)),l=null===(s=n.PictForm)||void 0===s?void 0:s.SelectOptions;if(n.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(n.PictForm.SelectOptionsPickList)&&(l=this.pict.providers.DynamicMetaLists.getList(n.PictForm.SelectOptionsPickList)),l=this.pict.providers.ListDistilling.filterList(t,n,l),Array.isArray(c)&&!(c.length<1)&&(c=c[0],c.innerHTML="",c&&l&&Array.isArray(l)))for(let t=0;t<l.length;t++){let e=document.createElement("option");e.value=l[t].id,e.text=l[t].text,c.appendChild(e)}}onInputInitialize(t,e,i,n,r,o,a){return this.refreshSelectList(t,e,i,n,r,o),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this.refreshSelectListTabular(t,e,t.getRow(i.PictForm.GroupIndex,o),i,n,r,o),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return super.onDataChange(t,e,i,n,r)}onDataChangeTabular(t,e,i,n,r,o){return super.onDataChangeTabular(t,e,i,n,r,o)}onDataMarshalToForm(t,e,i,n,r,o,a){const s=this.pict.ContentAssignment.getElement(this.getSelectInputHTMLID(n.Macro.RawHTMLID));if(!s||s.length<1)return!1;const c=s[0];if(!(c instanceof HTMLSelectElement))return!1;let l=!1;for(let t=0;t<c.options.length;t++)if(c.options[t].value===r){c.selectedIndex=t,l=!0;break}return l||(c.selectedIndex=-1),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){const s=this.pict.ContentAssignment.getElement(this.getTabularSelectDropdownID(i.Macro.RawHTMLID,o));if(!s||s.length<1)return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a);const c=s[0];if(!(c instanceof HTMLSelectElement))return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a);let l=!1;for(let t=0;t<c.options.length;t++)if(c.options[t].value===n){c.selectedIndex=t,l=!0;break}return l||(c.selectedIndex=-1),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onDataRequest(t,e,i,n){let r=this.pict.ContentAssignment.readContent(this.getSelectInputHTMLID(e.Macro.RawHTMLID));return this.pict.ContentAssignment.assignContent(n,r),t.dataChanged(e.Hash),super.onDataRequest(t,e,r,n)}onDataRequestTabular(t,e,i,n,r){let o=this.pict.ContentAssignment.readContent(this.getTabularSelectDropdownID(e.Macro.RawHTMLID,r));return this.pict.ContentAssignment.assignContent(this.getTabularSelectInputID(e.Macro.RawHTMLID,r),o),t.dataChangedTabular(e.PictForm.GroupIndex,e.PictForm.InputIndex,r),super.onDataRequestTabular(t,e,i,n,r)}}},{"../Pict-Provider-InputExtension.js":52}],72:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.cssHideClass="pict-tab-group-hidden",this.cssSelectedTabClass="pict-tab-group-selectedtab",this.cssSnippet=".pict-tab-group-hidden { display: none; } .pict-tab-group-selectedtab { font-weight: bold; }",this.setCSSSnippets()}setCSSSnippets(t,e){this.cssHideClass=t||this.cssHideClass,this.cssSnippet=e||this.cssSnippet,this.pict.CSSMap.addCSS("Pict-Section-Form-Input-Group-TabSelector",this.cssSnippet,1001,"Pict-Input-TabSelector"),this.pict.CSSMap.injectCSS()}getTabSelector(t,e,i){return"#TAB-".concat(i,"-").concat(e.Macro.RawHTMLID)}getGroupSelector(t,e){return"#GROUP-".concat(t.formID,"-").concat(e)}selectTabByViewHash(t,e,i){var n;let r=this.pict.views[t];if(!r)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the view did not exist!")),!1;let o=r.getInputFromHash(e);if(!o)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not exist!")),!1;if(null==o||null===(n=o.PictForm)||void 0===n||!n.TabGroupSet||!Array.isArray(o.PictForm.TabGroupSet))return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not have a valid TabGroupSet array in the PictForm object!")),!1;for(let t=0;t<o.PictForm.TabGroupSet.length;t++){let e=o.PictForm.TabGroupSet[t];e!=i?(this.pict.ContentAssignment.addClass(this.getGroupSelector(r,e),this.cssHideClass),this.pict.ContentAssignment.removeClass(this.getTabSelector(r,o,e),this.cssSelectedTabClass)):(this.pict.ContentAssignment.removeClass(this.getGroupSelector(r,e),this.cssHideClass),this.pict.ContentAssignment.addClass(this.getTabSelector(r,o,e),this.cssSelectedTabClass))}return r.setDataByInput(o,i),!0}getTabSelectorInputHTMLID(t){return"#TAB-SELECT-FOR-".concat(t)}onInputInitialize(t,e,i,n,r,o,a){var s,c,l,p;let d=null===(s=n.PictForm)||void 0===s?void 0:s.TabGroupSet;if(!d||!Array.isArray(d)||d.length<1)return this.pict.log.error("TabSelector input provider tried to initialize Tab Group Set for HTML ID [".concat(n.Macro.RawHTMLID,"] but there were no valid entries in the tmpInput.PictForm.TabGroupSet array!")),!1;let u=this.pict.providers.DynamicInput.getInputTemplateHash(t,{PictForm:{InputType:"TabGroupSelector-TabElement",DataType:"String"}}),h="",m=(null===(c=n.PictForm)||void 0===c?void 0:c.TabGroupNames)||[];for(let e=0;e<d.length;e++)h+=this.pict.parseTemplateByHash(u,n,null,[t,{TabGroupHash:d[e],TabGroupName:m[e]||d[e]}]);this.pict.ContentAssignment.projectContent("replace",this.getTabSelectorInputHTMLID(n.Macro.RawHTMLID),h,"FixTheTypescriptTypes");const g=!1!==(null===(l=n.PictForm)||void 0===l?void 0:l.DefaultFromData)&&r||(null===(p=n.PictForm)||void 0===p?void 0:p.DefaultTabGroupHash)||d[0];return this.selectTabByViewHash(t.Hash,n.Hash,g),super.onInputInitialize(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],73:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.cssHideClass="pict-tab-section-hidden",this.cssSelectedTabClass="pict-tab-section-selectedtab",this.cssSnippet=".pict-tab-section-hidden { display: none; } .pict-tab-section-selectedtab { font-weight: bold; }",this.setCSSSnippets()}setCSSSnippets(t,e){this.cssHideClass=t||this.cssHideClass,this.cssSnippet=e||this.cssSnippet,this.pict.CSSMap.addCSS("Pict-Section-Form-Input-Section-TabSelector",this.cssSnippet,1001,"Pict-Input-TabSelector")}getViewHash(t){return"PictSectionForm-".concat(t)}getTabSelector(t,e){return"#TAB-".concat(t,"-").concat(e.Macro.RawHTMLID)}getSectionSelector(t){const e=this.pict.views.PictFormMetacontroller;return"#Pict-".concat(e?e.UUID:this.UUID,"-").concat(t,"-Wrap")}selectTabByViewHash(t,e,i){var n;let r=this.pict.views[t];if(!r)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the view did not exist!")),!1;let o=r.getInputFromHash(e);if(!o)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not exist!")),!1;if(null==o||null===(n=o.PictForm)||void 0===n||!n.TabSectionSet||!Array.isArray(o.PictForm.TabSectionSet))return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not have a valid TabSectionSet array in the PictForm object!")),!1;if(!this.pict.views[this.getViewHash(i)])return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the tab view did not exist!")),!1;for(let t=0;t<o.PictForm.TabSectionSet.length;t++){let e=o.PictForm.TabSectionSet[t];e!=i?(this.pict.ContentAssignment.addClass(this.getSectionSelector(e),this.cssHideClass),this.pict.ContentAssignment.removeClass(this.getTabSelector(e,o),this.cssSelectedTabClass)):(this.pict.ContentAssignment.removeClass(this.getSectionSelector(e),this.cssHideClass),this.pict.ContentAssignment.addClass(this.getTabSelector(e,o),this.cssSelectedTabClass))}return r.setDataByInput(o,i),!0}getTabSelectorInputHTMLID(t){return"#TAB-SELECT-FOR-".concat(t)}onInputInitialize(t,e,i,n,r,o,a){var s,c,l,p;let d=null===(s=n.PictForm)||void 0===s?void 0:s.TabSectionSet;if(!d||!Array.isArray(d)||d.length<1)return this.pict.log.error("TabSelector input provider tried to initialize Tab Group Set for HTML ID [".concat(n.Macro.RawHTMLID,"] but there were no valid entries in the tmpInput.PictForm.TabSectionSet array!")),!1;let u=this.pict.providers.DynamicInput.getInputTemplateHash(t,{PictForm:{InputType:"TabSectionSelector-TabElement",DataType:"String"}}),h="",m=(null===(c=n.PictForm)||void 0===c?void 0:c.TabSectionNames)||[];for(let e=0;e<d.length;e++)h+=this.pict.parseTemplateByHash(u,n,null,[t,{TabSectionHash:d[e],TabSectionName:m[e]||d[e]}]);this.pict.ContentAssignment.projectContent("replace",this.getTabSelectorInputHTMLID(n.Macro.RawHTMLID),h,"FixTheTypescriptTypes");const g=!1!==(null===(l=n.PictForm)||void 0===l?void 0:l.DefaultFromData)&&r||(null===(p=n.PictForm)||void 0===p?void 0:p.DefaultTabSectionHash)||d[0];return this.selectTabByViewHash(t.Hash,n.Hash,g),super.onInputInitialize(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],74:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.pict,this.log}getTriggerGroupConfigurationArray(t){let e=t.PictForm.TabularTriggerGroup;return e?(Array.isArray(e)||(e=[e]),e):[]}ensureRowCache(t,e){return this.pict.AppData._TabularTriggerCache||(this.pict.AppData._TabularTriggerCache={}),this.pict.AppData._TabularTriggerCache[t]||(this.pict.AppData._TabularTriggerCache[t]={}),this.pict.AppData._TabularTriggerCache[t][e]||(this.pict.AppData._TabularTriggerCache[t][e]={}),this.pict.AppData._TabularTriggerCache[t][e]}gatherEntitySet(t,e,i,n,r,o,a){if(!e.Entity||"string"!=typeof e.Entity)return this.log.warn("TabularTriggerGroup failed to parse entity request: missing Entity string."),t();if(!e.Filter||"string"!=typeof e.Filter)return this.log.warn("TabularTriggerGroup failed to parse entity request: missing Filter string."),t();if(!e.Destination||"string"!=typeof e.Destination)return this.log.warn("TabularTriggerGroup failed to parse entity request: missing Destination string."),t();let s={Value:r,Input:n,View:i},c=this.pict.parseTemplate(e.Filter,s);""===c&&this.log.warn("TabularTriggerGroup: entity Filter did not return a string for FilterBy");let l=null,p=null;e.RecordCount&&(l=null!=e.RecordStartCursor?e.RecordStartCursor:0,p=null!=e.RecordCount?e.RecordCount:null);let d=(i,n)=>{if(i)return this.log.error("TabularTriggerGroup error getting entity set for [".concat(e.Entity,"] row ").concat(o,": ").concat(i),i),t(i);this.log.trace("TabularTriggerGroup found ".concat(n.length," records for ").concat(e.Entity," row ").concat(o));let r=this.ensureRowCache(a,o);return e.SingleRecord?n.length<1?this.pict.manifest.setValueByHash(r,e.Destination,!1):this.pict.manifest.setValueByHash(r,e.Destination,n[0]):this.pict.manifest.setValueByHash(r,e.Destination,n),t()};p?this.pict.EntityProvider.getEntitySetPage(e.Entity,c,l,p,d):this.pict.EntityProvider.getEntitySet(e.Entity,c,d)}gatherCustomDataSet(t,e,i,n,r,o,a){if(!e.URL||"string"!=typeof e.URL)return this.log.warn("TabularTriggerGroup failed to parse custom request: missing URL string."),t();let s={Value:r,Input:n,View:i},c=this.pict.parseTemplate(e.URL,s),l="",p=!!e.Host&&e.Host,d=e.Protocol?e.Protocol:"https",u=!!e.Port&&e.Port;p?(l="".concat(d,"://").concat(p),u&&(l+=":".concat(u))):l=this.pict.EntityProvider.options.urlPrefix;let h={url:"".concat(l).concat(c)};return h=this.pict.EntityProvider.prepareRequestOptions(h),this.pict.EntityProvider.restClient.getJSON(h,(i,n,r)=>{if(i)return this.log.error("TabularTriggerGroup error getting custom data for row ".concat(o,": ").concat(i),i),t(i);if(e.Destination){let t=this.ensureRowCache(a,o);this.pict.manifest.setValueByHash(t,e.Destination,r)}return t()})}async gatherDataForRow(t,e,i,n,r,o,a){if(!Array.isArray(o.EntitiesBundle)||o.EntitiesBundle.length<1)return this.log.warn("TabularTriggerGroup: no EntitiesBundle array found for triggering input [".concat(e.Hash,"] row ").concat(r)),null;let s=o.TriggerGroupHash,c="TabularBundleLoad-".concat(this.pict.getUUID());a&&t.registerEventTransactionAsyncOperation(a,c);let l=this.fable.newAnticipate();for(let n=0;n<o.EntitiesBundle.length;n++){let a=o.EntitiesBundle[n];l.anticipate(n=>{try{return"Custom"===a.Type?this.gatherCustomDataSet(n,a,t,e,i,r,s):this.gatherEntitySet(n,a,t,e,i,r,s)}catch(t){this.log.error("TabularTriggerGroup error gathering entity set for row ".concat(r,": ").concat(t),t)}return n()})}return l.anticipate(t=>setTimeout(t,0)),l.anticipate(i=>{this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TabularTriggerGroup:".concat(s,":DataChange:").concat(e.Hash||e.DataAddress,":").concat(r,":").concat(this.pict.getUUID()),a),o.PostSolvers&&Array.isArray(o.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,o.PostSolvers,"TabularTriggerGroup hash ".concat(s," row ").concat(r," post-trigger")),i()}),new Promise((e,i)=>{l.wait(i=>(i&&this.log.error("TabularTriggerGroup error gathering data for row ".concat(r,": ").concat(i),i),a&&t.eventTransactionAsyncOperationComplete(a,c),e(i)))})}autoFillFromRowCache(t,e,i,n,r){if(!i.TriggerGroupHash||"string"!=typeof i.TriggerGroupHash)return this.log.warn("TabularTriggerGroup failed to autofill: missing TriggerGroupHash string."),!1;if(!i.TriggerAddress||"string"!=typeof i.TriggerAddress)return this.log.warn("TabularTriggerGroup failed to autofill: missing TriggerAddress string."),!1;let o=this.ensureRowCache(i.TriggerGroupHash,r),a=this.pict.manifest.getValueByHash(o,i.TriggerAddress);return!(!a&&!i.MarshalEmptyValues)&&(t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,r,a),t.manualMarshalTabularDataToViewByInput(e,r),!0)}onDataChangeTabular(t,e,i,n,r,o){let a=this.getTriggerGroupConfigurationArray(e);for(let s=0;s<a.length;s++){let c=a[s];c.TriggerAllInputs&&(c.PreSolvers&&Array.isArray(c.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,c.PreSolvers,"TabularTriggerGroup hash ".concat(c.TriggerGroupHash," row ").concat(r," pre-trigger")),this.gatherDataForRow(t,e,i,n,r,c,o))}return super.onDataChangeTabular(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){let s=("string"==typeof o?o:"").split(":"),c=s[0],l=s[1],p=(s[2],s[3]),d=parseInt(s[4],10);if("TabularTriggerGroup"!==c)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);if((e.Hash||e.DataAddress)===p)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);if(r!==d)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);let u=this.getTriggerGroupConfigurationArray(e);for(let o=0;o<u.length;o++){let a=u[o];if(a.TriggerGroupHash===l&&(a.TriggerAddress&&this.autoFillFromRowCache(t,e,a,n,r),a.SelectOptionsRefresh)){let t=this.pict.views[e.PictForm.ViewHash];t&&e.PictForm.SelectOptionsPickList&&(this.pict.providers.DynamicMetaLists.rebuildListByHash(e.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectListTabular(t,t.getGroup(e.PictForm.GroupIndex),t.getRow(e.PictForm.GroupIndex,e.PictForm.Row),e,i,n,r),t.manualMarshalTabularDataToViewByInput(e,r))}}return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return super.onDataChange(t,e,i,n,r)}onAfterEventCompletion(t,e,i,n,r,o){return super.onAfterEventCompletion(t,e,i,n,r,o)}},e.exports.default_configuration={ProviderIdentifier:"Pict-Input-TabularTriggerGroup",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1}},{"../Pict-Provider-InputExtension.js":52}],75:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}handleContentUpdate(t,e,i,n){let r="";i&&"string"==typeof i&&(r=i);e.PictForm&&e.PictForm.Template&&"string"==typeof e.PictForm.Template&&(r=this.pict.parseTemplate(e.PictForm.Template,Object.assign({},this.pict,{Data:t.getMarshalDestinationObject()}),null,[this],this)),!r&&e.Default&&"string"==typeof e.Default&&(r=e.Default),null!=n?t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,n,r):t.setDataByInput(e,r)}onInputInitialize(t,e,i,n,r,o,a){return this._handleInitialize(t,e,i,n,r,o,null,a),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this._handleInitialize(t,e,null,i,n,r,o,a),super.onInputInitializeTabular(t,e,i,n,r,o,a)}_handleInitialize(t,e,i,n,r,o,a,s){if(n.PictForm&&n.PictForm.Templates&&"object"==typeof n.PictForm.Templates&&!Array.isArray(n.PictForm.Templates))for(const t of Object.entries(n.PictForm.Templates)){var c=_slicedToArray(t,2);const e=c[0],i=c[1];this.pict.TemplateProvider.templates[e]?this.pict.log.error("[Pict-Input-Templated] Attempt to override template with hash: ".concat(e,"; skipping.")):this.pict.TemplateProvider.addTemplate(e,i,"Templated Input hash: ".concat(n.Hash))}this.handleContentUpdate(t,n,r)}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),n),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onAfterEventCompletion(t,e,i,n,r,o){var a,s;let c=_slicedToArray(("string"==typeof r?r:"").split(":"),2),l=c[0],p=c[1];if("TriggerGroup"!==l)return super.onAfterEventCompletion(t,e,i,n,r,o);const d=Array.isArray(null===(a=e.PictForm)||void 0===a?void 0:a.TriggerGroupHash)?e.PictForm.TriggerGroupHash:[null===(s=e.PictForm)||void 0===s?void 0:s.TriggerGroupHash];return e.PictForm&&e.PictForm.TriggerGroupHash&&d.includes(p)?(this.handleContentUpdate(t,e,i),t.manualMarshalDataToViewByInput(e,o),super.onAfterEventCompletion(t,e,i,n,r,o)):super.onAfterEventCompletion(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){var s,c;let l=_slicedToArray(("string"==typeof o?o:"").split(":"),2),p=l[0],d=l[1];if("TriggerGroup"!==p)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);const u=Array.isArray(null===(s=e.PictForm)||void 0===s?void 0:s.TriggerGroupHash)?e.PictForm.TriggerGroupHash:[null===(c=e.PictForm)||void 0===c?void 0:c.TriggerGroupHash];return e.PictForm&&e.PictForm.TriggerGroupHash&&u.includes(d)?(this.handleContentUpdate(t,e,i,r),t.manualMarshalTabularDataToViewByInput(e,r,a),super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)):super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],76:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");t("marked");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#".concat(t,"-").concat(e)}assignDisplayEntityData(t,e,i){let n="string"==typeof e.PictForm.TemplatedEntityLookup.Template?e.PictForm.TemplatedEntityLookup.Template:"",r="";if("object"!=typeof e)return void this.log.error("Error in assignDisplayEntityData: pInput is not an object");if(!("PictForm"in e))return void this.log.error("Error in assignDisplayEntityData: pInput.PictForm is not an object");if(!("TemplatedEntityLookup"in e.PictForm))return void this.log.error("Error in assignDisplayEntityData: pInput.PictForm.TemplatedEntityLookup is not in the PictForm object");if(!Array.isArray(e.PictForm.TemplatedEntityLookup.EntitiesBundle))return void this.log.error("Error in assignDisplayEntityData: pInput.PictForm.TemplatedEntityLookup.EntitiesBundle is not an array");const o=this.fable.newAnticipate();o.anticipate(function(t){this.pict.EntityProvider.gatherDataFromServer(e.PictForm.TemplatedEntityLookup.EntitiesBundle,e=>{setTimeout(()=>t(e),0)})}.bind(this)),o.anticipate(function(t){this.pict.parseTemplate(n,{Value:i},function(e,i){if(!e)return r=i,t();this.log.error("Error rendering template in assignDisplayEntityData",e)}.bind(this))}.bind(this)),o.wait(function(e){e?this.log.error("Error in assignDisplayEntityData",e):this.pict.ContentAssignment.assignContent(t,r)}.bind(this))}onInputInitialize(t,e,i,n,r,o,a){return this.assignDisplayEntityData(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),n,r),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this.assignDisplayEntityData(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),i,n),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onAfterEventCompletion(t,e,i,n,r,o){let a=_slicedToArray(("string"==typeof r?r:"").split(":"),5),s=(a[0],a[1]),c=(a[2],a[3],a[4]);if(c||(c=this.pict.getUUID()),!e.PictForm.TemplatedEntityLookup||!("TriggerGroupHash"in e.PictForm.TemplatedEntityLookup))return super.onAfterEventCompletion(t,e,i,n,r,o);let l=[e.PictForm.TemplatedEntityLookup];for(let t=0;t<l.length;t++){l[t].TriggerGroupHash===s&&this.assignDisplayEntityData(this.getContentDisplayHTMLID(e.Macro.RawHTMLID),e,i)}return super.onAfterEventCompletion(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){let s=_slicedToArray(("string"==typeof o?o:"").split(":"),5),c=(s[0],s[1]),l=(s[2],s[3],s[4]);if(l||(l=this.pict.getUUID()),!e.PictForm.TemplatedEntityLookup||!("TriggerGroupHash"in e.PictForm.TemplatedEntityLookup))return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);let p=[e.PictForm.TemplatedEntityLookup];for(const t of p)t.TriggerGroupHash===c&&this.assignDisplayEntityData(this.getTabularContentDisplayInputID(e.Macro.RawHTMLID,r),e,i);return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52,marked:4}],77:[function(t,e,i){const n=["ink","paper","accent","highlight","deemphasis","link"],r={ink:"#1B1F23",paper:"#FDFCF7",accent:"#E66C2C",highlight:"#FFD966",deemphasis:"#A0A0A0",link:"#2E7D74"};function o(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}e.exports={themeifySVG:function(t,e){if("string"!=typeof t)return t;let i=r;e&&"object"==typeof e&&(i=e.Palette||e);let a=t.match(/<metadata[\s\S]*?<\/metadata>/i),s=a?a[0]:"",c=" PICT-SECTION-EXCALIDRAW-METADATA ",l=s?t.replace(s,c):t;for(let t=0;t<n.length;t++){let e=n[t],r=i[e];if("string"!=typeof r||!/^#[0-9a-fA-F]{6}$/.test(r))continue;let a=new RegExp('(stroke|fill)(="|:\\s*)('+o(r)+')(?=["\\s;)])',"gi");l=l.replace(a,(t,i,n,r)=>i+n+"var(--diagram-"+e+", "+r+")")}return s?l.replace(c,s):l},paletteTokens:n,defaultPalette:r}},{}],78:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){let i=this.pict.providers.MetatemplateGenerator,n="";return n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+="No really... this is a chart.",n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}}},{"../Pict-Provider-DynamicLayout.js":45}],79:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){for(let t=0;t<e.Rows.length;t++){let i=e.Rows[t];for(let n=0;n<i.Inputs.length;n++){let r=i.Inputs[n];r.PictForm.InputIndex=n,r.PictForm.GroupIndex=e.GroupIndex,r.PictForm.RowIndex=t}}const i=e.CustomLayoutTemplateHash;if(i){const t=this.pict.TemplateProvider.getTemplate(i);if(t)return t;this.log.warn("Custom layout template not found for hash: ".concat(i))}return e.CustomLayoutTemplate||""}}},{"../Pict-Provider-DynamicLayout.js":45}],80:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){let i=this.pict.providers.MetatemplateGenerator,n="";"Rows"in e||(e.Rows=[]),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let r=0;r<e.Rows.length;r++){let o=e.Rows[r];o.WidthTotalRaw=0,n+=i.getMetatemplateTemplateReference(t,"-Template-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let t=0;t<o.Inputs.length;t++){let i=o.Inputs[t];i.PictForm.InputIndex=t,i.PictForm.GroupIndex=e.GroupIndex,i.PictForm.RowIndex=r;let n=1;try{n=Math.abs(parseFloat(i.PictForm.Width))}catch(t){n=1}(!n||isNaN(n)||n<=0)&&(n=1),i.PictForm.RawWidth=n,o.WidthTotalRaw+=n}let a=95;if("WidthQuantization"in e)try{a=Math.abs(parseInt(e.WidthQuantization)),(!a||isNaN(a)||a<=0)&&(a=95)}catch(t){a=95}else"WidthQuantization"in this.pict.PictApplication.options&&(a=this.pict.PictApplication.options.WidthQuantization);for(let s=0;s<o.Inputs.length;s++){let c=o.Inputs[s];c.PictForm.QuantizedWidth=Math.round(c.PictForm.RawWidth/o.WidthTotalRaw*a),n+=i.getInputMetatemplateTemplateReference(t,c.DataType,c.PictForm.InputType,'getInput("'.concat(e.GroupIndex,'","').concat(r,'","').concat(s,'")'))}n+=i.getMetatemplateTemplateReference(t,"-Template-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}return n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}}},{"../Pict-Provider-DynamicLayout.js":45}],81:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){if(!e.supportingManifest)return this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] error generating tabular metatemplate: missing group manifest ").concat(e.RecordManifest," from supportingManifests.")),"";let i=this.pict.providers.MetatemplateGenerator,n="",r="";n+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));let o=0;for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementAddresses[t],n=e.supportingManifest.elementDescriptors[i];"PictForm"in n||(n.PictForm={}),n.PictForm.TabularHidden||(n.PictForm.InputIndex=t,n.PictForm.GroupIndex=e.GroupIndex,n.PictForm.Row&&(n.PictForm.RowIndex=n.PictForm.Row,n.PictForm.RowIndex>o&&(o=n.PictForm.RowIndex)))}for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementAddresses[t],n=e.supportingManifest.elementDescriptors[i];"PictForm"in n||(n.PictForm={}),n.PictForm.TabularHidden||(n.PictForm.RowIndex||(n.PictForm.RowIndex=o+1))}for(let n=0;n<o+1;n++){r+=i.getMetatemplateTemplateReference(t,"-Template-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let o=0;o<e.supportingManifest.elementAddresses.length;o++){let a=e.supportingManifest.elementAddresses[o],s=e.supportingManifest.elementDescriptors[a];if(!s.PictForm.TabularHidden&&s.PictForm.RowIndex==n){r+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Cell-Prefix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'));let n="PictForm"in s&&s.PictForm.InputType?s.PictForm.InputType:"Default";r+=i.getTabularInputMetatemplateTemplateReference(t,s.DataType,n,'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'),e.GroupIndex,o),r+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Cell-Postfix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'))}}r+=i.getMetatemplateTemplateReference(t,"-Template-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}let a="";return a+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),a+=i.getMetatemplateTemplateReferenceRaw(t,"-RecordSetTemplate-Row-ExtraPrefix","Record"),a+="\n\n{~T:".concat(e.SectionTabularRowTemplateHash,":Record~}\n"),a+=i.getMetatemplateTemplateReferenceRaw(t,"-RecordSetTemplate-Row-ExtraPostfix","Record"),a+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+="\n\n{~MTVS:".concat(e.SectionTabularRowVirtualTemplateHash,":").concat(e.GroupIndex,":").concat(t.getMarshalDestinationAddress(),".").concat(e.RecordSetAddress,"~}\n"),n+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowVirtualTemplateHash,a),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowTemplateHash,r),n}}},{"../Pict-Provider-DynamicLayout.js":45}],82:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.pict&&this.pict.providers&&this.pict.providers.Icon&&"function"==typeof this.pict.providers.Icon.registerSet&&this.pict.providers.Icon.registerSet({Outline:{Sort:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 20V5"/><path d="M5.5 8.5L9 5L12.5 8.5"/><path d="M15 4V19"/><path d="M11.5 15.5L15 19L18.5 15.5"/></svg>',SortAscending:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20V5"/><path d="M6 11L12 5L18 11"/></svg>',SortDescending:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4V19"/><path d="M6 13L12 19L18 13"/></svg>'}}),this.pict&&this.pict.CSSMap&&"function"==typeof this.pict.CSSMap.addCSS&&this.pict.CSSMap.addCSS("Pict-Layout-Tabular-Sort-CSS",".pict-tabular-sort-control { cursor: pointer; display: inline-flex; vertical-align: middle; margin-left: 0.3em; opacity: 0.4; } .pict-tabular-sort-control:hover { opacity: 0.75; } .pict-tabular-sort-control.pict-tabular-sort-asc, .pict-tabular-sort-control.pict-tabular-sort-desc { opacity: 1; }",500)}_buildSortableHeaderCell(t,e,i,n){let r=e._SortState||{ColumnIndex:-1,Direction:"none"},o=r.ColumnIndex===n&&"none"!==r.Direction,a="Sort",s="pict-tabular-sort-none";o&&"asc"===r.Direction?(a="SortAscending",s="pict-tabular-sort-asc"):o&&"desc"===r.Direction&&(a="SortDescending",s="pict-tabular-sort-desc");let c="function"==typeof this.pict.icon?this.pict.icon(a):"",l=this._escapeHTML(i&&null!=i.Name?String(i.Name):"");return'\n\t\t\t\t\t\t<th data-tabular-column-index="'.concat(n,'">').concat(l," ")+'<span class="pict-tabular-sort-control '.concat(s,'" ')+"onclick=\"_Pict.providers['Pict-Layout-Tabular'].sortTabularColumn('".concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(n,')">')+"".concat(c,"</span></th>\n")}_getTabularCellValue(t,e,i){if(!e||!i||!t.supportingManifest)return;let n=e.PictForm&&"string"==typeof e.PictForm.InformaryDataAddress&&e.PictForm.InformaryDataAddress.length>0?e.PictForm.InformaryDataAddress:e.Hash;try{return t.supportingManifest.getValueByHash(i,n)}catch(t){return}}_compareTabularValues(t,e){let i=null==t?"":t,n=null==e?"":e,r=Number(i),o=Number(n);return""===i||""===n||isNaN(r)||isNaN(o)?String(i).localeCompare(String(n)):r<o?-1:r>o?1:0}sortTabularColumn(t,e,i){let n=this.pict.views[t];if(!n||!n.sectionDefinition||!Array.isArray(n.sectionDefinition.Groups))return!1;let r=n.sectionDefinition.Groups[Number(e)];if(!r||!0!==r.ColumnSorting)return!1;let o=Number(i);if(isNaN(o)||o<0)return!1;r._SortState||(r._SortState={ColumnIndex:-1,Direction:"none"}),r._SortState.ColumnIndex===o&&"asc"===r._SortState.Direction?r._SortState.Direction="desc":(r._SortState.ColumnIndex=o,r._SortState.Direction="asc");let a=null;if(r.supportingManifest&&Array.isArray(r.supportingManifest.elementAddresses)){let t=r.supportingManifest.elementAddresses[o];a=r.supportingManifest.elementDescriptors[t]}let s=n.sectionManifest.getValueByHash(n.getMarshalDestinationObject(),r.RecordSetAddress);if(a&&Array.isArray(s)){let t="desc"===r._SortState.Direction?-1:1;s.sort((e,i)=>this._compareTabularValues(this._getTabularCellValue(r,a,e),this._getTabularCellValue(r,a,i))*t)}return n.rebuildCustomTemplate(),n.render(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():n.marshalToView(),!0}_parseTabularTemplate(t,e){if("string"!=typeof t)return"";if(-1===t.indexOf("{"))return t;try{let i=this.pict.parseTemplate(t,e,null);return"string"==typeof i?i:""}catch(t){return this.log.warn("PICT Form Tabular template parse failed: ".concat(t&&t.message)),""}}_buildExpandedHeadersConfig(t,e){let i=[];if(Array.isArray(e.Headers))for(let t=0;t<e.Headers.length;t++){let n=e.Headers[t];if(!Array.isArray(n))continue;let r=[];for(let t=0;t<n.length;t++){let e=n[t];e&&"object"==typeof e&&r.push({Label:"string"==typeof e.Label?e.Label:"",ColumnSpan:Number(e.ColumnSpan)>0?Number(e.ColumnSpan):1,CSSClass:"string"==typeof e.CSSClass?e.CSSClass:""})}i.push(r)}let n=!1;if(Array.isArray(e.DynamicColumns))for(let t=0;t<e.DynamicColumns.length;t++)if(e.DynamicColumns[t]&&e.DynamicColumns[t].HeaderGroupTemplate){n=!0;break}if(n&&e.supportingManifest){let t=[],n=null,r=e.supportingManifest.elementAddresses;for(let i=0;i<r.length;i++){let o=e.supportingManifest.elementDescriptors[r[i]];if(!o)continue;if(o.PictForm&&o.PictForm.TabularHidden)continue;let a="number"==typeof o._DynamicColumnGeneratorIndex,s=a&&"string"==typeof o._DynamicColumnHeaderGroup?o._DynamicColumnHeaderGroup:"",c=a?"D".concat(o._DynamicColumnGeneratorIndex,"|").concat(s):"S|".concat(i);n&&n.RunKey===c?n.Cell.ColumnSpan+=1:(n={RunKey:c,Cell:{Label:a?s:"",ColumnSpan:1,CSSClass:a?"pict-tabular-dynamic-header-group":"pict-tabular-static-header-spacer"}},t.push(n.Cell))}i.push(t)}return i}_computeRowLabelMetadata(t,e){if(!Array.isArray(e.RowLabels)||0===e.RowLabels.length)return void(e.RowLabelMetadata=[]);let i=[];if("string"==typeof e.RecordSetAddress&&e.RecordSetAddress.length>0){let n=t.getMarshalDestinationObject(),r=t.sectionManifest.getValueByHash(n,e.RecordSetAddress);Array.isArray(r)&&(i=r)}let n=[];for(let t=0;t<i.length;t++){let r=i[t],o=[];for(let i=0;i<e.RowLabels.length;i++){let n=e.RowLabels[i],a="";if(!0===n.RowNumber)a=String(t+1);else if("string"==typeof n.SourceAddress&&n.SourceAddress.length>0){let e=this.pict.resolveStateFromAddress(n.SourceAddress,null);if(Array.isArray(e)&&t<e.length){let i=e[t];a="string"==typeof i?i:null==i?"":String(i)}}else"string"==typeof n.Template&&(a=this._parseTabularTemplate(n.Template,{Value:r,Key:t}));o.push({Label:n.Name||"",RenderedLabel:a,RowSpan:1,Skip:!1,Cluster:!0===n.Cluster,CSSClass:"string"==typeof n.CSSClass?n.CSSClass:""})}n.push({Cells:o})}for(let t=0;t<e.RowLabels.length;t++){if(!e.RowLabels[t].Cluster)continue;let i=0;for(let e=1;e<=n.length;e++){if(!(e===n.length)&&n[e].Cells[t].RenderedLabel===n[i].Cells[t].RenderedLabel)n[e].Cells[t].Skip=!0;else{let r=e-i;n[i].Cells[t].RowSpan=r,i=e}}}e.RowLabelMetadata=n}_renderTabularRowLabelsHTML(t,e,i){if(!t||!t.sectionDefinition||!Array.isArray(t.sectionDefinition.Groups))return"";let n=Number(e);if(isNaN(n)||n<0||n>=t.sectionDefinition.Groups.length)return"";let r=t.sectionDefinition.Groups[n],o=Number(i);0===o&&this._computeRowLabelMetadata(t,r);let a="";if(r._RowSelectionConfig&&!isNaN(o)&&o>=0){let e=this._getTabularSelectionArray(t,r._RowSelectionConfig)[o]?' checked="checked"':"";a+='<td class="pict-tabular-row-select">'+'<input type="checkbox"'.concat(e," onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularRowSelection('").concat(t.Hash,"', ").concat(n,", '").concat(o,"', this.checked)\">")+"</td>"}if(Array.isArray(r.RowLabelMetadata)&&!isNaN(o)&&o>=0&&o<r.RowLabelMetadata.length){let t=r.RowLabelMetadata[o].Cells;for(let e=0;e<t.length;e++){let i=t[e];if(i.Skip)continue;let n=i.RowSpan>1?' rowspan="'.concat(i.RowSpan,'"'):"",r="pict-row-label".concat(i.Cluster?" pict-row-label-clustered":"").concat(i.CSSClass?" "+i.CSSClass:"");a+="<td".concat(n,' class="').concat(r,'">').concat(this._escapeHTML(i.RenderedLabel),"</td>")}}return a}_renderTabularEditingControlsHTML(t,e,i){if(!t)return"";let n=t.Hash;return'<td class="pict-tabular-editing-controls"><a href="#/" onClick="_Pict.views[\''.concat(n,"'].deleteDynamicTableRow(").concat(e,",'").concat(i,'\')">del</a> <a href="#/" onClick="_Pict.views[\'').concat(n,"'].moveDynamicTableRowUp(").concat(e,",'").concat(i,'\')">up</a> <a href="#/" onClick="_Pict.views[\'').concat(n,"'].moveDynamicTableRowDown(").concat(e,",'").concat(i,"')\">down</a></td>")}_escapeHTML(t){return"string"!=typeof t?"":t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}_normalizeSelectionConfig(t,e,i){if(!0!==t&&("object"!=typeof t||null===t))return null;let n="object"==typeof t?t:{};return!1===n.Enabled?null:{DataAddress:"string"==typeof n.DataAddress&&n.DataAddress.length>0?n.DataAddress:e,HighlightClass:"HighlightClass"in n?n.HighlightClass||"":i,HeaderLabel:"string"==typeof n.HeaderLabel?n.HeaderLabel:""}}_getTabularSelectionAddress(t,e){return"".concat(t.getMarshalDestinationAddress(),".").concat(e.DataAddress)}_getTabularSelectionArray(t,e){let i=this.pict.resolveStateFromAddress(this._getTabularSelectionAddress(t,e));return Array.isArray(i)?i:[]}_setTabularSelectionFlag(t,e,i,n){let r=this._getTabularSelectionArray(t,e),o=Number(i);return!isNaN(o)&&o>=0&&(r[o]=!!n),this.pict.setStateValueAtAddress(this._getTabularSelectionAddress(t,e),null,r),r}toggleTabularRowSelection(t,e,i,n){let r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;let o=r.sectionDefinition.Groups[Number(e)];return!(!o||!o._RowSelectionConfig)&&(this._setTabularSelectionFlag(r,o._RowSelectionConfig,i,n),o._RowSelectionConfig.HighlightClass&&this.pict.providers.DynamicFormSolverBehaviors&&this.pict.providers.DynamicFormSolverBehaviors.highlightTabularRow(r.sectionDefinition.Hash,o.Hash,i,n?1:0,o._RowSelectionConfig.HighlightClass),this.pict.PictApplication.solve(),!0)}toggleTabularColumnSelection(t,e,i,n){let r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;let o=r.sectionDefinition.Groups[Number(e)];return!(!o||!o._ColumnSelectionConfig)&&(this._setTabularSelectionFlag(r,o._ColumnSelectionConfig,i,n),o._ColumnSelectionConfig.HighlightClass&&this.pict.providers.DynamicFormSolverBehaviors&&this.pict.providers.DynamicFormSolverBehaviors.highlightTabularColumn(r.sectionDefinition.Hash,o.Hash,i,n?1:0,o._ColumnSelectionConfig.HighlightClass),this.pict.PictApplication.solve(),!0)}_reapplyTabularSelectionHighlights(t,e){let i=this.pict.providers.DynamicFormSolverBehaviors;if(!i||!t.sectionDefinition)return;let n=t.sectionDefinition.Hash;if(e._RowSelectionConfig&&e._RowSelectionConfig.HighlightClass){let r=this._getTabularSelectionArray(t,e._RowSelectionConfig);for(let t=0;t<r.length;t++)i.highlightTabularRow(n,e.Hash,t,r[t]?1:0,e._RowSelectionConfig.HighlightClass)}if(e._ColumnSelectionConfig&&e._ColumnSelectionConfig.HighlightClass){let r=this._getTabularSelectionArray(t,e._ColumnSelectionConfig);for(let t=0;t<r.length;t++)i.highlightTabularColumn(n,e.Hash,t,r[t]?1:0,e._ColumnSelectionConfig.HighlightClass)}}generateGroupLayoutTemplate(t,e){if(!e.supportingManifest)return this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] error generating tabular metatemplate: missing group manifest ").concat(e.RecordManifest," from supportingManifests.")),"";let i=this.pict.providers.MetatemplateGenerator,n="",r="",o="string"==typeof e.EditingControlsPosition?e.EditingControlsPosition:"right",a=Array.isArray(e.RowLabels)?e.RowLabels:[],s=!0===e.SuppressDefaultColumnHeaderRow,c=!0===e.ColumnSorting;c&&!e._SortState&&(e._SortState={ColumnIndex:-1,Direction:"none"});let l=this._buildExpandedHeadersConfig(t,e);e.ExpandedHeaders=l,e.RowLabelHeaderCells=a.map(t=>({Name:t.Name||"",CSSClass:"string"==typeof t.CSSClass?t.CSSClass:""})),e._RowSelectionConfig=this._normalizeSelectionConfig(e.RowSelection,"".concat(e.Hash,"_RowSelection"),"pict-tabular-row-highlight"),e._ColumnSelectionConfig=this._normalizeSelectionConfig(e.ColumnSelection,"".concat(e.Hash,"_ColumnSelection"),"pict-tabular-column-highlight");let p=null!=e._RowSelectionConfig,d=null!=e._ColumnSelectionConfig,u="left"===o,h="right"===o,m=(p?1:0)+a.length+(u?1:0);"left"!==o&&"hidden"!==o||(this.pict.TemplateProvider.addTemplate(t.getViewSpecificTemplateHash("-TabularTemplate-Row-ExtraPostfix"),""),this.pict.TemplateProvider.addTemplate(t.getViewSpecificTemplateHash("-TabularTemplate-RowHeader-ExtraPostfix"),"")),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let r=0;r<l.length;r++){let o=l[r];n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderRow-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let t=0;t<m;t++)n+='<th class="pict-row-label-spacer"></th>';for(let a=0;a<o.length;a++){let o='getGroup("'.concat(e.GroupIndex,'").ExpandedHeaders.').concat(r,".").concat(a);n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderCell",o)}h&&(n+='<th class="pict-row-label-spacer"></th>'),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderRow-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}if(d){let i=this._getTabularSelectionArray(t,e._ColumnSelectionConfig),r='<tr class="pict-tabular-column-select-row">';for(let t=0;t<m;t++)r+='<th class="pict-row-label-spacer"></th>';for(let n=0;n<e.supportingManifest.elementAddresses.length;n++){let o=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[n]];if(!o||o.PictForm&&o.PictForm.TabularHidden)continue;let a=i[n]?' checked="checked"':"";r+='<th class="pict-tabular-column-select">'+'<input type="checkbox"'.concat(a," onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularColumnSelection('").concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(n,', this.checked)">')+"</th>"}h&&(r+='<th class="pict-row-label-spacer"></th>'),r+="</tr>",n+=r}n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-ExtraPrefix",'getGroup("'.concat(e.GroupIndex,'")')),p&&(n+='<th class="pict-row-label-header pict-tabular-row-select-header">'.concat(this._escapeHTML(e._RowSelectionConfig.HeaderLabel),"</th>"));for(let r=0;r<a.length;r++){let o='getGroup("'.concat(e.GroupIndex,'").RowLabelHeaderCells.').concat(r);n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowLabel-HeaderCell",o)}u&&(n+='<th class="pict-row-label-header pict-tabular-editing-controls-header"></th>');let g=0;for(let o=0;o<e.supportingManifest.elementAddresses.length;o++){let a=e.supportingManifest.elementAddresses[o],l=e.supportingManifest.elementDescriptors[a];if("PictForm"in l||(l.PictForm={}),l.PictForm.TabularHidden)continue;l.PictForm.InputIndex=o,l.PictForm.GroupIndex=e.GroupIndex,l.PictForm.RowIndex=0,s||(n+=c?this._buildSortableHeaderCell(t,e,l,o):i.getMetatemplateTemplateReference(t,"-TabularTemplate-HeaderCell",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'))),r+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Cell-Prefix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'));let p="PictForm"in l&&l.PictForm.InputType?l.PictForm.InputType:"Default";r+=i.getTabularInputMetatemplateTemplateReference(t,l.DataType,p,'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'),e.GroupIndex,o),r+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Cell-Postfix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")')),g++}n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-ExtraPostfix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-Postfix",'getGroup("'.concat(e.GroupIndex,'")'));for(let i=0;i<l.length;i++){let n=0;for(let t=0;t<l[i].length;t++)n+=l[i][t].ColumnSpan||1;n!==g&&this.log.warn("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] tabular group [").concat(e.Hash,"] header row ").concat(i," total ColumnSpan (").concat(n,") does not match data column count (").concat(g,"). Header will visually misalign."))}this._computeRowLabelMetadata(t,e);let f="";return f+=i.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-Prefix","Record"),f+=i.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-ExtraPrefix","Record"),(a.length>0||p)&&(f+="{~TRL:".concat(t.Hash,"~}")),u&&(f+="{~TEC:".concat(t.Hash,"~}")),f+="\n\n{~T:".concat(e.SectionTabularRowTemplateHash,":Record~}\n"),f+=i.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-ExtraPostfix","Record"),f+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+="\n\n{~MTVS:".concat(e.SectionTabularRowVirtualTemplateHash,":").concat(e.GroupIndex,":").concat(t.getMarshalDestinationAddress(),".").concat(e.RecordSetAddress,"~}\n"),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowVirtualTemplateHash,f),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowTemplateHash,r),n}onGroupLayoutInitialize(t,e){return!e||(this._reapplyTabularSelectionHighlights(t,e),!0)}onDataMarshalToForm(t,e){if(!e)return!0;if(e._RebuildInProgress)return!0;if(Array.isArray(e.DynamicColumns)&&e.DynamicColumns.length>0&&this.fable.ManifestFactory&&"function"==typeof this.fable.ManifestFactory._resolveDynamicColumns){let i=this.fable.ManifestFactory._resolveDynamicColumns(t,e);if(i&&i.changed){e._RebuildInProgress=!0;try{t.rebuildCustomTemplate(),t.render()}finally{e._RebuildInProgress=!1}return this._reapplyTabularSelectionHighlights(t,e),!0}}return this._computeRowLabelMetadata(t,e),this._reapplyTabularSelectionHighlights(t,e),!0}}},{"../Pict-Provider-DynamicLayout.js":45}],83:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js"),r=t("./Pict-Layout-TuiGrid/Pict-Section-TuiGrid.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.options,this.pict,this.log,this.viewGridConfigurations={},this.viewTuiGrids={},this.viewGridState={}}getGridHtmlID(t,e){return"View-".concat(t.UUID,"-GroupTuiGrid-").concat(e.GroupIndex)}getViewTuiHtmlID(t,e){return"#".concat(this.getGridHtmlID(t,e))}getViewGrid(t,e){let i=this.getGridHtmlID(t,e);return this.viewTuiGrids.hasOwnProperty(i)?this.viewTuiGrids[i]:null}createViewTuiGrid(t,e){let i=this.getGridHtmlID(t,e);this.viewTuiGrids.hasOwnProperty(i)&&this.log.info("Dynamic TuiGrid view [".concat(t.UUID,"]::[").concat(t.Hash,"] is reinitializing a TuiGrid in group ").concat(e.GroupIndex," TuiGrid UUID [").concat(i,"]."));let n=this.getViewTuiConfiguration(t,e),o=this.pict.addView(i,n,r);return o.cachedGridData=this.generateDataRepresentation(t,e),o.initialize(),this.viewTuiGrids[i]=o,o}getViewTuiConfiguration(t,e){var i,n;let o=this.getGridHtmlID(t,e);if(!this.viewGridConfigurations.hasOwnProperty(o)){let a=JSON.parse(JSON.stringify(r.default_configuration));this.viewGridConfigurations[o]=a,a.DefaultDestinationAddress=this.getViewTuiHtmlID(t,e),a.TargetElementAddress=this.getViewTuiHtmlID(t,e),a.TuiColumnSchema=[];for(let r=0;r<e.supportingManifest.elementAddresses.length;r++){let o=e.supportingManifest.elementAddresses[r],s=e.supportingManifest.elementDescriptors[o];"PictForm"in s||(s.PictForm={}),s.PictForm.InputIndex=r,s.PictForm.GroupIndex=e.GroupIndex,s.PictForm.RowIndex=0;let c={header:s.Name,name:s.Hash,PictTriggerSolveOnChange:!0,PictSectionFormInput:s};switch(s.DataType){case"Number":case"PreciseNumber":c.editor={type:"EditorNumber",options:{}},c.editor.options.decimalPrecision=null!==(i=null==s||null===(n=s.PictForm)||void 0===n?void 0:n.DecimalPrecision)&&void 0!==i?i:10;break;case"String":c.editor="text";break;case"DateTime":c.editor={type:"datePicker",options:{format:"yyyy-MM-dd"}}}switch(s.PictForm.InputType){case"Option":{c.editor={type:"select",options:{listItems:[]}};let e=s.PictForm.SelectOptions;if(s.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(t.Hash,s.PictForm.SelectOptionsPickList)&&(e=this.pict.providers.DynamicMetaLists.getList(t.Hash,s.PictForm.SelectOptionsPickList)),e&&Array.isArray(e))for(let t=0;t<e.length;t++){let i={value:e[t].id,text:e[t].text};c.editor.options.listItems.push(i)}break}}a.TuiColumnSchema.push(c)}}return this.viewGridConfigurations[o]}generateGroupLayoutTemplate(t,e){if(!e.supportingManifest)return this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] error generating tabular metatemplate: missing group manifest ").concat(e.RecordManifest," from supportingManifests.")),"";let i=this.pict.providers.MetatemplateGenerator,n="";return n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),e.TuiGridHTMLID=this.getGridHtmlID(t,e),n+=i.getMetatemplateTemplateReference(t,"-TuiGrid-Container",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-TuiGrid-Controls",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}generateDataRepresentation(t,e){let i=[];this.viewGridState[this.getGridHtmlID(t,e)]=i;let n=t.getTabularRecordSet(e.GroupIndex);if(Array.isArray(n))for(let t=0;t<n.length;t++){let r={RecordIndex:t},o=n[t];for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[t]];i&&e.supportingManifest.setValueAtAddress(r,i.Hash,e.supportingManifest.getValueByHash(o,i.Hash))}i.push(r)}return i}onGroupLayoutInitialize(t,e){let i=this.createViewTuiGrid(t,e);if(i.render(),i.tuiGrid){const n=i.tuiGrid;n.View=t,n.Group=e}return!0}onDataMarshalToForm(t,e){let i=this.getViewGrid(t,e);if(!i)return this.log.error("PICT Form TuiGrid [".concat(t.UUID,"]::[").concat(t.Hash,"] error marshalling data to form: missing TuiGrid for group ").concat(e.GroupIndex,"; skipping marshal.")),!1;let n=t.getTabularRecordSet(e.GroupIndex),r=i.tuiGrid.getData();if(Array.isArray(n))for(let o=0;o<n.length;o++)try{let a=n[o],s=r[o];for(let n=0;n<e.supportingManifest.elementAddresses.length;n++){let r=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[n]];if(r){let n=e.supportingManifest.getValueAtAddress(s,r.Hash),c=e.supportingManifest.getValueByHash(a,r.Hash);n!==c&&(this.log.trace("PICT Form TuiGrid Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] updating tabular record ").concat(o," element ").concat(r.Hash," from [").concat(n,"] to [").concat(c,"].")),i.tuiGrid.setValue(o,r.Hash,c))}}}catch(e){this.log.error("PICT Form TuiGrid [".concat(t.UUID,"]::[").concat(t.Hash,"] gross error marshalling data to form: ").concat(e))}return!0}addRow(t,e){if(!(t in this.pict.views))return this.log.error("PICT Form View [".concat(t,"] error adding row: no matching view found in pict.")),!1;let i=this.pict.views[t],n=i.getGroup(e);if(!n)return this.log.error("PICT Form View [".concat(t,"] error adding row: no matching group index ").concat(e," found in view.")),!1;let r=i.sectionManifest.getValueByHash(i.getMarshalDestinationObject(),n.RecordSetAddress),o=n.supportingManifest.populateDefaults({});if(Array.isArray(r))r.push(o);else if("object"==typeof r){r[i.fable.getUUID()]=o}let a=this.getViewGrid(i,n);a&&a.tuiGrid.appendRow(JSON.parse(JSON.stringify(o)))}}},{"../Pict-Provider-DynamicLayout.js":45,"./Pict-Layout-TuiGrid/Pict-Section-TuiGrid.js":84}],84:[function(t,e,i){const n=t("pict-section-tuigrid");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.viewGridConfigurations={},this.cachedGridData=[]}customConfigureGridSettings(){return this.gridSettings.data=this.cachedGridData,super.customConfigureGridSettings()}changeHandler(t){for(let e=0;e<t.changes.length;e++){let i=t.changes[e],n=t.instance.getValue(i.rowKey,"RecordIndex");t.instance.View.setDataTabularByHash(t.instance.Group.GroupIndex,i.columnName,n,i.value)}return super.changeHandler(t)}}},{"pict-section-tuigrid":30}],85:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){let i=this.pict.providers.MetatemplateGenerator,n="";"Rows"in e||(e.Rows=[]),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-Template-VerticalRow-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let r=0;r<e.Rows.length;r++){let o=e.Rows[r];for(let a=0;a<o.Inputs.length;a++){let s=o.Inputs[a];s.PictForm.InputIndex=a,s.PictForm.GroupIndex=e.GroupIndex,s.PictForm.RowIndex=r,n+=i.getVerticalInputMetatemplateTemplateReference(t,s.DataType,s.PictForm.InputType,'getInput("'.concat(e.GroupIndex,'","').concat(r,'","').concat(a,'")'))}}return n+=i.getMetatemplateTemplateReference(t,"-Template-VerticalRow-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}}},{"../Pict-Provider-DynamicLayout.js":45}],86:[function(t,e,i){const n=t("fable-serviceproviderbase");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.log,this.UUID,this.CSV_HEADER=["Form","Form Name","SubManifest","HideTabularEditingControls","GroupRecordSetAddress","DataOnly","Section Name","Section Hash","Group Name","Group Hash","Group Layout","Group CSS","Group Show Title","Row","Width","Minimum Row Count","Maximum Row Count","Input Address","Input Name","Input Hash","Input Extra","Units","DataType","Decimal Precision","InputType","Equation","Equation Ordinal","Default","Description","Tooltip","Input Notes","Entity","EntityColumnFilter","EntityDestination","EntitySingleRecord","TriggerGroup","TriggerAddress","TriggerAllInputs","MarshalEmptyValues","ChartType","ChartLabelsAddress","ChartLabelsSolver","ChartDatasetsAddress","ChartDatasetsLabel","ChartDatasetsSolvers"],this.CSV_COLUMN_MAP={};for(let t=0;t<this.CSV_HEADER.length;t++){let e=this.CSV_HEADER[t];this.CSV_COLUMN_MAP[e]=t}}getRowFromDescriptor(t,e,i){let n=new Array(this.CSV_HEADER.length).fill("");if(!i||"object"!=typeof i||!e||"string"!=typeof e)return!1;let r=i.PictForm;if(n[this.CSV_COLUMN_MAP.Form]=t,n[this.CSV_COLUMN_MAP["Form Name"]]=i.FormName||"",n[this.CSV_COLUMN_MAP.SubManifest]="",n[this.CSV_COLUMN_MAP.DataOnly]=void 0===r?"1":"",n[this.CSV_COLUMN_MAP["Section Name"]]="",n[this.CSV_COLUMN_MAP["Section Hash"]]=r&&r.Section?r.Section:i.FormSection?i.FormSection:"",n[this.CSV_COLUMN_MAP["Group Name"]]="",n[this.CSV_COLUMN_MAP["Group Hash"]]=r&&r.Group?r.Group:i.FormGroup?i.FormGroup:"",n[this.CSV_COLUMN_MAP["Group Layout"]]="",n[this.CSV_COLUMN_MAP["Group CSS"]]="",n[this.CSV_COLUMN_MAP["Group Show Title"]]="",n[this.CSV_COLUMN_MAP.Row]=r&&r.Row?r.Row:"",n[this.CSV_COLUMN_MAP.Width]=r&&r.Width?r.Width:"",n[this.CSV_COLUMN_MAP["Minimum Row Count"]]="",n[this.CSV_COLUMN_MAP["Maximum Row Count"]]="",n[this.CSV_COLUMN_MAP["Input Address"]]=i.DataAddress?i.DataAddress:e,n[this.CSV_COLUMN_MAP["Input Name"]]=i.Name||i.DataAddress||e,n[this.CSV_COLUMN_MAP["Input Hash"]]=i.Hash||e,n[this.CSV_COLUMN_MAP["Input Extra"]]="",n[this.CSV_COLUMN_MAP.Units]=r&&r.Units?r.Units:"",n[this.CSV_COLUMN_MAP.DataType]=i.DataType||"String",n[this.CSV_COLUMN_MAP["Decimal Precision"]]=r&&r.DecimalPrecision?r.DecimalPrecision:"",n[this.CSV_COLUMN_MAP.InputType]=r&&r.InputType?r.InputType:"",n[this.CSV_COLUMN_MAP.Equation]="",n[this.CSV_COLUMN_MAP["Equation Ordinal"]]="",n[this.CSV_COLUMN_MAP.Default]=void 0!==i.Default?i.Default:"",n[this.CSV_COLUMN_MAP.Description]=i.Description?i.Description:"",n[this.CSV_COLUMN_MAP.Tooltip]=r&&r.Tooltip?r.Tooltip:"",n[this.CSV_COLUMN_MAP["Input Notes"]]=r&&r.SpreadsheetNotes?r.SpreadsheetNotes:"",n[this.CSV_COLUMN_MAP.Entity]="",n[this.CSV_COLUMN_MAP.EntityColumnFilter]="",n[this.CSV_COLUMN_MAP.EntityDestination]="",n[this.CSV_COLUMN_MAP.EntitySingleRecord]="",r&&r.EntitiesBundle&&Array.isArray(r.EntitiesBundle)&&r.EntitiesBundle.length>0){let t=r.EntitiesBundle[0];if(t.Entity&&(n[this.CSV_COLUMN_MAP.Entity]=t.Entity),t.Filter){let e=t.Filter,i=e.indexOf("FBV~"),r=e.indexOf("~EQ~");if(i>=0&&r>i){let t=e.substring(i+4,r);n[this.CSV_COLUMN_MAP.EntityColumnFilter]=t}}t.Destination&&(n[this.CSV_COLUMN_MAP.EntityDestination]=t.Destination),t.SingleRecord&&(n[this.CSV_COLUMN_MAP.EntitySingleRecord]="true")}if(n[this.CSV_COLUMN_MAP.TriggerGroup]="",n[this.CSV_COLUMN_MAP.TriggerAddress]="",n[this.CSV_COLUMN_MAP.TriggerAllInputs]="",n[this.CSV_COLUMN_MAP.MarshalEmptyValues]="",r&&r.AutofillTriggerGroup){let t;Array.isArray(r.AutofillTriggerGroup)&&r.AutofillTriggerGroup.length>0?t=r.AutofillTriggerGroup[0]:"object"==typeof r.AutofillTriggerGroup&&(t=r.AutofillTriggerGroup),t&&(t.TriggerGroupHash&&(n[this.CSV_COLUMN_MAP.TriggerGroup]=t.TriggerGroupHash),t.TriggerAllInputs&&(n[this.CSV_COLUMN_MAP.TriggerAllInputs]="true"),t.TriggerAddress&&(n[this.CSV_COLUMN_MAP.TriggerAddress]=t.TriggerAddress),t.MarshalEmptyValues&&(n[this.CSV_COLUMN_MAP.MarshalEmptyValues]="true"))}if(n[this.CSV_COLUMN_MAP.ChartType]=r&&r.ChartType?r.ChartType:"",n[this.CSV_COLUMN_MAP.ChartLabelsAddress]=r&&r.ChartLabelsAddress?r.ChartLabelsAddress:"",n[this.CSV_COLUMN_MAP.ChartLabelsSolver]=r&&r.ChartLabelsSolver?r.ChartLabelsSolver:"",n[this.CSV_COLUMN_MAP.ChartDatasetsAddress]=r&&r.ChartDatasetsAddress?r.ChartDatasetsAddress:"",n[this.CSV_COLUMN_MAP.ChartDatasetsLabel]=r&&r.ChartDatasetsSolvers&&Array.isArray(r.ChartDatasetsSolvers)&&r.ChartDatasetsSolvers.length>0?r.ChartDatasetsSolvers[0].Label:"",n[this.CSV_COLUMN_MAP.ChartDatasetsSolvers]=r&&r.ChartDatasetsSolvers&&Array.isArray(r.ChartDatasetsSolvers)&&r.ChartDatasetsSolvers.length>0?r.ChartDatasetsSolvers[0].DataSolver:"",r&&"Option"==r.InputType&&r.SelectOptions&&Array.isArray(r.SelectOptions)){let t="";for(let e=0;e<r.SelectOptions.length;e++){let i=r.SelectOptions[e];i.id&&i.text&&(t.length>0&&(t+=","),t+="".concat(i.id,"^").concat(i.text))}n[this.CSV_COLUMN_MAP["Input Extra"]]=t}return n}createTabularArrayFromManifests(t){let e=[],i="Default";if(t&&t.Scope&&"string"==typeof t.Scope&&(i=t.Scope),t&&t.Form&&"string"==typeof t.Form&&(i=t.Form),e.push(this.CSV_HEADER),"object"!=typeof t)return this.log.error("ManifestConversionToCSV: Provided manifest is not an object; cannot convert to CSV."),e;if(!t.Descriptors||"object"!=typeof t.Descriptors)return this.log.error("ManifestConversionToCSV: Provided manifest does not have a valid Descriptors property; cannot convert to CSV."),e;let n=Object.keys(t.Descriptors);for(let r=0;r<n.length;r++){let o=n[r],a=t.Descriptors[o];if(!a||"object"!=typeof a)continue;let s=this.getRowFromDescriptor(i,o,a);s&&e.push(s)}for(let n=0;n<t.Sections.length;n++){let r=t.Sections[n],o=r.Hash||"DEFAULT_SECTION_HASH";if(r&&"object"==typeof r){if(r.Groups&&Array.isArray(r.Groups))for(let n=0;n<r.Groups.length;n++){let a=r.Groups[n],s=a.Hash;if(("Tabular"==a.Layout||"RecordSet"==a.Layout)&&a.RecordSetAddress&&a.RecordManifest){let n=-1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){let e=i[this.CSV_COLUMN_MAP["Section Hash"]],r=i[this.CSV_COLUMN_MAP["Group Hash"]];if(e===o&&r===s){n=t;break}if(i[this.CSV_COLUMN_MAP["Input Address"]]===a.RecordSetAddress){i[this.CSV_COLUMN_MAP["Section Hash"]]=o,i[this.CSV_COLUMN_MAP["Group Hash"]]=s,n=t;break}}}if(n>=0){let r=e[n];r[this.CSV_COLUMN_MAP.SubManifest]=a.RecordManifest,r[this.CSV_COLUMN_MAP.GroupRecordSetAddress]=a.RecordSetAddress,r[this.CSV_COLUMN_MAP.HideTabularEditingControls]=a.HideTabularEditingControls,a.MinimumRowCount&&(r[this.CSV_COLUMN_MAP["Minimum Row Count"]]=a.MinimumRowCount),a.MaximumRowCount&&(r[this.CSV_COLUMN_MAP["Maximum Row Count"]]=a.MaximumRowCount);let c=t.ReferenceManifests[a.RecordManifest],l=Object.keys(c.Descriptors);for(let t=0;t<l.length;t++){let r=l[t],p=c.Descriptors[r];if(!p||"object"!=typeof p)continue;let d=this.getRowFromDescriptor(i,r,p);d&&(d[this.CSV_COLUMN_MAP["Section Hash"]]=o,d[this.CSV_COLUMN_MAP["Group Hash"]]=s,d[this.CSV_COLUMN_MAP.SubManifest]=a.RecordManifest,e.splice(n+1,0,d))}}}if(s)for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Group Hash"]]===s&&(i[this.CSV_COLUMN_MAP["Group Name"]]=a.Name||s,a.Layout&&(i[this.CSV_COLUMN_MAP["Group Layout"]]=a.Layout),a.hasOwnProperty("ShowTitle")&&(i[this.CSV_COLUMN_MAP["Group Show Title"]]=a.ShowTitle),a.hasOwnProperty("CSSClass")&&(i[this.CSV_COLUMN_MAP["Group CSS"]]=a.CSSClass))}}}for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Section Hash"]]===o&&(i[this.CSV_COLUMN_MAP["Section Name"]]=r.Name||o)}}if(r.Solvers&&Array.isArray(r.Solvers))for(let t=0;t<r.Solvers.length;t++){let n=r.Solvers[t],a=!1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){let t=i[this.CSV_COLUMN_MAP["Section Hash"]],e=i[this.CSV_COLUMN_MAP.Equation],r=i[this.CSV_COLUMN_MAP.SubManifest];if(!(t!==o||r&&""!=r||e&&0!=e.length)){"string"==typeof n?(i[this.CSV_COLUMN_MAP.Equation]=n,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof n&&n.Expression&&(i[this.CSV_COLUMN_MAP.Equation]=n.Expression,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=n.Ordinal||1),a=!0;break}}}if(!a){let a=new Array(this.CSV_HEADER.length).fill("");a[this.CSV_COLUMN_MAP.Form]=i,a[this.CSV_COLUMN_MAP["Section Hash"]]=o,a[this.CSV_COLUMN_MAP.DataOnly]="1",a[this.CSV_COLUMN_MAP.DataType]="String",a[this.CSV_COLUMN_MAP.InputType]="Hidden";let s="Solver_for_".concat(o,"_").concat(t+1);a[this.CSV_COLUMN_MAP["Input Hash"]]=s,a[this.CSV_COLUMN_MAP["Input Name"]]="Auto gen hidden solver entry for ".concat(r.Name||o," #").concat(t+1),a[this.CSV_COLUMN_MAP["Input Address"]]=s,"string"==typeof n?(a[this.CSV_COLUMN_MAP.Equation]=n,a[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof n&&n.Expression&&(a[this.CSV_COLUMN_MAP.Equation]=n.Expression,a[this.CSV_COLUMN_MAP["Equation Ordinal"]]=n.Ordinal||1);let c=-1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Section Hash"]]===o&&(c=t)}}c>=0?e.splice(c+1,0,a):e.push(a)}}if(r.Groups&&Array.isArray(r.Groups))for(let t=0;t<r.Groups.length;t++){let n=r.Groups[t],a=n.Hash;if(n.RecordSetSolvers&&Array.isArray(n.RecordSetSolvers))for(let t=0;t<n.RecordSetSolvers.length;t++){let r=n.RecordSetSolvers[t],s=!1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){let t=i[this.CSV_COLUMN_MAP["Group Hash"]],e=i[this.CSV_COLUMN_MAP.Equation],o=i[this.CSV_COLUMN_MAP.SubManifest];if(t===a&&o==n.RecordManifest&&(!e||0==e.length)){"string"==typeof r?(i[this.CSV_COLUMN_MAP.Equation]=r,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof r&&r.Expression&&(i[this.CSV_COLUMN_MAP.Equation]=r.Expression,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=r.Ordinal||1),s=!0;break}}}if(!s){let s=new Array(this.CSV_HEADER.length).fill("");s[this.CSV_COLUMN_MAP.Form]=i,s[this.CSV_COLUMN_MAP["Section Hash"]]=o,s[this.CSV_COLUMN_MAP["Group Hash"]]=a,s[this.CSV_COLUMN_MAP.SubManifest]=n.RecordManifest,s[this.CSV_COLUMN_MAP.DataOnly]="1";let c="Solver_for_".concat(a,"_").concat(t+1);s[this.CSV_COLUMN_MAP["Input Hash"]]=c,s[this.CSV_COLUMN_MAP["Input Name"]]="Auto gen hidden solver entry for ".concat(n.Name||a," #").concat(t+1),s[this.CSV_COLUMN_MAP["Input Address"]]=c,s[this.CSV_COLUMN_MAP.DataType]="String",s[this.CSV_COLUMN_MAP.InputType]="Hidden","string"==typeof r?(s[this.CSV_COLUMN_MAP.Equation]=r,s[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof r&&r.Expression&&(s[this.CSV_COLUMN_MAP.Equation]=r.Expression,s[this.CSV_COLUMN_MAP["Equation Ordinal"]]=r.Ordinal||1);let l=-1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Group Hash"]]===a&&(l=t)}}l>=0?e.splice(l+1,0,s):e.push(s)}}}}}if(e.length>1){let i=e[1];i&&t.FormName&&(i[this.CSV_COLUMN_MAP["Form Name"]]=t.FormName||i[this.CSV_COLUMN_MAP["Form Name"]])}return e}}},{"fable-serviceproviderbase":3}],87:[function(t,e,i){const n=t("fable-serviceproviderbase"),r={Manifest:{Scope:"Default"}};class o extends n{constructor(t,e,i){let n=Object.assign({},JSON.parse(JSON.stringify(r)),e);super(t,e,i),this.fable,this.log,this.UUID,this.manifest=n.Manifest,"Descriptors"in this.manifest||(this.manifest.Descriptors={}),"Sections"in this.manifest||(this.manifest.Sections=[]),"ReferenceManifests"in this.manifest||(this.manifest.ReferenceManifests={}),this.referenceManifestFactories={},this.sectionHashLookup={},this.groupHashLookup={};let o=Object.keys(this.manifest.ReferenceManifests);for(let t=0;t<o.length;t++)this.referenceManifestFactories[o[t]]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",this.manifest.ReferenceManifests[o[t]],"".concat(this.UUID,"-").concat(o[t]));this.defaultHashCounter=0,this._SanitizeObjectKeyRegex=/[^a-zA-Z0-9_]/gi,this._SanitizeObjectKeyReplacement="_",this._SanitizeObjectKeyInvalid="INVALID"}sanitizeObjectKey(t){return"string"!=typeof t||t.length<1?this._SanitizeObjectKeyInvalid:t.replace(this._SanitizeObjectKeyRegex,this._SanitizeObjectKeyReplacement)}initializeFormGroups(t){let e=Object.keys(t.options.Manifests.Section.Descriptors);for(let i=0;i<e.length;i++){let n=t.options.Manifests.Section.Descriptors[e[i]];if("object"==typeof n&&"PictForm"in n&&"object"==typeof n.PictForm&&"Section"in n.PictForm&&n.PictForm.Section==t.sectionDefinition.Hash){n.PictForm.InformaryDataAddress=e[i],n.PictForm.ViewHash=t.Hash;let r="string"==typeof n.PictForm.Group?n.PictForm.Group:"Default";"Groups"in t.sectionDefinition||(t.sectionDefinition.Groups=[]);let o=t.sectionDefinition.Groups.find(t=>t.Hash==r);o?Array.isArray(o.Rows)||(o.Rows=[]):(o={Hash:r,Name:r,Description:!1,Rows:[]},t.sectionDefinition.Groups.push(o));let a="string"==typeof n.PictForm.Row?n.PictForm.Row:"number"==typeof n.PictForm.Row?"Row_".concat(n.PictForm.Row.toString()):"Row_Default";n.PictForm.RowHash=a;let s=o.Rows.find(t=>t.Hash==a);s||(s={Hash:a,Name:a,Inputs:[]},o.Rows.push(s)),s.Inputs.push(n)}}for(let e=0;e<t.sectionDefinition.Groups.length;e++){let i=t.sectionDefinition.Groups[e];if(i.GroupIndex=e,"HideTitle"in i&&(i.HideTitle=!1),i.hasOwnProperty("Layout")||(i.Layout="Record"),i.hasOwnProperty("Rows")&&Array.isArray(i.Rows)||(i.Rows=[]),"RecordManifest"in i&&(i.supportingManifest=t.fable.instantiateServiceProviderWithoutRegistration("Manifest",t.options.Manifests.Section.ReferenceManifests[i.RecordManifest])),i.supportingManifest){let e=Object.keys(i.supportingManifest.elementDescriptors);for(let n=0;n<e.length;n++){let r=i.supportingManifest.elementDescriptors[e[n]];r.IsTabular=!0,"PictForm"in r||(r.PictForm={}),r.PictForm.ViewHash=t.Hash,r.PictForm.InformaryDataAddress=e[n],"string"==typeof i.RecordSetAddress&&(r.PictForm.InformaryContainerAddress=i.RecordSetAddress),r.RowIdentifierTemplateHash="{~D:Record.RowID~}"}Array.isArray(i.DynamicColumns)&&i.DynamicColumns.length>0&&this._resolveDynamicColumns(t,i)}if(i.RecordSetAddress){let e=t.getMarshalDestinationObject(),n=t.sectionManifest.checkAddressExistsByHash(e,i.RecordSetAddress),r=t.sectionManifest.getValueAtAddress(e,i.RecordSetAddress);if(n?Array.isArray(r)?t.log.trace("RecordSetAddress is an Array for [".concat(i.Hash,"]")):"object"==typeof r?t.log.trace("RecordSetAddress is an Object for [".concat(i.Hash,"]")):t.log.error("RecordSetAddress is not an Array or Object for [".concat(i.Hash,"]; it is a [").concat(typeof r,"] -- likely the data shape will cause erratic problems.")):(t.log.warn("Automatically setting an empty array at [".concat(i.RecordSetAddress,"].")),t.sectionManifest.setValueByHash(e,i.RecordSetAddress,[])),i.MinimumRowCount){r||(t.sectionManifest.setValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress,[]),r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress));for(let e=r.length;e<i.MinimumRowCount;e++)t.pict.providers.DynamicTabularData.createDynamicTableRowWithoutEvents(t,i.GroupIndex)}}}}_parseDynamicColumnTemplate(t,e){if("string"!=typeof t)return"";if(-1===t.indexOf("{"))return t;try{let i=this.fable.parseTemplate(t,e,null);return"string"==typeof i?i:""}catch(t){return this.log.warn("PICT Form Tabular DynamicColumns template parse failed: ".concat(t&&t.message)),""}}_resolveDynamicColumns(t,e){let i={added:[],removed:[],unchanged:[],changed:!1};if(!e||!Array.isArray(e.DynamicColumns)||0===e.DynamicColumns.length)return i;if(!e.supportingManifest)return this.log.warn("PICT Form Tabular DynamicColumns on group [".concat(e.Hash,"] skipped: no supportingManifest.")),i;Array.isArray(e.DynamicColumnsState)||(e.DynamicColumnsState=[]);let n=t.getMarshalDestinationObject(),r=e.supportingManifest,o=[],a=[],s=[],c=!1;for(let i=0;i<e.DynamicColumns.length;i++){let l=e.DynamicColumns[i];e.DynamicColumnsState[i]||(e.DynamicColumnsState[i]={LastHashes:[],LastHeaderGroups:[]});let p=e.DynamicColumnsState[i];if("string"!=typeof l.SourceAddress||0===l.SourceAddress.length){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," on group [").concat(e.Hash,"] is missing SourceAddress."));continue}if("string"!=typeof l.HashTemplate||0===l.HashTemplate.length){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," on group [").concat(e.Hash,"] is missing HashTemplate."));continue}if("string"!=typeof l.InformaryDataAddressTemplate||0===l.InformaryDataAddressTemplate.length){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," on group [").concat(e.Hash,"] is missing InformaryDataAddressTemplate."));continue}let d=t.sectionManifest.getValueByHash(n,l.SourceAddress);Array.isArray(d)||(d=[]);let u=[],h={},m=[],g={};for(let n=0;n<d.length;n++){let r=d[n],o=r&&"object"==typeof r?Object.assign({},r,{__Index:n,__RowNumber:n+1}):{Value:r,__Index:n,__RowNumber:n+1},a=this._parseDynamicColumnTemplate(l.HashTemplate,o);if(!a)continue;g[a]&&this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," produced duplicate Hash [").concat(a,"] on group [").concat(e.Hash,"]; later row wins.")),g[a]=!0;let s=l.NameTemplate?this._parseDynamicColumnTemplate(l.NameTemplate,o):a,c=this._parseDynamicColumnTemplate(l.InformaryDataAddressTemplate,o);if(!c){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," produced empty InformaryDataAddress for row ").concat(n," on group [").concat(e.Hash,"]; skipping."));continue}let p=l.HeaderGroupTemplate?this._parseDynamicColumnTemplate(l.HeaderGroupTemplate,o):"",f={Hash:a,Name:s||a,DataType:l.DataType||"String",IsTabular:!0,_DynamicColumnGeneratorIndex:i,_DynamicColumnHeaderGroup:p,PictForm:Object.assign({},l.PictForm||{},{ViewHash:t.Hash,InformaryContainerAddress:e.RecordSetAddress,InformaryDataAddress:c})};u.push(a),h[a]=f,m.push(p)}let f=Array.isArray(p.LastHashes)?p.LastHashes:[],D={};for(let t=0;t<u.length;t++)D[u[t]]=!0;let y=f.filter(t=>!D[t]),v={};for(let t=0;t<f.length;t++)v[f[t]]=!0;let b=u.filter(t=>!v[t]),T=u.filter(t=>v[t]),w=JSON.stringify(m)!==JSON.stringify(p.LastHeaderGroups||[]),x=JSON.stringify(u)!==JSON.stringify(f);for(let t=0;t<y.length;t++){let e=y[t],i=r.elementAddresses.indexOf(e);i>=0&&r.elementAddresses.splice(i,1),delete r.elementDescriptors[e],r.elementHashes&&e in r.elementHashes&&delete r.elementHashes[e]}for(let t=0;t<u.length;t++){let e=u[t],i=r.elementAddresses.indexOf(e);i>=0&&r.elementAddresses.splice(i,1);let n=r.elementDescriptors[e];if(n){let t=h[e];n.Name=t.Name,n.DataType=t.DataType,n.IsTabular=t.IsTabular,n._DynamicColumnGeneratorIndex=t._DynamicColumnGeneratorIndex,n._DynamicColumnHeaderGroup=t._DynamicColumnHeaderGroup,n.PictForm||(n.PictForm={}),Object.assign(n.PictForm,t.PictForm),h[e]=n}else r.elementDescriptors[e]=h[e];r.elementHashes||(r.elementHashes={}),r.elementHashes[e]=e}let S,P=l.InsertAt||"End";if("Start"===P)S=0;else if("object"==typeof P&&null!==P&&"string"==typeof P.After){let t=r.elementAddresses.indexOf(P.After);S=t<0?r.elementAddresses.length:t+1}else S=r.elementAddresses.length;for(let t=0;t<u.length;t++)r.elementAddresses.splice(S+t,0,u[t]);p.LastHashes=u.slice(),p.LastHeaderGroups=m.slice(),(b.length||y.length||w||x)&&(c=!0),o.push.apply(o,b),a.push.apply(a,y),s.push.apply(s,T)}return{added:o,removed:a,unchanged:s,changed:c}}addDescriptor(t){t.DataAddress in this.manifest.Descriptors&&this.log.info("[ERROR] Duplicate descriptor hash found:",t),this.manifest.Descriptors[t.DataAddress]=t}getManifestSection(t){for(const e of this.manifest.Sections)if(e.Hash===t)return e;const e={Name:t,Hash:t,Solvers:[],Groups:[]};return this.manifest.Sections.push(e),e}getManifestGroup(t,e){let i="string"==typeof t?this.getManifestSection(t):t;for(const t of i.Groups)if(t.Hash===e)return t;const n={Name:e,Hash:e,Rows:[],RecordSetSolvers:[]};return i.Groups.push(n),n}tabularRowLint(t){return t?!!t.Form||(this.log.error("Form is missing from record:",t),!1):(this.log.error("Record is missing from record:",t),!1)}decorateChartDescriptorFromTabularRow(t,e,i){let n=t,r=e,o=i||"";if(n.ChartType&&(r.PictForm.ChartType=n.ChartType),""==o&&(n.ChartLabelsAddress&&(r.PictForm.ChartLabelsAddress=n.ChartLabelsAddress),n.ChartLabelsSolver&&(r.PictForm.ChartLabelsSolver=n.ChartLabelsSolver),n.ChartDatasetsAddress&&(r.PictForm.ChartDatasetsAddress=n.ChartDatasetsAddress)),n["ChartDatasetsSolver".concat(o)]){let t={DataSolver:n["ChartDatasetsSolver".concat(o)]};n["ChartDatasetsLabel".concat(o)]?t.Label=n["ChartDatasetsLabel".concat(o)]:t.Label="Data",n["ChartDataSetsSolverChartType".concat(o)]&&(t.ChartType=n["ChartDataSetsSolverChartType".concat(o)]),r.PictForm.ChartDatasetsSolvers&&Array.isArray(r.PictForm.ChartDatasetsSolvers)||(r.PictForm.ChartDatasetsSolvers=[]),r.PictForm.ChartDatasetsSolvers.push(t)}}tabularRowAddDescriptor(t,e){var i,n,r,o,a,s,c,l,p,d,u,h;if("object"!=typeof e)return this.log.error("Invalid record passed to addManifestDescriptor: ".concat(e)),!1;let m=JSON.parse(JSON.stringify(e));m["Input Hash"]=(null===(i=m["Input Hash"])||void 0===i||null===(n=i.trim)||void 0===n?void 0:n.call(i))||"DefaultHash".concat(this.defaultHashCounter++),m["Input Address"]=(null===(r=m["Input Address"])||void 0===r||null===(o=r.trim)||void 0===o?void 0:o.call(r))||"DefaultData.InputHash_".concat(m["Input Hash"]),m["Input Name"]=(null===(a=m["Input Name"])||void 0===a||null===(s=a.trim)||void 0===s?void 0:s.call(a))||"Auto Input ".concat(m["Input Hash"]),m.DataType=(null===(c=m.DataType)||void 0===c||null===(l=c.trim)||void 0===l?void 0:l.call(c))||"String";const g={Hash:m["Input Hash"],Name:m["Input Name"],DataAddress:m["Input Address"],DataType:m.DataType,PictForm:{}};if(m.Default&&(g.Default=m.Default),m.InputType&&(g.PictForm.InputType=m.InputType),m.Row&&(g.PictForm.Row=m.Row),m.Width&&(g.PictForm.Width=m.Width),m["Input Notes"]&&(g.PictForm.SpreadsheetNotes=m["Input Notes"]),m.Description&&(g.Description=m.Description),m.Units&&(g.PictForm.Units=m.Units),m.Tooltip&&(g.PictForm.Tooltip=m.Tooltip),"Option"==g.PictForm.InputType&&m["Input Extra"]){let t=[],e=m["Input Extra"].split(",");for(let i=0;i<e.length;i++)if(""!=e[i].trim()){let n=e[i].split("^");2==n.length?t.push({id:n[0].trim(),text:n[1].trim()}):t.push({id:e[i].trim(),text:e[i].trim()})}t.length>0&&(g.PictForm.SelectOptions=t)}if(("TabSectionSelector"==g.PictForm.InputType||"TabGroupSelector"==g.PictForm.InputType)&&m["Input Extra"]){let t=[],e=[],i=m["Input Extra"].split(",");for(let n=0;n<i.length;n++)if(""!=i[n].trim()){let r=i[n].split("^");r.length>=2?(t.push(r[0].trim()),e.push(r[1].trim())):(t.push(r[0].trim()),e.push(r[0].trim()))}t.length>0&&("TabSectionSelector"==g.PictForm.InputType?(g.PictForm.TabSectionSet=t,g.PictForm.TabSectionNames=e):"TabGroupSelector"==g.PictForm.InputType&&(g.PictForm.TabGroupSet=t,g.PictForm.TabGroupNames=e))}if("TriggerGroup"in m&&"string"==typeof m.TriggerGroup&&""!=m.TriggerGroup){if(Array.isArray(g.PictForm.Providers)||(g.PictForm.Providers=[]),g.PictForm.Providers.push("Pict-Input-AutofillTriggerGroup"),!Array.isArray(g.PictForm.AutofillTriggerGroup)){const t=g.PictForm.AutofillTriggerGroup;g.PictForm.AutofillTriggerGroup=[],t&&g.PictForm.AutofillTriggerGroup.push(t)}const t=m.TriggerGroup.split(","),e="TriggerAddress"in m?m.TriggerAddress.split(","):[],i="TriggerAllInputs"in m?m.TriggerAllInputs.split(","):[];for(let n=0;n<t.length;n++){var f,D,y,v;const r={TriggerGroupHash:t[n].trim(),MarshalEmptyValues:!!m.MarshalEmptyValues},o=null===(f=e[n])||void 0===f||null===(D=f.trim)||void 0===D?void 0:D.call(f);o&&(r.TriggerAddress=o);const a=null===(y=i[n])||void 0===y||null===(v=y.trim)||void 0===v?void 0:v.call(y);null==a||"true"!=a.toLowerCase()&&"x"!=a.toLowerCase()&&"1"!=a.toLowerCase()||(r.TriggerAllInputs=!0),"Option"==g.PictForm.InputType&&(r.SelectOptionsRefresh=!0),g.PictForm.AutofillTriggerGroup.push(r)}}"string"==typeof m.Entity&&m.Entity.trim()&&("string"==typeof m.EntityColumnFilter&&m.EntityColumnFilter.trim()||"string"==typeof m.EntityFilterTemplate&&m.EntityFilterTemplate.trim())&&"string"==typeof m.EntityDestination&&m.EntityDestination.trim()&&(Array.isArray(g.PictForm.Providers)||(g.PictForm.Providers=[]),g.PictForm.Providers.includes("Pict-Input-EntityBundleRequest")||g.PictForm.Providers.push("Pict-Input-EntityBundleRequest"),g.PictForm.EntitiesBundle=[{Entity:m.Entity,Filter:m.EntityFilterTemplate&&m.EntityFilterTemplate.trim()||"FBV~".concat(m.EntityColumnFilter.trim(),"~EQ~{~D:Record.Value~}"),Destination:m.EntityDestination,SingleRecord:m.EntitySingleRecord&&"false"!==m.EntitySingleRecord}]);let b=t;if("SubManifest"in m&&m.SubManifest&&"TabularAddress"!=m.InputType&&(g.IsTabular=!0,m.SubManifest in t.manifest.ReferenceManifests||(t.referenceManifestFactories[m.SubManifest]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",{Manifest:{Scope:m.SubManifest}},"".concat(this.UUID,"-").concat(m.SubManifest)),t.manifest.ReferenceManifests[m.SubManifest]=t.referenceManifestFactories[m.SubManifest].manifest),t=t.referenceManifestFactories[m.SubManifest]),"Decimal Precision"in m&&m["Decimal Precision"]&&""!=m["Decimal Precision"])try{g.PictForm.DecimalPrecision=parseInt(m["Decimal Precision"])}catch(t){this.log.error("Failed to parse Decimal Precision for ".concat(m["Input Hash"],": ").concat(t))}const T=null===(p=m["Section Name"])||void 0===p||null===(d=p.trim)||void 0===d?void 0:d.call(p);let w=this.sanitizeObjectKey(T||"Default_Section");m["Section Hash"]&&""!=m["Section Hash"]&&(w=this.sanitizeObjectKey(m["Section Hash"])),g.PictForm.Section=w;const x=b.getManifestSection(w);T&&(x.Name=T),m["Section CSS"]&&(x.CSSClass=m["Section CSS"]);const S=null===(u=m["Group Name"])||void 0===u||null===(h=u.trim)||void 0===h?void 0:h.call(u);let P=this.sanitizeObjectKey(S||"Default_Group");m["Group Hash"]&&""!=m["Group Hash"]&&(P=this.sanitizeObjectKey(m["Group Hash"])),g.PictForm.Group=P;const A=b.getManifestGroup(x,P);if(A.Name=S||"",m["Group CSS"]&&(A.CSSClass=m["Group CSS"]),m["Group Layout"]&&(A.Layout=m["Group Layout"]),m["Minimum Row Count"])try{A.MinimumRowCount=parseInt(m["Minimum Row Count"])}catch(t){this.log.error("Failed to parse Minimum Row Count for ".concat(m["Input Hash"],": ").concat(t))}if(m["Maximum Row Count"])try{A.MaximumRowCount=parseInt(m["Maximum Row Count"])}catch(t){this.log.error("Failed to parse Maximum Row Count for ".concat(m["Input Hash"],": ").concat(t))}if(!m.HideTabularEditingControls||"1"!=m.HideTabularEditingControls&&"true"!=m.HideTabularEditingControls.toLowerCase()&&"t"!=m.HideTabularEditingControls.toLowerCase()&&"y"!=m.HideTabularEditingControls.toLowerCase()||(A.HideTabularEditingControls=!0),m["Group Show Title"]&&""!=m["Group Show Title"])switch(m["Group Show Title"].toLowerCase()){case 1:case"1":case"true":A.ShowTitle=!0;break;case 0:case"0":case"false":A.ShowTitle=!1}if(g.Hash in t.manifest.Descriptors&&this.log.info("[ERROR] Duplicate descriptor hash found ".concat(g.Hash,". This will overwrite the original descriptor.")),"TabularAddress"==m.InputType&&(A.Layout="Tabular",this.log.info("Group ".concat(A.Hash," RSA ").concat(m.GroupRecordSetAddress," -> Descriptor ").concat(g.DataAddress)),m.GroupRecordSetAddress&&(m.GroupRecordSetAddress,1)&&m.GroupRecordSetAddress.length>0?A.RecordSetAddress=m.GroupRecordSetAddress:A.RecordSetAddress=g.DataAddress,A.RecordManifest=m.SubManifest),m.Equation&&!this._isTrue(m.Validator)){const t=m.Equation.trim();let e=1;if(m["Equation Ordinal"])try{e=parseInt(m["Equation Ordinal"])}catch(t){this.log.error("Failed to parse Equation Ordinal for ".concat(m["Input Hash"],": ").concat(t))}this.log.trace("Adding solver to ".concat(m.Form," --\x3e ").concat(A.Name," for ").concat(m["Input Hash"]," Ordinal ").concat(e,": ").concat(m.Equation)),"Tabular"==A.Layout||"RecordSet"==A.Layout?1==e?A.RecordSetSolvers.push(t):A.RecordSetSolvers.push({Ordinal:e,Expression:t}):1==e?x.Solvers.push(t):x.Solvers.push({Ordinal:e,Expression:t})}this.onTabularRowAddDescriptor(m,x,A,g),m.DataOnly&&g.PictForm&&(g.PictForm.Group&&(g.FormGroup=g.PictForm.Group),g.PictForm.Section&&(g.FormSection=g.PictForm.Section),delete g.PictForm),"Chart"==m.InputType&&g.PictForm&&(this.decorateChartDescriptorFromTabularRow(m,g,""),this.decorateChartDescriptorFromTabularRow(m,g,"1"),this.decorateChartDescriptorFromTabularRow(m,g,"2"),this.decorateChartDescriptorFromTabularRow(m,g,"3"),this.decorateChartDescriptorFromTabularRow(m,g,"4"),this.decorateChartDescriptorFromTabularRow(m,g,"5"),this.decorateChartDescriptorFromTabularRow(m,g,"6"),this.decorateChartDescriptorFromTabularRow(m,g,"7"),this.decorateChartDescriptorFromTabularRow(m,g,"8"),this.decorateChartDescriptorFromTabularRow(m,g,"9"));const I=Object.keys(m);let C=this.fable.newManyfest();for(let t=0;t<I.length;t++){let e=I[t];if(e.startsWith("Descriptor_Extension_")){const t=e.replace("Descriptor_Extension_","");try{let i=t,n=m[e];n&&C.setValueAtAddress(g,i,n)}catch(t){this.log.error("Failed to set Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}if(e.startsWith("Descriptor_Float_Extension_")){const t=e.replace("Descriptor_Float_Extension_","");try{let i=t,n=m[e],r=parseFloat(n);isNaN(r)||(C.setValueAtAddress(g,i,r),this.log.trace("Set Float Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"] to value [").concat(r,"]")))}catch(t){this.log.error("Failed to set Float Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}if(e.startsWith("Descriptor_Integer_Extension_")){const t=e.replace("Descriptor_Integer_Extension_","");try{let i=t,n=m[e],r=parseInt(n);isNaN(r)||C.setValueAtAddress(g,i,r)}catch(t){this.log.error("Failed to set Integer Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}if(e.startsWith("Descriptor_Boolean_Extension_")){const t=e.replace("Descriptor_Boolean_Extension_","");try{let i,n=t,r=m[e];"x"!=r.toLowerCase()&&"y"!=r.toLowerCase()&&"yes"!=r.toLowerCase()&&"t"!=r.toLowerCase()&&"true"!=r.toLowerCase()&&"1"!=r||(i=!0),"n"!=r.toLowerCase()&&"no"!=r.toLowerCase()&&"f"!=r.toLowerCase()&&"false"!=r.toLowerCase()&&"0"!=r||(i=!1),!0===i||!1===i?C.setValueAtAddress(g,n,i):r&&this.log.warn("Could not parse Boolean value [".concat(r,"] for Descriptor Boolean Extension [").concat(e,"] on descriptor [").concat(g.Hash,"]"))}catch(t){this.log.error("Failed to set Boolean Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}}return"TabularAddress"!=m.InputType?t.addDescriptor(g):b.addDescriptor(g),g}tabularRowAddValidator(t,e){if(e.Equation){const i=e.Equation.trim();let n=1;if(e["Equation Ordinal"])try{n=parseInt(e["Equation Ordinal"])}catch(t){this.log.error("Failed to parse Equation Ordinal for ".concat(e["Input Hash"],": ").concat(t))}this.log.trace("Adding solver to ".concat(e.Form," Validation Solvers Ordinal ").concat(n,": ").concat(e.Equation)),Array.isArray(t.ValidationSolvers)||(t.ValidationSolvers=[]),1==n?t.ValidationSolvers.push(i):t.ValidationSolvers.push({Ordinal:n,Expression:i})}}onTabularRowAddDescriptor(t,e,i,n){}migrateAutofillTriggerGroupSolvers(t){for(const e of Object.values(t)){const t=e.manifest,i=[];for(const e of t.Sections||[]){if(Array.isArray(e.Solvers))for(let t=0;t<e.Solvers.length;t++){const n=e.Solvers[t],r="string"==typeof n?n:n.Expression;"string"==typeof r&&r.startsWith("TriggerGroup:")&&(i.push(n),e.Solvers.splice(t,1),--t)}for(const t of e.Groups||[])if(Array.isArray(t.RecordSetSolvers))for(let e=0;e<t.RecordSetSolvers.length;e++){const n=t.RecordSetSolvers[e],r="string"==typeof n?n:n.Expression;"string"==typeof r&&r.startsWith("TriggerGroup:")&&(i.push(n),t.RecordSetSolvers.splice(e,1),--e)}}for(const e of i){const i="string"==typeof e?e:e.Expression;let n=_slicedToArray(i.split(":"),4),r=(n[0],n[1]),o=n[2],a=n[3];if(a||(a=o,o="post"),!a||""===a.trim()){this.log.error("Skipping migration of empty TriggerGroup solver expression in manifest [".concat(t.Scope,"] for TriggerGroup [").concat(r,"]"));continue}const s=Object.values(t.Descriptors).find(t=>{var e;if(null===(e=t.PictForm)||void 0===e||!e.AutofillTriggerGroup)return!1;return(Array.isArray(t.PictForm.AutofillTriggerGroup)?t.PictForm.AutofillTriggerGroup:[t.PictForm.AutofillTriggerGroup]).some(t=>t.TriggerGroupHash===r)});if(!s){this.log.error("Could not find descriptor for TriggerGroup [".concat(r,"] in manifest [").concat(t.Scope,"] while migrating solver expression: ").concat(i));continue}const c=(Array.isArray(s.PictForm.AutofillTriggerGroup)?s.PictForm.AutofillTriggerGroup:[s.PictForm.AutofillTriggerGroup]).find(t=>t.TriggerGroupHash===r);if(!c){this.log.error("Could not find TriggerGroup entry for TriggerGroup [".concat(r,"] in descriptor [").concat(s.Hash,"] while migrating solver expression: ").concat(i));continue}let l=e;"string"==typeof e?l=a:e.Expression=a,"pre"===o.toLowerCase()?(c.PreSolvers=c.PreSolvers||[],c.PreSolvers.push(l)):(c.PostSolvers=c.PostSolvers||[],c.PostSolvers.push(l))}}}_isTrue(t){if("boolean"==typeof t)return t;if("string"==typeof t){const e=t.trim().toLowerCase();return"true"===e||"t"===e||"yes"===e||"y"===e||"1"===e}return 1==t||1==t}createManifestsFromTabularArray(t){if(!t||!Array.isArray(t))return this.log.info("Invalid records passed to generateManifests."),{};const e={};for(let i=0;i<t.length;i++){let n=t[i];if(!this.tabularRowLint(n))continue;e[n.Form]||(e[n.Form]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",{Manifest:{Form:n.Form}},"".concat(this.UUID,"-").concat(n.Form)));const r=e[n.Form];n["Form Name"]&&(r.manifest.FormName=n["Form Name"]),n["Input Hash"]&&this.tabularRowAddDescriptor(r,n),this._isTrue(n.Validator)&&(this.log.trace("Adding validator from tabular row on form ".concat(n.Form,": ").concat(n.Equation)),this.tabularRowAddValidator(r.manifest,n))}this.migrateAutofillTriggerGroupSolvers(e),this.log.info("Generated ".concat(Object.keys(e).length," manifests."));let i=Object.keys(e),n={};for(let t=0;t<i.length;t++)n[i[t]]=e[i[t]].manifest;return n}}e.exports=o,o.default_configuration={}},{"fable-serviceproviderbase":3}],88:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../services/ManifestFactory.js"),o=t("../providers/Pict-Provider-DynamicSolver.js"),a=t("../providers/Pict-Provider-DynamicInput.js"),s=t("../providers/Pict-Provider-DynamicInputEvents.js"),c=t("../providers/Pict-Provider-DynamicTabularData.js"),l=t("../providers/Pict-Provider-DynamicRecordSet.js"),p=t("../providers/Pict-Provider-DynamicTemplates.js"),d=t("../providers/Pict-Provider-MetatemplateGenerator.js"),u=t("../providers/Pict-Provider-MetatemplateMacros.js"),h=t("../providers/layouts/Pict-Layout-Record.js"),m=t("../providers/layouts/Pict-Layout-VerticalRecord.js"),g=t("../providers/layouts/Pict-Layout-Tabular.js"),f=t("../providers/layouts/Pict-Layout-RecordSet.js"),D=t("../providers/layouts/Pict-Layout-Chart.js"),y=t("../providers/layouts/Pict-Layout-TuiGrid.js"),v=t("../providers/layouts/Pict-Layout-Custom.js"),b=t("../providers/Pict-Provider-Informary.js");class T extends n{constructor(t,e,i){super(t,e,i),this.fable,this.log,this.UUID,this.fable.addAndInstantiateSingletonService("ManifestFactory",r.default_configuration,r),this.fable.addProviderSingleton("DynamicInput",a.default_configuration,a),this.fable.addProviderSingleton("DynamicInputEvents",s.default_configuration,s),this.fable.addProviderSingleton("DynamicSolver",o.default_configuration,o),this.fable.addProviderSingleton("DynamicTabularData",c.default_configuration,c),this.fable.addProviderSingleton("DynamicRecordSet",l.default_configuration,l),this.fable.addProviderSingleton("PictFormSectionDefaultTemplateProvider",p.default_configuration,p),this.fable.addProviderSingleton("MetatemplateGenerator",d.default_configuration,d),this.fable.addProviderSingleton("MetatemplateMacros",u.default_configuration,u),this.fable.addProviderSingleton("Pict-Layout-Record",h.default_configuration,h),this.fable.addProviderSingleton("Pict-Layout-VerticalRecord",m.default_configuration,m),this.fable.addProviderSingleton("Pict-Layout-Tabular",g.default_configuration,g),this.fable.addProviderSingleton("Pict-Layout-RecordSet",f.default_configuration,f),this.fable.addProviderSingleton("Pict-Layout-Chart",D.default_configuration,D),this.fable.addProviderSingleton("Pict-Layout-TuiGrid",y.default_configuration,y),this.fable.addProviderSingleton("Pict-Layout-Custom",v.default_configuration,v),this.fable.addProviderSingleton("Informary",b.default_configuration,b)}}e.exports=T,T.default_configuration={}},{"../providers/Pict-Provider-DynamicInput.js":43,"../providers/Pict-Provider-DynamicInputEvents.js":44,"../providers/Pict-Provider-DynamicRecordSet.js":46,"../providers/Pict-Provider-DynamicSolver.js":47,"../providers/Pict-Provider-DynamicTabularData.js":48,"../providers/Pict-Provider-DynamicTemplates.js":49,"../providers/Pict-Provider-Informary.js":51,"../providers/Pict-Provider-MetatemplateGenerator.js":55,"../providers/Pict-Provider-MetatemplateMacros.js":56,"../providers/layouts/Pict-Layout-Chart.js":78,"../providers/layouts/Pict-Layout-Custom.js":79,"../providers/layouts/Pict-Layout-Record.js":80,"../providers/layouts/Pict-Layout-RecordSet.js":81,"../providers/layouts/Pict-Layout-Tabular.js":82,"../providers/layouts/Pict-Layout-TuiGrid.js":83,"../providers/layouts/Pict-Layout-VerticalRecord.js":85,"../services/ManifestFactory.js":87,"fable-serviceproviderbase":3}],89:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~DynamicInput:","~}"),this.addPattern("{~DI:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n)}renderAsync(t,e,i,n,r,o){const a=this.pict.providers.MetatemplateGenerator,s=t.trim(),c=this.pict.views.PictFormMetacontroller,l=(c?c.manifest:this.pict.manifest).getDescriptor(s);if(!l)return this.log.error("PictTemplateControlFromDynamicManifest: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof i?i(null,""):"";const p=this.pict.views[l.PictForm.ViewHash],d=p||r,u=d?[d]:n||[this.pict];this.pict.providers.MetatemplateMacros.buildInputMacros(p,l);const h=a.getInputMetatemplateTemplateReference(p,l.DataType,l.PictForm.InputType,'getInput("'.concat(l.PictForm.GroupIndex,'","').concat(l.PictForm.RowIndex,'","').concat(l.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,l,i,u,d,o)}}},{"pict-template":36}],90:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~DynamicInputForHash:","~}"),this.addPattern("{~DIH:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){const a=this.pict.providers.MetatemplateGenerator,s=t.trim(),c=this.pict.views.PictFormMetacontroller,l=(c?c.manifest:this.pict.manifest).getDescriptorByHash(s);if(!l)return this.log.error("PictTemplateControlFromDynamicManifest: Cannot find descriptor for hash [".concat(s,"]")),"function"==typeof i?i(null,""):"";const p=this.pict.views[l.PictForm.ViewHash],d=p||r,u=d?[d]:n||[this.pict];this.pict.providers.MetatemplateMacros.buildInputMacros(p,l);const h=a.getInputMetatemplateTemplateReference(p,l.DataType,l.PictForm.InputType,'getInput("'.concat(l.PictForm.GroupIndex,'","').concat(l.PictForm.RowIndex,'","').concat(l.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,l,i,u,d,o)}}},{"pict-template":36}],91:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~SchemaValue:","~}"),this.addPattern("{~SV:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){const a=_slicedToArray(t.trim().split("^"),2),s=a[0],c=a[1],l=this.pict.views.PictFormMetacontroller,p=(l?l.manifest:this.pict.manifest).getDescriptor(s);if(!p)return this.log.error("PictTemplateGetViewSchemaValue: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof i?i(null,""):"";const d=this.pict.views[p.PictForm.ViewHash],u=d.getValueByHash(s);if(c){const t={Value:u,ParentRecord:e,View:d,Descriptor:p};return"function"!=typeof i?this.pict.parseTemplateByHash(c,t,null,n,r,o):this.pict.parseTemplateByHash(c,t,(t,e)=>t?i(t,""):i(null,e),n,r,o)}if("function"!=typeof i)return u?String(u):"";i(null,u?String(u):"")}}},{"pict-template":36}],92:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~SchemaValueForHash:","~}"),this.addPattern("{~SVH:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){const a=_slicedToArray(t.trim().split("^"),2),s=a[0],c=a[1],l=this.pict.views.PictFormMetacontroller,p=(l?l.manifest:this.pict.manifest).getDescriptorByHash(s);if(!p)return this.log.error("PictTemplateGetViewSchemaValueByHash: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof i?i(null,""):"";const d=this.pict.views[p.PictForm.ViewHash],u=d.getValueByHash(s);if(c){const t={Value:u,ParentRecord:e,View:d,Descriptor:p};return"function"!=typeof i?this.pict.parseTemplateByHash(c,t,null,n,r,o):this.pict.parseTemplateByHash(c,t,(t,e)=>t?i(t,""):i(null,e),n,r,o)}if("function"!=typeof i)return u?String(u):"";i(null,u?String(u):"")}}},{"pict-template":36}],93:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~MetacontrollerTemplateValueSet:","~}"),this.addPattern("{~MTVS:","~}")}render(t,e,i,n,r){let o,a,s,c=t.trim(),l="object"==typeof e?e:{};this.pict.LogNoisiness>4?this.log.trace("PICT Metacontroller Template [MetacontrollerTemplateValueSet]::[".concat(c,"] with tmpData:"),l):this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetacontrollerTemplateValueSet]::[".concat(c,"]"));let p=c.split(":");if(p.length<3)return this.log.warn("Metacontroller template requires 3 parameters [".concat(c,"]")),"";a=p[0],o=p[1],s=p[2],l=this.resolveStateFromAddress(s,l,i,null,n);let d=[];if(Array.isArray(l))for(let t=0;t<l.length;t++)d.push({Value:l[t],Key:t,Group:o});else if("object"==typeof l){let t=Object.keys(l);for(let e=0;e<t.length;e++)d.push({Value:l[t[e]],Key:t[e],Group:o})}else d.push({Value:l});return l=d,l?this.pict.parseTemplateSetByHash(a,l,null,i,n,r):this.pict.parseTemplateSetByHash(a,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){let a,s,c=t.trim(),l="object"==typeof e?e:{},p="function"==typeof i?i:()=>"";this.pict.LogNoisiness>4?this.log.trace("PICT Template [fTemplateValueSetRenderAsync]::[".concat(c,"] with tmpData:"),l):this.pict.LogNoisiness>0&&this.log.trace("PICT Template [fTemplateValueSetRenderAsync]::[".concat(c,"]"));let d=c.split(":");if(d.length<2)return this.log.trace("PICT TemplateFromMap [fTemplateRenderAsync]::[".concat(c,"] failed because there were not three stanzas in the expression [").concat(t,"]")),i(null,"");if(a=d[0],s=d[1],!a)return this.log.warn("Pict: TemplateFromMap Render Async: TemplateFromMapHash not resolved for [".concat(c,"]")),i(null,"");l=this.resolveStateFromAddress(s,l,n,null,r);let u=[];if(Array.isArray(l))for(let t=0;t<l.length;t++)u.push({Value:l[t],Key:t});else if("object"==typeof l){let t=Object.keys(l);for(let e=0;e<t.length;e++)u.push({Value:l[t[e]],Key:t[e]})}else u.push({Value:l});return l=u,l?void this.pict.parseTemplateSetByHash(a,l,(t,e)=>t?p(t,""):p(null,e),n,r,o):void this.pict.parseTemplateSetByHash(a,e,(t,e)=>t?p(t,""):p(null,e),n,r,o)}}},{"pict-template":36}],94:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~MetaTemplateInput:","~}"),this.addPattern("{~MTI:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l=t.trim(),p=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(l,"]"));let d=l.split(":");if(d.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(l,"]")),"";o=d[0],a=d[1],s=d[2],d.length>3&&(c=d[3]);let u={Address:a,DataAddress:a,Name:o,Hash:this.fable.ManifestFactory.sanitizeObjectKey(a),DataType:s,PictForm:{InformaryDataAddress:a,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(u.PictForm.InputType=c);let h=p.dynamicInputView.getRow(0,0);for(let t=0;t<h.Inputs.length;t++)if(h.Inputs[t].Hash===u.Hash){let e=h.Inputs[t];return this.pict.parseTemplate(p.getInputMetatemplateTemplateReference(p.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[p.dynamicInputView],p.dynamicInputView,r)}u.PictForm.InputIndex=h.Inputs.length,p.dynamicInputView.sectionManifest.addDescriptor(u.Address,u),h.Inputs.push(u),this.pict.providers.MetatemplateMacros.buildInputMacros(p.dynamicInputView,u);let m=p.getInputMetatemplateTemplateReference(p.dynamicInputView,u.DataType,u.PictForm.InputType,'getInput("0","0","'.concat(u.PictForm.InputIndex,'")'));return this.pict.parseTemplate(m,u,null,[p.dynamicInputView],p.dynamicInputView,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(p,"]"));let u=p.split(":");if(u.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(p,"]")),i(null,"");a=u[0],s=u[1],c=u[2],u.length>3&&(l=u[3]);let h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);let m=d.dynamicInputView.getRow(0,0);for(let t=0;t<m.Inputs.length;t++)if(m.Inputs[t].Hash===h.Hash){let e=m.Inputs[t],n=d.getInputMetatemplateTemplateReference(d.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[d.dynamicInputView],d.dynamicInputView,o)}h.PictForm.InputIndex=m.Inputs.length,d.dynamicInputView.sectionManifest.addDescriptor(h.Address,h),m.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(d.dynamicInputView,h);let g=d.getInputMetatemplateTemplateReference(d.dynamicInputView,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));this.pict.parseTemplate(g,h,i,[d.dynamicInputView],d.dynamicInputView,o)}}},{"pict-template":36}],95:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~MetaTemplateInputWithHashAddress:","~}"),this.addPattern("{~MTIWHA:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l=t.trim(),p=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(l,"]"));let d=l.split(":");if(d.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(l,"]")),"";if(o=d[0],a=this.resolveStateFromAddress(d[1],e,i,null,n,r),"string"!=typeof a||a.length<1)return this.log.warn("MetaTemplateInput template requires a valid Address for an Address in the second parameter [".concat(l,"]")),"";s=d[2],d.length>3&&(c=d[3]);const u={Address:a,DataAddress:a,Name:o,Hash:this.fable.ManifestFactory.sanitizeObjectKey(a),DataType:s,PictForm:{InformaryDataAddress:a,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(u.PictForm.InputType=c);let h=p.dynamicInputView.getRow(0,0);for(let t=0;t<h.Inputs.length;t++)if(h.Inputs[t].Hash===u.Hash){const e=h.Inputs[t];return this.pict.parseTemplate(p.getInputMetatemplateTemplateReference(p.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[p.dynamicInputView],p.dynamicInputView,r)}u.PictForm.InputIndex=h.Inputs.length,p.dynamicInputView.sectionManifest.addDescriptor(u.Address,u),h.Inputs.push(u),this.pict.providers.MetatemplateMacros.buildInputMacros(p.dynamicInputView,u);const m=p.getInputMetatemplateTemplateReference(p.dynamicInputView,u.DataType,u.PictForm.InputType,'getInput("0","0","'.concat(u.PictForm.InputIndex,'")'));return this.pict.parseTemplate(m,u,null,[p.dynamicInputView],p.dynamicInputView,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(p,"]"));let u=p.split(":");if(u.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(p,"]")),i(null,"");if(a=u[0],s=this.resolveStateFromAddress(u[1],e,n,null,r,o),"string"!=typeof s||s.length<1)return this.log.warn("MetaTemplateInput template requires a valid Address for an Address in the second parameter [".concat(p,"]")),i(null,"");c=u[2],u.length>3&&(l=u[3]);let h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);let m=d.dynamicInputView.getRow(0,0);for(let t=0;t<m.Inputs.length;t++)if(m.Inputs[t].Hash===h.Hash){let e=m.Inputs[t],n=d.getInputMetatemplateTemplateReference(d.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[d.dynamicInputView],d.dynamicInputView,o)}h.PictForm.InputIndex=m.Inputs.length,d.dynamicInputView.sectionManifest.addDescriptor(h.Address,h),m.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(d.dynamicInputView,h);const g=d.getInputMetatemplateTemplateReference(d.dynamicInputView,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));this.pict.parseTemplate(g,h,i,[d.dynamicInputView],d.dynamicInputView,o)}}},{"pict-template":36}],96:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~InputWithView:","~}"),this.addPattern("{~IWV:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithView]::[".concat(p,"]"));let u=p.split(":");if(u.length<3)return this.log.warn("InputWithView template requires at least three parameters (ViewHash, Address and DataType) [".concat(p,"]")),"";o=u[0],a=u[1],s=u[2],c=u[3],u.length>4&&(l=u[4]);let h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);const m=this.pict.views[o];if(!m||!m.sectionManifest||"function"!=typeof m.getRow)return this.log.warn("InputWithView template requires a valid dynamic View hash [".concat(p,"]")),"";let g=m.getRow(0,0);for(let t=0;t<g.Inputs.length;t++)if(g.Inputs[t].Hash===h.Hash){let e=g.Inputs[t];return this.pict.parseTemplate(d.getInputMetatemplateTemplateReference(m,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[m],m,r)}h.PictForm.InputIndex=g.Inputs.length,m.sectionManifest.addDescriptor(h.Address,h),g.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(m,h);let f=d.getInputMetatemplateTemplateReference(m,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));return this.pict.parseTemplate(f,h,null,[m],m,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p,d=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithView]::[".concat(d,"]"));let h=d.split(":");if(h.length<3)return this.log.warn("InputWithView template requires at least three parameters (ViewHash, Address and DataType) [".concat(d,"]")),i(null,"");a=h[0],s=h[1],c=h[2],l=h[3],h.length>4&&(p=h[4]);let m={Address:c,DataAddress:c,Name:s,Hash:this.fable.ManifestFactory.sanitizeObjectKey(c),DataType:l,PictForm:{InformaryDataAddress:c,GroupIndex:0,Row:0}};this.currentInputIndex++,p&&(m.PictForm.InputType=p);const g=this.pict.views[a];if(!g||!g.sectionManifest||"function"!=typeof g.getRow)return this.log.warn("InputWithView template requires a valid dynamic View hash [".concat(d,"]")),i(null,"");let f=g.getRow(0,0);for(let t=0;t<f.Inputs.length;t++)if(f.Inputs[t].Hash===m.Hash){let e=f.Inputs[t],n=u.getInputMetatemplateTemplateReference(g,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[g],g,o)}m.PictForm.InputIndex=f.Inputs.length,g.sectionManifest.addDescriptor(m.Address,m),f.Inputs.push(m),this.pict.providers.MetatemplateMacros.buildInputMacros(g,m);let D=u.getInputMetatemplateTemplateReference(g,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")'));this.pict.parseTemplate(D,m,i,[g],g,o)}}},{"pict-template":36}],97:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~InputWithViewAndDescriptorAddress:","~}"),this.addPattern("{~IWVDA:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s=t.trim(),c=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndDescriptorAddress]::[".concat(s,"]"));let l=s.split(":");if(l.length<2)return this.log.warn("InputWithViewAndDescriptorAddress template requires two parameters (ViewHash and DescriptorAddress) [".concat(s,"]")),"";o=l[0],a=l[1];const p=this.resolveStateFromAddress(a,e,i,null,n,r);if(!p||"object"!=typeof p||Array.isArray(p)||!p.Address)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid input object at address [".concat(a,"]")),"";this._shoreUpDescriptor(p),this.currentInputIndex++;const d=this.pict.views[o];if(!d||!d.sectionManifest||"function"!=typeof d.getRow)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid dynamic View hash [".concat(s,"]")),"";let u=d.getRow(0,0);for(let t=0;t<u.Inputs.length;t++)if(u.Inputs[t].Hash===p.Hash){let e=u.Inputs[t];return this.pict.parseTemplate(c.getInputMetatemplateTemplateReference(d,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[d],d,r)}p.PictForm.InputIndex=u.Inputs.length,d.sectionManifest.addDescriptor(p.Address,p),u.Inputs.push(p),this.pict.providers.MetatemplateMacros.buildInputMacros(d,p);let h=c.getInputMetatemplateTemplateReference(d,p.DataType,p.PictForm.InputType,'getInput("0","0","'.concat(p.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,p,null,[d],d,r)}renderAsync(t,e,i,n,r,o){let a,s,c=t.trim(),l=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndDescriptorAddress]::[".concat(c,"]"));let p=c.split(":");if(p.length<2)return this.log.warn("InputWithViewAndDescriptorAddress template requires two parameters (ViewHash and DescriptorAddress) [".concat(c,"]")),i(null,"");a=p[0],s=p[1];const d=this.resolveStateFromAddress(s,e,n,null,r,o);this._shoreUpDescriptor(d),this.currentInputIndex++;const u=this.pict.views[a];if(!u||!u.sectionManifest||"function"!=typeof u.getRow)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid dynamic View hash [".concat(c,"]")),i(null,"");let h=u.getRow(0,0);for(let t=0;t<h.Inputs.length;t++)if(h.Inputs[t].Hash===d.Hash){let e=h.Inputs[t],n=l.getInputMetatemplateTemplateReference(u,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[u],u,o)}d.PictForm.InputIndex=h.Inputs.length,u.sectionManifest.addDescriptor(d.Address,d),h.Inputs.push(d),this.pict.providers.MetatemplateMacros.buildInputMacros(u,d);let m=l.getInputMetatemplateTemplateReference(u,d.DataType,d.PictForm.InputType,'getInput("0","0","'.concat(d.PictForm.InputIndex,'")'));this.pict.parseTemplate(m,d,i,[u],u,o)}_shoreUpDescriptor(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Error("Invalid descriptor object provided to shoreUpDescriptor");t.DataAddress||(t.DataAddress=t.Address),t.Hash||(t.Hash=this.fable.DataFormat.sanitizeObjectKey(t.Address)),t.Name||(t.Name=t.Hash),t.DataType||(t.DataType="String"),t.PictForm||(t.PictForm={}),t.PictForm.InformaryDataAddress||(t.PictForm.InformaryDataAddress=t.DataAddress),null==t.PictForm.GroupIndex&&(t.PictForm.GroupIndex=0),null==t.PictForm.Row&&(t.PictForm.Row=0)}}},{"pict-template":36}],98:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~InputWithViewAndHashAddress:","~}"),this.addPattern("{~IWVHA:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndHashAddress]::[".concat(p,"]"));let u=p.split(":");if(u.length<3)return this.log.warn("InputWithViewAndHashAddress template requires at least three parameters (ViewHash, Address and DataType) [".concat(p,"]")),"";if(o=u[0],a=u[1],s=this.resolveStateFromAddress(u[2],e,i,null,n),"string"!=typeof s||s.length<1)return this.log.warn("InputWithViewAndHashAddress template requires a valid Address for an Address in the third parameter [".concat(p,"]")),"";c=u[3],u.length>4&&(l=u[4]);const h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);const m=this.pict.views[o];if(!m||!m.sectionManifest||"function"!=typeof m.getRow)return this.log.warn("InputWithViewAndHashAddress template requires a valid dynamic View hash as the first parameter [".concat(p,"]")),"";let g=m.getRow(0,0);for(let t=0;t<g.Inputs.length;t++)if(g.Inputs[t].Hash===h.Hash){const e=g.Inputs[t];return this.pict.parseTemplate(d.getInputMetatemplateTemplateReference(m,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[m],m,r)}h.PictForm.InputIndex=g.Inputs.length,m.sectionManifest.addDescriptor(h.Address,h),g.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(m,h);const f=d.getInputMetatemplateTemplateReference(m,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));return this.pict.parseTemplate(f,h,null,[m],m,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p,d=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndHashAddress]::[".concat(d,"]"));let h=d.split(":");if(h.length<3)return this.log.warn("InputWithViewAndHashAddress template requires at least three parameters (ViewHash, Address and DataType) [".concat(d,"]")),i(null,"");if(a=h[0],s=h[1],c=this.resolveStateFromAddress(h[2],e,n,null,r),"string"!=typeof c||c.length<1)return this.log.warn("InputWithViewAndHashAddress template requires a valid Address for an Address in the third parameter [".concat(d,"]")),i(null,"");l=h[3],h.length>4&&(p=h[4]);let m={Address:c,DataAddress:c,Name:s,Hash:this.fable.ManifestFactory.sanitizeObjectKey(c),DataType:l,PictForm:{InformaryDataAddress:c,GroupIndex:0,Row:0}};this.currentInputIndex++,p&&(m.PictForm.InputType=p);const g=this.pict.views[a];if(!g||!g.sectionManifest||"function"!=typeof g.getRow)return this.log.warn("InputWithViewAndHashAddress template requires a valid View hash as the first parameter [".concat(d,"]")),i(null,"");let f=g.getRow(0,0);for(let t=0;t<f.Inputs.length;t++)if(f.Inputs[t].Hash===m.Hash){let e=f.Inputs[t],n=u.getInputMetatemplateTemplateReference(g,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[g],g,o)}m.PictForm.InputIndex=f.Inputs.length,g.sectionManifest.addDescriptor(m.Address,m),f.Inputs.push(m),this.pict.providers.MetatemplateMacros.buildInputMacros(g,m);const D=u.getInputMetatemplateTemplateReference(g,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")'));this.pict.parseTemplate(D,m,i,[g],g,o)}}},{"pict-template":36}],99:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~PluckJoinUnique:","~}"),this.addPattern("{~PJU:","~}")}render(t,e,i,n,r){let o=t,a="object"==typeof e?e:{};this.pict.LogNoisiness>4?this.log.trace("PICT Pluck Join Unique [fDataRender]::[".concat(o,"] with tmpData:"),a):this.pict.LogNoisiness>3&&this.log.trace("PICT Pluck Join Unique [fDataRender]::[".concat(o,"]"));let s=o.split("^");if(s.length<3)return"";let c=s.shift(),l=s.shift(),p=[],d={};for(let t=0;t<s.length;t++){let e=this.resolveStateFromAddress(s[t],a,i,null,n);if(e&&Array.isArray(e))for(let t=0;t<e.length;t++){if(null===e[t]||"object"!=typeof e)continue;let i=this.pict.manifest.getValueByHash(e[t],l);i in d||(d[i]=!0,p.push(i))}else e&&(e in d||(d[e]=!0,p.push(e)))}return p.join(c)}}},{"pict-template":36}],100:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~TabularEditingControls:","~}"),this.addPattern("{~TEC:","~}")}render(t,e,i,n,r){let o=t.trim();if(!o||!e)return"";let a=this.pict.views[o];if(!a)return"";let s=e.Group,c=e.Key,l=this.pict.providers["Pict-Layout-Tabular"];return l&&"function"==typeof l._renderTabularEditingControlsHTML?l._renderTabularEditingControlsHTML(a,s,c):""}}},{"pict-template":36}],101:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~TabularRowLabels:","~}"),this.addPattern("{~TRL:","~}")}render(t,e,i,n,r){let o=t.trim();if(!o||!e)return"";let a=this.pict.views[o];if(!a)return"";let s=e.Group,c=e.Key,l=this.pict.providers["Pict-Layout-Tabular"];return l&&"function"==typeof l._renderTabularRowLabelsHTML?l._renderTabularRowLabelsHTML(a,s,c):""}}},{"pict-template":36}],102:[function(t,e,i){e.exports={AutoRender:!1,AutoSolveWithApp:!1,ExecuteSolversWithoutMetacontroller:!1,IncludeInMetatemplateSectionGeneration:!0,IncludeInDefaultDynamicRender:!0,DefaultRenderable:"Form-Main",DefaultDestinationAddress:"#Pict-Form-Container",Renderables:[],Templates:[],MacroTemplates:{Section:{HTMLID:' id="Section-{~D:Context[0].UUID~}" '},Group:{HTMLID:' id="Group-{~D:Context[0].UUID~}" ',PictFormLayout:' data-i-pictdynamiclayout="true" data-i-pictgroupindex="{~D:Record.GroupIndex~}" data-i-pictlayout="{~D:Record.Layout~}" ',TabularCreateRowFunctionCall:"{~P~}.views['{~D:Context[0].Hash~}'].createDynamicTableRow({~D:Record.GroupIndex~})"},Input:{Informary:' data-i-form="{~D:Context[0].formID~}" data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}" ',InformaryTabular:' data-i-form="{~D:Context[0].formID~}" data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}" data-i-container="{~D:Record.PictForm.InformaryContainerAddress~}" ',ControlAttr:' data-control="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}" ',HTMLSelector:'[data-i-form="{~D:Context[0].formID~}"][data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}"]',HTMLSelectorTabular:'[data-i-form="{~D:Context[0].formID~}"][data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}"][data-i-container="{~D:Record.PictForm.InformaryContainerAddress~}"]',HTMLSelectorControl:'[data-control="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}"]',HTMLSelectorControlTabular:'[data-control="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}"]',RawHTMLID:"{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}",HTMLName:' name="{~D:Record.Name~}" ',HTMLIDAddress:"#{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}",HTMLID:' id="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}" ',HTMLForID:' for="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}" ',InputFullProperties:' data-i-form="{~D:Context[0].formID~}" data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}" name="{~D:Record.Name~}" ',InputChangeHandler:" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].dataChanged('{~D:Record.Hash~}')\" ",DataRequestFunction:" {~P~}.views['{~D:Context[0].Hash~}'].inputDataRequest('{~D:Record.Hash~}'); "}},TargetElementAddress:"#Form-Container-Div"}},{}],103:[function(t,e,i){const n=t("pict-view"),r=t("../../package.json"),o=t("./Pict-View-DynamicForm-DefaultConfiguration.json"),a="PendingAsyncOperation",s="onTransactionComplete",c="ReadyToFinalize";e.exports=class extends n{constructor(t,e,i){let n=Object.assign({},JSON.parse(JSON.stringify(o)),e);if(!n.Manifests)throw new Error("PictSectionForm instantiation attempt without a Manifests in pOptions.Manifest -- cannot instantiate.");if(!("Section"in n.Manifests))throw new Error("PictSectionForm instantiation attempt without a Section manifest in pOptions.Manifests -- cannot instantiate.");if("#Pict-Form-Container"===n.DefaultDestinationAddress&&(n.DefaultDestinationAddress="#Pict-Form-Container-".concat(n.Hash)),"Form-Main"===n.DefaultRenderable&&(n.DefaultRenderable="Form-".concat(n.Hash)),n.SectionTemplateHash||(n.SectionTemplateHash="Pict-Form-Template-".concat(n.Hash)),n.Renderables.length<1&&n.Renderables.push({RenderableHash:n.DefaultRenderable,TemplateHash:n.SectionTemplateHash,RenderMethod:"replace"}),super(t,n,i),!this.fable.PictDynamicFormDependencyManager)throw new Error("PictSectionForm instantiation attempt without a PictDynamicFormDependencyManager service in fable -- cannot instantiate.");if(this._PackagePictView=this._Package,this._Package=r,this.sectionDefinition=this.options,this.sectionManifest=this.fable.instantiateServiceProviderWithoutRegistration("Manifest",this.options.Manifests.Section),this.sectionSolvers=[],"Solvers"in this.options&&Array.isArray(this.options.Solvers))for(let t=0;t<this.options.Solvers.length;t++)"string"==typeof this.options.Solvers[t]&&this.sectionSolvers.push(this.options.Solvers[t]);if(this.formsTemplateSetPrefix="PFT-".concat(this.Hash,"-").concat(this.UUID),"MetaTemplates"in this.options&&Array.isArray(this.options.MetaTemplates))for(let t=0;t<this.options.MetaTemplates.length;t++){let e=this.options.MetaTemplates[t];if("HashPostfix"in e&&"Template"in e){let t="".concat(this.formsTemplateSetPrefix).concat(e.HashPostfix);this.pict.TemplateProvider.addTemplate(t,e.Template)}else this.log.warn("MetaTemplate entry ".concat(t," in PictSectionForm [").concat(this.UUID,"]::[").concat(this.Hash,"] does not have a Hash and Template property; custom template skipped."))}this.customDefaultTemplatePrefix=null,this.formID="Pict-Form-".concat(this.Hash,"-").concat(this.UUID),this.viewMarshalDestination=null,this.initialBundleLoaded=!1,this.fable.ManifestFactory.initializeFormGroups(this),this._LoopDetectionData={}}get defaultTemplatePrefix(){return this.customDefaultTemplatePrefix?this.customDefaultTemplatePrefix:this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.formTemplatePrefix:this.pict.providers.MetatemplateGenerator.baseTemplatePrefix}dataChanged(t){let e=this.getInputFromHash(t);if(this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] dataChanged event for input [").concat(t,"].")),t){let i=this.sectionManifest.resolveHashAddress(t);const n=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(n);try{let t=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(t,this.formID,this.sectionManifest,i);let r=this.sectionManifest.getValueByHash(t,i),o=this.getInputProviderList(e);for(let t=0;t<o.length;t++)this.pict.providers[o[t]]?this.pict.providers[o[t]].onDataChange(this,e,r,e.Macro.HTMLSelector,n):this.log.error("Dynamic form dataChanged [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(o[t],"] for input [").concat(e.Hash,"]."))}catch(e){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(t,") data from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(n)}}else this.marshalFromView();this.pict.PictApplication.solve(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():this.marshalToView(),this.pict.providers.FormPersistence&&this.pict.providers.FormPersistence.onFormDataChanged()}dataChangedTabular(t,e,i){this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] dataChangedTabular event for group ").concat(t," input ").concat(e," row ").concat(i,"."));let n=this.getTabularRecordInput(t,e);if(void 0!==t&&void 0!==e&&void 0!==i&&"object"==typeof n){let e=n.Address;const r=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(r);try{let t=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(t,this.formID,this.sectionManifest,e,i);let o=this.pict.providers.Informary.getComposedContainerAddress(n.PictForm.InformaryContainerAddress,i,n.PictForm.InformaryDataAddress),a=this.sectionManifest.getValueByHash(t,o),s=n.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(i,'"]'),c=this.getInputProviderList(n);for(let t=0;t<c.length;t++)this.pict.providers[c[t]]?this.pict.providers[c[t]].onDataChangeTabular(this,n,a,s,i,r):this.log.error("Dynamic form dataChangedTabular [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(c[t],"] for input [").concat(n.Hash,"] row ").concat(i,"."))}catch(e){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(n.Hash,") tabular data for group ").concat(t," row ").concat(i," from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(r)}}else this.marshalFromView();this.pict.PictApplication.solve(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():this.marshalToView(),this.pict.providers.FormPersistence&&this.pict.providers.FormPersistence.onFormDataChanged()}setDataByInput(t,e){const i=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(i);try{this.sectionManifest.setValueByHash(this.getMarshalDestinationObject(),t.Hash,e);let n=e,r=t.Macro.HTMLSelector,o=this.getInputProviderList(t);for(let e=0;e<o.length;e++)this.pict.providers[o[e]]?this.pict.providers[o[e]].onDataChange(this,t,n,r,i):this.log.error("Dynamic form setDataByInput [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(o[e],"] for input [").concat(t.Hash,"]."))}catch(e){this.log.error("Dynamic form setDataByInput [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(t.Hash,") from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(i)}return!1}setDataTabularByHash(t,e,i,n){let r=this.getGroup(t);if(!r)return this.log.warn("PICT View Metatemplate Helper setDataTabularByHash ".concat(t," was not a valid group.")),!1;let o=-1,a=Object.keys(r.supportingManifest.elementDescriptors);for(let t=0;t<a.length;t++)if(r.supportingManifest.elementDescriptors[a[t]].Hash===e){o=t;break}if(o<0)return this.log.warn("PICT View Metatemplate Helper setDataTabularByHash Group ".concat(t," did not have hash [").concat(e,"].")),!1;let s=this.getTabularRecordInput(t,o);if(void 0!==t&&void 0!==i&&"object"==typeof s){const r=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(r);try{let t=this.getMarshalDestinationObject(),e=this.pict.providers.Informary.getComposedContainerAddress(s.PictForm.InformaryContainerAddress,i,s.PictForm.InformaryDataAddress);this.sectionManifest.setValueByHash(t,e,n);let o=n,a=s.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(i,'"]'),c=this.getInputProviderList(s);for(let t=0;t<c.length;t++)this.pict.providers[c[t]]?this.pict.providers[c[t]].onDataChangeTabular(this,s,o,a,i,r):this.log.error("Dynamic form setDataTabularByHash [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(c[t],"] for input [").concat(s.Hash,"] row ").concat(i,"."))}catch(n){this.log.error("Dynamic form setDataTabularByHash [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(e,") tabular data for group ").concat(t," row ").concat(i," from view in dataChanged event: ").concat(n))}finally{this.finalizeTransaction(r)}}return!1}getMarshalDestinationAddress(){return this.viewMarshalDestination||this.pict.providers.DataBroker.marshalDestination}getMarshalDestinationObject(){return this.pict.providers.DataBroker.resolveMarshalDestinationObject(this.viewMarshalDestination)}getValueByHash(t){return this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),t)}getTabularValueByHash(t,e,i){const n=this.getTabularRecordInput(t,e),r=this.pict.providers.Informary.getComposedContainerAddress(n.PictForm.InformaryContainerAddress,i,n.PictForm.InformaryDataAddress);return this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),r)}onMarshalToView(){const t=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(t);try{let e=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalDataToForm(e,this.formID,this.sectionManifest),this.runLayoutProviderFunctions("onDataMarshalToForm",t),this.runInputProviderFunctions("onDataMarshalToForm",null,null,t)}catch(t){this.log.error("Gross error marshaling data to view: ".concat(t))}finally{this.finalizeTransaction(t)}return super.onMarshalToView()}manualMarshalDataToViewByInput(t,e){const i="string"==typeof e?e:this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(i);try{this.pict.providers.Informary.manualMarshalDataToFormByInput(t),this.runLayoutProviderFunctions("onDataMarshalToForm",i),this.runInputProviderFunctions("onDataMarshalToForm",t.Hash,null,i)}catch(t){this.log.error("Gross error marshaling data to view: ".concat(t))}finally{i!==e&&this.finalizeTransaction(i)}}manualMarshalTabularDataToViewByInput(t,e,i){const n="string"==typeof i?i:this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(n);try{this.pict.providers.Informary.manualMarshalTabularDataToFormByInput(t,e),this.runLayoutProviderFunctions("onDataMarshalToForm",n),this.runInputProviderFunctions("onDataMarshalToForm",t.Hash,e,n)}catch(t){this.log.error("Gross error marshaling tabular data to view: ".concat(t))}finally{n!==i&&this.finalizeTransaction(n)}}onMarshalFromView(){try{let t=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(t,this.formID,this.sectionManifest)}catch(t){this.log.error("Gross error marshaling data from view: ".concat(t))}return super.onMarshalFromView()}onAfterMarshalToForm(){const t=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(t);try{this.runInputProviderFunctions("onAfterMarshalToForm",null,null,t)}catch(t){this.log.error("Gross error running after marshal to form: ".concat(t))}finally{this.finalizeTransaction(t)}}onSolve(){return this.options.ExecuteSolversWithoutMetacontroller&&this.pict.providers.DynamicSolver.solveViews([this.Hash]),super.onSolve()}onBeforeRender(t){return this.initialBundleLoaded||(Array.isArray(this.sectionDefinition.InitialBundle)&&this.pict.EntityProvider.processBundle(this.sectionDefinition.InitialBundle),this.initialBundleLoaded=!0),super.onBeforeRender(t)}onBeforeRenderAsync(t,e){super.onBeforeRenderAsync(e=>{if(!this.initialBundleLoaded){if(Array.isArray(this.sectionDefinition.InitialBundle))return void this.pict.EntityProvider.gatherDataFromServer(this.sectionDefinition.InitialBundle,i=>{i&&this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to load initial bundle: ").concat(i)),setTimeout(()=>t(e),0)});this.initialBundleLoaded=!0}return t(e)},e)}onAfterRender(t){let e=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(e);try{this.runLayoutProviderFunctions("onGroupLayoutInitialize",e),this.runInputProviderFunctions("onInputInitialize",null,null,e,!0)}catch(t){this.log.error("Gross error running after render: ".concat(t.message||t))}finally{this.finalizeTransaction(e)}return super.onAfterRender(t)}runLayoutProviderFunctions(t,e){const i="string"==typeof e?e:this.fable.getUUID(),n=this.pict.TransactionTracking.registerTransaction(i);let r=this.pict.ContentAssignment.getElement("".concat(this.sectionDefinition.DefaultDestinationAddress,' [data-i-pictdynamiclayout="true"]'));for(let e=0;e<r.length;e++){let e=r[0].getAttribute("data-i-pictgroupindex"),i=r[0].getAttribute("data-i-pictlayout");if(isNaN(e)||e<0){this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions ".concat(e," was not a valid group index."));continue}let o=this.getGroup(e);if(!o){this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions for group ".concat(e," was not a valid group."));continue}if(!i||"string"!=typeof i){this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions for group ".concat(o," layout [").concat(i,"] was not a valid layout."));continue}let a=this.pict.providers.MetatemplateGenerator.getGroupLayoutProvider(this,o);if(a&&t in a){let r=a[t];this.pict.TransactionTracking.checkEvent(n.TransactionKey,"G".concat(e,"-L").concat(i),t)&&r.call(a,this,o)}}i!==e&&this.finalizeTransaction(i)}_trackInfiniteLoop(t,e,i){this._LoopDetectionData[t]=this._LoopDetectionData[t]||{};const n="".concat(null!=e?e:"","::").concat(null!=i?i:""),r=Date.now();return this._LoopDetectionData[t][n]=this._LoopDetectionData[t][n]||{Count:0,Timestamp:r},r-this._LoopDetectionData[t][n].Timestamp>1e3&&(this._LoopDetectionData[t][n].Count=0,this._LoopDetectionData[t][n].Timestamp=r),this._LoopDetectionData[t][n].Count+=1,this._LoopDetectionData[t][n]}runInputProviderFunctions(t,e,i,n,r){const o=this._trackInfiniteLoop(t,e,i);if(r&&o.Count>10)return void this.log.fatal(" !!!!!! Infinite loop detected in runInputProviderFunctions for function [".concat(t,"] on input [").concat(e,"] row [").concat(i,"] in form [").concat(this.Hash,"]::[").concat(this.UUID,"]. Aborting further processing."),{Stack:(new Error).stack});const a="string"==typeof n?n:this.fable.getUUID(),s=this.pict.TransactionTracking.registerTransaction(a);for(let n=0;n<this.sectionDefinition.Groups.length;n++){let r=this.sectionDefinition.Groups[n];if(Array.isArray(r.Rows))for(let i=0;i<r.Rows.length;i++){let n=r.Rows[i];for(let o=0;o<n.Inputs.length;o++){let c=n.Inputs[o];if(c&&c.PictForm&&(!e||e===c.Hash)){let e=this.getInputProviderList(c);for(let n=0;n<e.length;n++)if(this.pict.providers[e[n]]){let o=this.sectionManifest.resolveHashAddress(c.Hash),l=this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),o);try{this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] running provider [").concat(e[n],"] function [").concat(t,"] for input [").concat(c.Hash,"].")),("Option"==c.PictForm.InputType||this.pict.TransactionTracking.checkEvent(s.TransactionKey,"I".concat(c.Hash,"-P").concat(e[n]),t))&&this.pict.providers[e[n]][t](this,r,i,c,l,c.Macro.HTMLSelector,a)}catch(i){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to run provider [").concat(e[n],"] function [").concat(t,"] for input [").concat(c.Hash,"] with error: ").concat(i))}}else this.log.error("Dynamic form runInputProviderFunctions core [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(e[n],"] for input [").concat(c.Hash,"]."))}}}if(r.supportingManifest){let n=Object.keys(r.supportingManifest.elementDescriptors);for(let o=0;o<n.length;o++){let c=this.getTabularRecordSet(r.GroupIndex);if(c&&Array.isArray(c)){let l=r.supportingManifest.elementDescriptors[n[o]];if(l&&l.PictForm&&(!e||e===l.Hash)){let e=this.getInputProviderList(l);for(let n=0;n<e.length;n++){let o=[];if(null!=i)i<c.length?o.push(i):this.log.error("Dynamic form runInputProviderFunctions [".concat(this.Hash,"]::[").concat(this.UUID,"] row index ").concat(i," is out of bounds for input [").concat(l.Hash,"] with ").concat(c.length," rows."));else for(let t=0;t<c.length;t++)o.push(t);for(const c of o)if(!this.pict.providers[e[n]]||null!=i&&i!==c)this.log.error("Dynamic form runInputProviderFunctions supporting [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(e[n],"] for input [").concat(l.Hash,"]").concat(null!=i?" in row ".concat(i):"","."));else{let i=this.pict.providers.Informary.getComposedContainerAddress(l.PictForm.InformaryContainerAddress,c,l.PictForm.InformaryDataAddress),o=this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),i);try{this.pict.TransactionTracking.checkEvent(s.TransactionKey,"TI".concat(l.Hash,"-P").concat(e[n],"-R").concat(c),t)&&this.pict.providers[e[n]][t+"Tabular"](this,r,l,o,l.Macro.HTMLSelectorTabular,c,a)}catch(i){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to run provider [").concat(e[n],"] function [").concat(t,"] for input [").concat(l.Hash,"] with error: ").concat(i))}}}}}}}}n!==a&&this.finalizeTransaction(a)}checkViewSpecificTemplate(t){return this.getViewSpecificTemplateHash(t)in this.pict.TemplateProvider.templates}getViewSpecificTemplateHash(t){return"".concat(this.formsTemplateSetPrefix).concat(t)}checkThemeSpecificTemplate(t){return this.getThemeSpecificTemplateHash(t)in this.pict.TemplateProvider.templates}getThemeSpecificTemplateHash(t){return"".concat(this.defaultTemplatePrefix).concat(t)}rebuildCustomTemplate(){this.pict.providers.MetatemplateGenerator.rebuildCustomTemplate(this)}getGroupIndexFromHash(t){for(let e=0;e<this.sectionDefinition.Groups.length;e++)if(this.sectionDefinition.Groups[e].Hash===t)return e;return this.log.warn("PICT View Metatemplate Helper getGroupIndexByHash could not find group with hash [".concat(t,"].")),-1}getGroupFromHash(t){for(let e=0;e<this.sectionDefinition.Groups.length;e++)if(this.sectionDefinition.Groups[e].Hash===t)return this.sectionDefinition.Groups[e];return this.log.warn("PICT View Metatemplate Helper getGroupByHash could not find group with hash [".concat(t,"].")),!1}getGroup(t){return isNaN(t)?(this.log.warn("PICT View Metatemplate Helper getGroup ".concat(t," was expecting a number.")),!1):t>this.sectionDefinition.Groups.length?(this.log.warn("PICT View Metatemplate Helper getGroup ".concat(t," was out of bounds.")),!1):this.sectionDefinition.Groups[t]}getGroups(){return Array.isArray(this.sectionDefinition.Groups)?this.sectionDefinition.Groups:[]}getRow(t,e){let i=this.getGroup(t);return!!i&&(isNaN(e)?(this.log.warn("PICT View Metatemplate Helper getRow ".concat(e," was expecting a number.")),!1):e>i.Rows.length?[]:i.Rows[e])}getRowKeyValuePair(t,e){return{Key:t,Value:this.getRow(t,e),Group:this.getGroup(t)}}getInput(t,e,i){let n=this.getRow(t,e);return!!n&&(isNaN(i)?(this.log.warn("PICT View Metatemplate Helper getInput ".concat(i," was expecting a number.")),!1):i>n.Inputs.length?(this.log.warn("PICT View Metatemplate Helper getInput ".concat(i," was out of bounds.")),!1):n.Inputs[i])}getInputProviderList(t){if(!("PictForm"in t))return[];if("Providers"in t.PictForm&&Array.isArray(t.PictForm.Providers)){let e=this.pict.providers.DynamicInput.getDefaultInputProviders(this,t);return e.length>0?e.concat(t.PictForm.Providers):t.PictForm.Providers}return this.pict.providers.DynamicInput.getDefaultInputProviders(this,t)}getInputFromHash(t){return this.sectionManifest.getDescriptorByHash(t)}inputDataRequest(t,e){return this.pict.providers.DynamicInputEvents.inputDataRequest(this,t,e)}inputEvent(t,e,i){return this.pict.providers.DynamicInputEvents.inputEvent(this,t,e,i)}globalInputEvent(t,e,i){this.manifestInputEvent(t,e,i)}manifestInputEvent(t,e,i){const n=i&&"string"==typeof i?i:this.fable.getUUID(),r=Object.keys(this.sectionManifest.elementHashes);for(let n=0;n<r.length;n++)r[n]in e||(e[r[n]]=!0,this.inputEvent(r[n],t,i));i!==n&&this.finalizeTransaction(n)}inputDataRequestTabular(t,e,i,n){return this.pict.providers.DynamicInputEvents.inputDataRequestTabular(this,t,e,i,n)}inputEventTabular(t,e,i,n,r){return this.pict.providers.DynamicInputEvents.inputEventTabular(this,t,e,i,n,r)}registerEventTransactionAsyncOperation(t,e){this.pict.TransactionTracking.pushToTransactionQueue(t,e,a)}eventTransactionAsyncOperationComplete(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=0,o=!1;for(let t=0;t<i.length;t++){const s=i[t];s.Type===a&&(s.Data===e?(i.splice(t,1),++r,--t):++n),s.Type===c&&(o=!0)}if(0!==r){if(o&&0===n){for(let t=0;t<i.length;t++){const e=i[t];if(e.Type===s){if(i.splice(t,1),--t,"function"!=typeof e.Data){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback was not a function.");continue}try{e.Data()}catch(t){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback error: ".concat(t),{Stack:t.stack})}}}delete this.pict.TransactionTracking.transactions[t]}return r>0}this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete ".concat(t," could not find async operation with hash ").concat(e,"."))}finalizeTransaction(t){this.pict.TransactionTracking.pushToTransactionQueue(t,null,c);const e=this.pict.TransactionTracking.checkTransactionQueue(t);let i=0;for(const t of e)t.Type===a&&++i;if(i>0)return this.pict.log.info("PICT View Metatemplate Helper finalizeTransaction ".concat(t," is waiting on ").concat(i," pending async operations.")),!1;for(let t=0;t<e.length;t++){const i=e[t];if(i.Type===s){if(e.splice(t,1),--t,"function"!=typeof i.Data){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback was not a function.");continue}try{i.Data()}catch(t){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback error: ".concat(t),{Stack:t.stack})}}}return delete this.pict.TransactionTracking.transactions[t],!0}registerOnTransactionCompleteCallback(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=!1;for(const t of i)t.Type===a&&++n,t.Type===c&&(r=!0);r&&0===n?e():this.pict.TransactionTracking.pushToTransactionQueue(t,e,s)}groupInputEvent(t,e,i,n){const r=this.getGroup(t);if(!r)return void this.log.warn("PICT View Metatemplate Helper subManifestInputEvent ".concat(t," is not a valid group index."));const o=n&&"string"==typeof n?n:this.fable.getUUID();if(n!==o&&this.pict.TransactionTracking.registerTransaction(o),r.Rows.length<1){const n=this.getTabularRecordSet(t);if(!Array.isArray(n))return;for(let a=0;a<n.length;a++)for(const n of Object.values(r.supportingManifest.elementDescriptors)){const s="".concat(this.Hash,"-").concat(r.Hash,"-").concat(n.Hash,"-").concat(a);s in i||(i[s]=!0,this.inputEventTabular(t,n.PictForm.InputIndex,a,e,o))}}for(const t of r.Rows||[])for(const n of t.Inputs||[]){const a="".concat(this.Hash,"-").concat(r.Hash,"-").concat(n.Hash,"-").concat(t.Hash);a in i||(i[a]=!0,this.inputEvent(n.Hash,e,o))}n!==o&&this.finalizeTransaction(o)}sectionInputEvent(t,e,i){const n=this.sectionDefinition.Groups.length,r=i&&"string"==typeof i?i:this.fable.getUUID();i!==r&&this.pict.TransactionTracking.registerTransaction(r);for(let r=0;r<n;r++)this.groupInputEvent(r,t,e,i);i!==r&&this.finalizeTransaction(r)}getTabularRecordInput(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordInput(this,t,e)}getTabularRecordInputByHash(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordInputByHash(this,t,e)}getTabularRecordData(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordData(this,t,e)}getTabularRecordSet(t){return this.pict.providers.DynamicTabularData.getTabularRecordSet(this,t)}createDynamicTableRow(t){return this.pict.providers.DynamicTabularData.createDynamicTableRow(this,t)}setDynamicTableRowIndex(t,e,i){return this.pict.providers.DynamicTabularData.setDynamicTableRowIndex(this,t,e,i)}moveDynamicTableRowDown(t,e){return this.pict.providers.DynamicTabularData.moveDynamicTableRowDown(this,t,e)}moveDynamicTableRowUp(t,e){return this.pict.providers.DynamicTabularData.moveDynamicTableRowUp(this,t,e)}deleteDynamicTableRow(t,e){return this.pict.providers.DynamicTabularData.deleteDynamicTableRow(this,t,e)}get isPictSectionForm(){return!0}},e.exports.default_configuration=o},{"../../package.json":39,"./Pict-View-DynamicForm-DefaultConfiguration.json":102,"pict-view":38}],104:[function(t,e,i){const n=t("pict-view"),r=t("../services/Pict-Service-DynamicFormDependencyManager.js"),o=t("./Pict-View-DynamicForm.js"),a="PendingAsyncOperation",s="onTransactionComplete",c="ReadyToFinalize";e.exports=class extends n{constructor(e,i,n){super(e,i,n),this.serviceType="PictFormMetacontroller",this.fable.addAndInstantiateSingletonService("PictDynamicFormDependencyManager",r.default_configuration,r),this.lastRenderedViews=[],this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix,this.manifest=this.pict.manifest,this.AutoSolveOnFirstRender=!0,this.FirstRenderCompleted=!1,this.comprehensionDestinationAddress=this.options&&"string"==typeof this.options.ComprehensionDestinationAddress&&this.options.ComprehensionDestinationAddress.length>0?this.options.ComprehensionDestinationAddress:"AppData.FormEntityComprehensions",this.SupportViewPrototypes={LifecycleVisualization:t("./support/Pict-View-PSF-LifeCycle-Visualization.js"),DebugViewer:t("./support/Pict-View-PSF-DebugViewer.js"),AppDataViewer:t("./support/Pict-View-PSF-AppData-Visualization.js"),SolverVisualization:t("./support/Pict-View-PSF-Solver-Visualization.js"),SpecificSolveVisualization:t("./support/Pict-View-PSF-SpecificSolve-Visualization.js")}}get viewMarshalDestination(){return this.pict.providers.DataBroker.marshalDestination}set viewMarshalDestination(t){this.pict.providers.DataBroker.marshalDestination=t}onMarshalFromView(){let t=Object.keys(this.fable.views);for(let e=0;e<t.length;e++)this.fable.views[t[e]].isPictSectionForm&&this.fable.views[t[e]].marshalFromView();return super.onMarshalFromView()}onMarshalToView(){let t=Object.keys(this.fable.views);for(let e=0;e<t.length;e++)this.fable.views[t[e]].isPictSectionForm&&this.fable.views[t[e]].marshalToView();return super.onMarshalToView()}gatherInitialBundle(t){return this.manifestDescription&&this.manifestDescription.InitialBundle?(this.log.info("Gathering initial bundle for ".concat(this.manifestDescription.InitialBundle.length," entities.")),this.pict.EntityProvider.gatherDataFromServer(this.manifestDescription.InitialBundle,e=>{setTimeout(()=>t(e),0)})):(this.log.info("No initial bundle to gather."),t())}onAfterInitializeAsync(t){return super.onAfterInitializeAsync(function(e){if(e)return t(e);this.gatherInitialBundle(e=>(this.bootstrapPictFormViewsFromManifest(),this.generateMetatemplate(),t(e)))}.bind(this))}onAfterRender(t){const e=super.onAfterRender(t);return this.regenerateFormSectionTemplates(),this.renderFormSections(),this.AutoSolveOnFirstRender&&!this.FirstRenderCompleted&&(this.FirstRenderCompleted=!0,this.pict.providers.DynamicSolver.solveViews()),this.options.AutoPopulateAfterRender&&this.marshalToView(),e}onSolve(){return this.pict.providers.DynamicSolver.solveViews(),super.onSolve()}runSolver(t,e){this.pict.providers.DynamicSolver.runSolver(t,e)}onBeforeFilterViews(t){return t}onAfterFilterViews(t){return t}findDynamicSectionManifestDefinition(t){var e;const i=null===(e=this.manifestDescription)||void 0===e||null===(e=e.ReferenceManifests)||void 0===e?void 0:e[t];return"object"!=typeof i?(this.log.error("findDynamicSectionManifestDefinition() could not find a section manifest with hash [".concat(t,"]")),null):i}injectManifestAndRender(t,e,i){const n=i?this.createDistinctManifest(t,i):t,r=this.injectManifest(n,e);return this.updateMetatemplateInDOM(),setTimeout(()=>{for(const t of r)t.render();if(this.options.AutoPopulateAfterRender)for(const t of r)t.marshalToView()},0),r}injectManifest(t,e){const i=e?e.startsWith("PictSectionForm-")?e:"PictSectionForm-".concat(e):null,n=Object.keys(this.pict.views),r=i?n.indexOf(i):-1,o=[];if(r>=0)for(let t=r+1;t<n.length;t++){const e=n[t];o.push({key:e,view:this.pict.views[e]}),delete this.pict.views[e]}const a=this.bootstrapAdditiveManifest(t,i);for(const t of o)this.pict.views[t.key]=t.view;this.generateMetatemplate();for(const t of a)t.rebuildCustomTemplate();return this.pict.CSSMap.injectCSS(),a}buildManifestTranslations(t){const e={};for(const i of t.Sections||[]){i.OriginalHash&&(e[i.OriginalHash]=i.Hash);for(const t of i.Groups||[])t.OriginalHash&&(e[t.OriginalHash]=t.Hash)}const i={};for(const n of Object.values((null==t?void 0:t.Descriptors)||{}))n.OriginalDataAddress&&(e[n.OriginalDataAddress]=n.DataAddress),n.OriginalHash&&(i[n.OriginalHash]=n.Hash);return{AddressTranslation:e,HashTranslation:i}}rewriteSolverExpression(t,e,i){const n=e||{},r=i||{},o=this.fable.instantiateServiceProviderIfNotExists("ExpressionParser"),a=this.viewMarshalDestination;if("string"!=typeof t||0===t.length)return t;let s={};o.tokenize(t,s);let c=Array.from(s.OriginalRawTokens),l=!1,p=[],d=0;for(let t=0;t<c.length;t++){let e=c[t],i=o.Tokenizer.getTokenType(e);if("("!==e)if(")"!==e)if(","!==e){if("Token.Symbol"===i){let i=null;if(e in n)i=n[e];else if(e in r)i=r[e];else if(a&&e.startsWith(a+".")){let t=e.substring(a.length+1);t in n?i=a+"."+n[t]:t in r&&(i=a+"."+r[t])}null!==i&&(c[t]=i,l=!0)}else if("Token.StateAddress"===i){let i=e.substring(1,e.length-1),o=null;if(i in r)o="{"+r[i]+"}";else if(i in n)o="{"+n[i]+"}";else if(a&&i.startsWith(a+".")){let t=i.substring(a.length+1);t in r?o="{"+a+"."+r[t]+"}":t in n&&(o="{"+a+"."+n[t]+"}")}null!==o&&(c[t]=o,l=!0)}else if("Token.String"===i&&p.length>0){let i=p[p.length-1],s=o.functionMap[i.name];if(s&&Array.isArray(s.AddressParameterIndices)&&s.AddressParameterIndices.includes(i.paramIndex)){let i=e.substring(1,e.length-1),o=null;if(i in n)o='"'+n[i]+'"';else if(i in r)o='"'+r[i]+'"';else if(a&&i.startsWith(a+".")){let t=i.substring(a.length+1);t in n?o='"'+a+"."+n[t]+'"':t in r&&(o='"'+a+"."+r[t]+'"')}null!==o&&(c[t]=o,l=!0)}}}else p.length>0&&p[p.length-1].depth===d-1&&p[p.length-1].paramIndex++;else d--,p.length>0&&p[p.length-1].depth===d&&p.pop();else{if(t>0){let e=c[t-1].toLowerCase();e in o.functionMap&&p.push({name:e,paramIndex:0,depth:d})}d++}}return l?o.recompose(c):t}createDistinctManifest(t,e){const i=null!=e?e:this.pict.getUUID().replace(/-/g,""),n=JSON.parse(JSON.stringify(t)),r={};for(const t of n.Sections||[]){t.Hash||(t.Hash="".concat(this.fable.getUUID())),t.OriginalHash=t.Hash,t.Hash="".concat(t.Hash,"_").concat(i),r[t.OriginalHash]=t.Hash;for(const e of t.Groups||[])e.Hash||(e.Hash="".concat(this.fable.getUUID())),e.OriginalHash=e.Hash,e.Hash="".concat(e.Hash,"_").concat(i),r[e.OriginalHash]=e.Hash}const o=n.Descriptors||{},a={};for(const t of Object.entries(o)){var s=_slicedToArray(t,2);const e=s[0],n=s[1];n.DataAddress||(n.DataAddress=e),n.OriginalDataAddress=n.DataAddress,n.DataAddress="".concat(i,".").concat(n.OriginalDataAddress),null!=n.Address&&(n.Address=n.DataAddress),n.Hash&&(n.OriginalHash=n.Hash,n.Hash="".concat(n.Hash,"_").concat(i)),n.PictForm&&(n.PictForm.Section&&(n.PictForm.Section="".concat(n.PictForm.Section,"_").concat(i)),n.PictForm.Group&&(n.PictForm.Group="".concat(n.PictForm.Group,"_").concat(i))),a[n.DataAddress]=n}n.Descriptors=a;const c={};for(const t of Object.values((null==n?void 0:n.Descriptors)||{}))t.OriginalDataAddress&&(r[t.OriginalDataAddress]=t.DataAddress),t.OriginalHash&&(c[t.OriginalHash]=t.Hash);const l=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(const t of Object.entries(r)){var p=_slicedToArray(t,2);const e=p[0],i=p[1];for(const t of Object.keys(r)){if(t===e)continue;const o=r[t].replace(new RegExp("^".concat(l(e),"\\b"),"g"),i);if(o!==r[t]){this.pict.log.info('DocumentDynamicSectionManager.createDistinctManifest: Updated address translation for "'.concat(t,'" from "').concat(r[t],'" to "').concat(o,'".')),r[t]=o;const e=Object.entries(n.Descriptors).find(e=>{let i=_slicedToArray(e,2);i[0];return i[1].OriginalDataAddress===t}),i=_slicedToArray(e,2),a=i[0];i[1];n.Descriptors[a].DataAddress=o,null!=n.Descriptors[a].Address&&(n.Descriptors[a].Address=n.Descriptors[a].DataAddress),n.Descriptors[o]=n.Descriptors[a],delete n.Descriptors[a]}}}const d=(t,e,i)=>{const n=t[e],o="string"==typeof n?n:n.Expression;if(!o)return;const a=this.rewriteSolverExpression(o,c,r);a!==o&&(this.pict.log.info("DocumentDynamicSectionManager.createDistinctManifest: Updated ".concat(i," ").concat(e,' from "').concat(o,'" to "').concat(a,'".')),"string"==typeof n?t[e]=a:t[e].Expression=a)};for(const t of n.Sections||[]){if(Array.isArray(t.Solvers)&&t.Solvers.length>0)for(let e=0;e<t.Solvers.length;e++)d(t.Solvers,e,"section solver reference");for(const e of t.Groups||[]){if(e.RecordSetAddress){let t="".concat(i,".").concat(e.RecordSetAddress);this.pict.log.info('DocumentDynamicSectionManager.createDistinctManifest: Updated group record set address from "'.concat(e.RecordSetAddress,'" to "').concat(t,'".')),e.RecordSetAddress=t}if(Array.isArray(e.RecordSetSolvers)&&e.RecordSetSolvers.length>0)for(let t=0;t<e.RecordSetSolvers.length;t++)d(e.RecordSetSolvers,t,"group solver reference")}}if(Array.isArray(n.ValidationSolvers))for(let t=0;t<n.ValidationSolvers.length;t++)d(n.ValidationSolvers,t,"validation solver reference");return n}injectManifestsByHash(t,e,i){let n=[];for(const r of t){const t=this.findDynamicSectionManifestDefinition(r);if(t){const r=this.createDistinctManifest(t,i),o=this.injectManifest(r,e);n=n.concat(o)}}this.updateMetatemplateInDOM(),setTimeout(()=>{for(const t of n)t.render()},0)}bootstrapAdditiveManifest(t,e){const i=[],n=this.bootstrapPictFormViewsFromManifest(t,e);for(const t of n){const e=this.pict.views["PictSectionForm-".concat(t.Hash)];e&&i.push(e)}return i}filterViews(t,e){let i={ViewHashList:Object.keys(this.pict.views),RenderLastRenderedViewsWithoutCustomization:!0,LastRenderedViews:this.lastRenderedViews,FilterFunction:t,SortFunction:e,FilteredViewList:[]};i=this.onBeforeFilterViews(i);for(let t=0;t<i.ViewHashList.length;t++){let e=this.fable.views[i.ViewHashList[t]];if(!i.FilterFunction||i.FilterFunction(e))if(e.isPictSectionForm){if("function"!=typeof i.FilterFunction&&!e.sectionDefinition.IncludeInDefaultDynamicRender)continue;i.FilteredViewList.push(e)}else this.options.OnlyRenderDynamicSections&&!e.options.IncludeInMetacontrollerOperations||i.FilteredViewList.push(e)}const n=i.FilteredViewList.filter(t=>t.options.DynamicPlacementMode||t.options.DynamicAnchor);for(const t of n){const e=t.options.DynamicPlacementMode||"After",n=t.options.DynamicAnchor;let r,o=i.FilteredViewList.findIndex(e=>e===t);switch(e){case"First":i.FilteredViewList.splice(o,1),i.FilteredViewList.unshift(t);break;case"Last":i.FilteredViewList.splice(o,1),i.FilteredViewList.push(t);break;case"Before":case"After":if(r=i.FilteredViewList.findIndex(t=>t.Hash==n),r<0){const t="PictSectionForm-".concat(n);r=i.FilteredViewList.findIndex(e=>e.Hash==t)}if(r<0){this.log.error("No anchor view [".concat(n,"] found to position view [").concat(t.Hash,"] [").concat(e,"]."));break}i.FilteredViewList.splice(o,1),o<r&&--r,"After"===e&&++r,i.FilteredViewList.splice(r,0,t);break;default:this.log.error("Not auto-positioning view with unknown DynamicPlacementMode: ".concat(e))}}return"function"==typeof i.SortFunction&&i.FilteredViewList.sort(i.SortFunction),i=this.onAfterFilterViews(i),i.FilteredViewList}renderSpecificFormSection(t){this.lastRenderedViews=this.filterViews(e=>e.Hash==t),this.regenerateFormSectionTemplates(),this.generateMetatemplate(),this.render()}renderDefaultFormSections(){this.lastRenderedViews=this.filterViews(t=>{var e,i;return null!==(e=null==t||null===(i=t.sectionDefinition)||void 0===i?void 0:i.IncludeInDefaultDynamicRender)&&void 0!==e&&e}),this.regenerateFormSectionTemplates(),this.generateMetatemplate(),this.render()}renderFormSections(t,e){let i=this.filterViews(t,e);for(let t=0;t<i.length;t++)i[t]!==this&&i[t].render()}marshalFormSections(t,e){let i=this.filterViews(t,e);for(let t=0;t<i.length;t++)i[t]!==this&&i[t].marshalToView()}regenerateFormSectionTemplates(t,e){let i=this.filterViews(t,e);for(let t=0;t<i.length;t++){const e=i[t];e!==this&&(e.isPictSectionForm&&e.rebuildCustomTemplate())}this.pict.CSSMap.injectCSS()}generateMetatemplate(t,e){let i="";this.formTemplatePrefix||(this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix),i+="{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Header:Pict.views["').concat(this.Hash,'"]~}');let n=this.filterViews(t,e);for(let t=0;t<n.length;t++){let e=n[t];e!==this&&(e.options.IncludeInMetatemplateSectionGeneration?(i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),e.isPictSectionForm?i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container:Pict.views["').concat(e.Hash,'"]~}'):(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}')),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}')):e.isPictSectionForm||(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}'),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}')))}i+="{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Footer:Pict.views["').concat(this.Hash,'"]~}'),this.pict.TemplateProvider.addTemplate(this.options.MetaTemplateHash,i)}updateMetatemplateInDOM(t,e){this.formTemplatePrefix||(this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix);let i,n=this.filterViews(t,e),r=null,o=null;for(let t=0;t<n.length;t++){let e=n[t];if(e===this)continue;if(!e.isPictSectionForm)continue;if(!e.options.IncludeInMetatemplateSectionGeneration)continue;const a=e.options.CustomTargetID||"Pict-".concat(this.UUID,"-").concat(e.options.Hash,"-Wrap");let s=this.pict.ContentAssignment.getElement("#".concat(a));if(s.length>0){const t=s[0];o&&(this.pict.ContentAssignment.insertContentBefore("#".concat(a),i),o=null,i=null),r=t;continue}let c="";e.options.IncludeInMetatemplateSectionGeneration?(c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),e.isPictSectionForm?c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container:Pict.views["').concat(e.Hash,'"]~}'):(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}')),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}')):e.isPictSectionForm||(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}'),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}'));const l=this.pict.parseTemplate(c,e,null,[this]);r?(this.pict.ContentAssignment.insertContentAfter("#".concat(r.id),l),s=this.pict.ContentAssignment.getElement("#".concat(a)),r=s[0]):(o=a,i=l)}o&&(this.pict.ContentAssignment.appendContent("#Pict-".concat(this.UUID,"-FormContainer"),i),o=null,i=null)}getSectionDefinition(t){if("object"!=typeof t)return this.log.error("getSectionDefinition() called without a valid section object."),!1;if(!("Hash"in t))return this.log.error("getSectionDefinition() called without a valid section object hash."),!1;try{let e=JSON.parse(JSON.stringify(t));return"Name"in e||(e.Name=e.Hash),"Description"in e||(e.Description="PICT Section [".concat(e.Name,"].")),"Groups"in e||(e.Groups=[]),e}catch(t){return this.log.error("getSectionDefinition() failed to parse the section object with error: ".concat(t.message||t)),!1}}getSectionViewFromHash(t){let e="string"==typeof t&&t;if(!e)return this.log.error("getSectionViewFromHash() called without a valid section hash."),!1;let i="PictSectionForm-".concat(e);return i in this.fable.views?this.fable.views[i]:(this.log.error("getSectionViewFromHash() could not find a view for section hash [".concat(e,"].")),!1)}clearManifestDescription(){this.manifestDescription=null}bootstrapPictFormViewsFromManifest(t,e){let i="object"==typeof t&&t,n=[];if("object"!=typeof i){if(!("DefaultFormManifest"in this.fable.settings)||"object"!=typeof this.fable.settings.DefaultFormManifest||!("Descriptors"in this.fable.settings.DefaultFormManifest))return this.log.error("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() called without a valid manifest, and no settings.DefaultFormManifest was provided."),n;i=this.fable.settings.DefaultFormManifest}if(this.manifestDescription){this.stashedManifestDescription=this.manifestDescription,this.manifestDescription=i;for(const t of Object.entries(this.manifestDescription.Descriptors||{})){var r=_slicedToArray(t,2);const e=r[0],i=r[1];this.stashedManifestDescription.Descriptors[e]?this.log.error("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() found a duplicate descriptor key [".concat(e,"] when merging manifests. The new descriptor will be skipped.")):this.stashedManifestDescription.Descriptors[e]=JSON.parse(JSON.stringify(i))}for(const t of Object.keys(this.manifestDescription.ReferenceManifests||{}))this.stashedManifestDescription.ReferenceManifests[t]?this.log.warn("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() found a duplicate reference manifest key [".concat(t,"] when merging manifests. The new reference manifest will be skipped.")):this.stashedManifestDescription.ReferenceManifests[t]=JSON.parse(JSON.stringify(this.manifestDescription.ReferenceManifests[t]));let t=this.stashedManifestDescription.Sections.findIndex(t=>t.Hash==e);t<0?t=0:++t;for(const e of this.manifestDescription.Sections||[]){const i=JSON.parse(JSON.stringify(e));this.stashedManifestDescription.Sections.splice(t,0,i),++t}}else this.manifestDescription=i;let a=this.fable.instantiateServiceProviderWithoutRegistration("Manifest",this.manifestDescription);if(this.options.AutoPopulateDefaultObject){const t=this.pict.providers.DataBroker.marshalDestinationObject;"object"==typeof t&&a.populateDefaults(t)}if("Sections"in this.manifestDescription&&Array.isArray(this.manifestDescription.Sections))for(let t=0;t<this.manifestDescription.Sections.length;t++){let e=this.getSectionDefinition(this.manifestDescription.Sections[t]);e&&n.push(e)}let s={},c=Object.keys(a.elementDescriptors);for(let t=0;t<c.length;t++){let e=a.elementDescriptors[c[t]];e&&this.pict.manifest.addDescriptor(c[t],e),"object"==typeof e&&"PictForm"in e&&"object"==typeof e.PictForm&&"Section"in e.PictForm&&"string"==typeof e.PictForm.Section&&(s[e.PictForm.Section]=!0)}let l=Object.keys(s);for(let t=0;t<l.length;t++){n.find(e=>e.Hash==l[t])||n.push(this.getSectionDefinition({Hash:l[t]}))}for(let t=0;t<n.length;t++){let e="PictSectionForm-".concat(n[t].Hash);if(e in this.fable.views){this.log.info("getSectionList() found an existing view for section [".concat(n[t].Hash,"] so will be skipped."));continue}let i=JSON.parse(JSON.stringify(n[t]));"Manifests"in i||(i.Manifests={}),i.Manifests.Section=this.manifestDescription,this.pict.addView(e,i,o)}if("PickLists"in this.manifestDescription){let t=Object.keys(this.manifestDescription.PickLists);for(let e=0;e<t.length;e++){let i=this.manifestDescription.PickLists[t[e]];this.pict.providers.DynamicMetaLists.buildList(i)}}for(let t=0;t<n.length;t++){let e=n[t];"CustomCSS"in e&&"string"==typeof e.CustomCSS&&this.pict.CSSMap.addCSS("PSF-SectionCSS-".concat(e.Hash),e.CustomCSS)}return this.stashedManifestDescription&&(this.manifestDescription=this.stashedManifestDescription,delete this.stashedManifestDescription),n}triggerGlobalInputEvent(t,e){const i=e&&"string"==typeof e?e:this.fable.getUUID();e!==i&&this.pict.TransactionTracking.registerTransaction(i);let n="string"==typeof t?t:this.fable.getUUID(),r=Object.keys(this.pict.views),o={},a=null;for(let t=0;t<r.length;t++){let e=this.pict.views[r[t]];e.isPictSectionForm&&(a=e,e.sectionInputEvent(n,o,i))}e!==i&&a&&a.finalizeTransaction(i)}registerEventTransactionAsyncOperation(t,e){this.pict.TransactionTracking.pushToTransactionQueue(t,e,a)}eventTransactionAsyncOperationComplete(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=0,o=!1;for(let t=0;t<i.length;t++){const s=i[t];s.Type===a&&(s.Data===e?(i.splice(t,1),++r,--t):++n),s.Type===c&&(o=!0)}if(0!==r){if(o&&0===n){for(let t=0;t<i.length;t++){const e=i[t];if(e.Type===s){if(i.splice(t,1),--t,"function"!=typeof e.Data){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback was not a function.");continue}try{e.Data()}catch(t){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback error: ".concat(t),{Stack:t.stack})}}}delete this.pict.TransactionTracking.transactions[t]}return r>0}this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete ".concat(t," could not find async operation with hash ").concat(e,"."))}finalizeTransaction(t){this.pict.TransactionTracking.pushToTransactionQueue(t,null,c);const e=this.pict.TransactionTracking.checkTransactionQueue(t);let i=0;for(const t of e)t.Type===a&&++i;if(i>0)return this.pict.log.info("PICT View Metatemplate Helper finalizeTransaction ".concat(t," is waiting on ").concat(i," pending async operations.")),!1;for(let t=0;t<e.length;t++){const i=e[t];if(i.Type===s){if(e.splice(t,1),--t,"function"!=typeof i.Data){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback was not a function.");continue}try{i.Data()}catch(t){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback error: ".concat(t),{Stack:t.stack})}}}return delete this.pict.TransactionTracking.transactions[t],!0}registerOnTransactionCompleteCallback(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=!1;for(const t of i)t.Type===a&&++n,t.Type===c&&(r=!0);r&&0===n?e():this.pict.TransactionTracking.pushToTransactionQueue(t,e,s)}showSupportViewInlineEditor(){this.pict.addViewSingleton("Pict-Form-DebugViewer",{},this.SupportViewPrototypes.DebugViewer),this.pict.addViewSingleton("Pict-Form-AppDataViewer",{},this.SupportViewPrototypes.AppDataViewer),this.pict.addViewSingleton("Pict-Form-SolverVisualization",{},this.SupportViewPrototypes.SolverVisualization),this.pict.views["Pict-Form-DebugViewer"].bootstrapContainer(),this.pict.views["Pict-Form-DebugViewer"].render()}get isPictMetacontroller(){return!0}},e.exports.default_configuration={AutoRender:!0,AutoPopulateDefaultObject:!0,AutoSolveBeforeRender:!0,AutoPopulateAfterRender:!0,DefaultRenderable:"Pict-Forms-Metacontainer",DefaultDestinationAddress:"#Pict-Form-Container",OnlyRenderDynamicSections:!0,MetaTemplateHash:"Pict-Forms-Metatemplate",Templates:[{Hash:"Pict-Forms-Metatemplate",Template:"\x3c!-- Pict-Forms-Metatemplate HAS NOT BEEN GENERATED; call pict.views.PictFormsMetatemplate.generateMetatemplate() to build the containers --\x3e"}],Renderables:[{RenderableHash:"Pict-Forms-Metacontainer",TemplateHash:"Pict-Forms-Metatemplate",DestinationAddress:"#Pict-Form-Container"}]}},{"../services/Pict-Service-DynamicFormDependencyManager.js":88,"./Pict-View-DynamicForm.js":103,"./support/Pict-View-PSF-AppData-Visualization.js":106,"./support/Pict-View-PSF-DebugViewer.js":107,"./support/Pict-View-PSF-LifeCycle-Visualization.js":108,"./support/Pict-View-PSF-Solver-Visualization.js":109,"./support/Pict-View-PSF-SpecificSolve-Visualization.js":110,"pict-view":38}],105:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-Form-SupportExtensions",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),"Pict-Support"in this.pict.CSSMap.inlineCSSMap||this.pict.CSSMap.addCSS("Pict-Support",'\n\t\t\t\t\t:root{\n\t\t\t\t\t\t--PSF-Global-background-color: #dcdce5;\n\t\t\t\t\t\t--PSF-Global-text-color: var(--theme-color-text-primary, #333333);\n\n\t\t\t\t\t\t--PSFExt-gutter-size: 5px;\n\t\t\t\t\t\t--PSFExt-indentation-size: calc(2 * var(--PSFExt-gutter-size));\n\t\t\t\t\t\t--PSFExt-Global-background-color: #dedede;\n\t\t\t\t\t\t--PSFExt-Global-text-color: var(--theme-color-text-primary, #333333);\n\t\t\t\t\t\t--PSFExt-Section-background-color: var(--theme-color-background-tertiary, #efefef);\n\t\t\t\t\t\t--PSFExt-Section-button-color: #5A52A3;\n\t\t\t\t\t\t--PSFExt-Section-button-text-color: #D8D7E5;\n\t\t\t\t\t\t--PSFExt-Section-token-color: #eAf3a2;\n\t\t\t\t\t\t--PSFExt-Section-label-color: var(--theme-color-text-muted, #999);\n\t\t\t\t\t\t--PSFExt-Section-Data-background-color: var(--theme-color-background-secondary, #fafafa);\n\t\t\t\t\t\t--PSFExt-Section-Group-Header-background-color: #ebebff;\n\t\t\t\t\t\t--PSFExt-Section-Group-Row-Header-background-color: #dcf0f0;\n\t\t\t\t\t\t--PSFExt-Solver-Entry-text-color: #bb4a9c;\n\t\t\t\t\t\t--PSFExt-Section-DynamicInput-background-color: #a3ccd8;\n\t\t\t\t\t\t--PSFExt-Section-DynamicInput-button-color: #2b89a4;\n\t\t\t\t\t\t--PSFExt-Section-DynamicInput-button-text-color: #D8D7E5;\n\t\t\t\t\t}\n\n\t\t\t\t\t/** Wrapping container\t*/\n\t\t\t\t\t#Pict-Form-Extensions-Wrap {\n\t\t\t\t\t\tdisplay:flex;\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\theight: 75vh;\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\tleft: 50%;\n\t\t\t\t\t\ttop: 0px;\n\t\t\t\t\t\twidth: 20vw;\n\t\t\t\t\t\tmin-width: 340px;\n\t\t\t\t\t\tmin-height: 200px;\n\t\t\t\t\t}\n\t\t\t\t\t#Pict-Form-Extension-DragControl {\n\t\t\t\t\t\tbackground-color: #eae;\n\t\t\t\t\t\tcursor: move;\n\t\t\t\t\t\tpadding: 4px 6px;\n\t\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\t\tborder: 1px solid var(--theme-color-text-primary, #111);\n\t\t\t\t\t}\n\t\t\t\t\t#Pict-Form-Extensions-Container { \n\t\t\t\t\t\tflex-grow: 1;\n\t\t\t\t\t\toverflow: auto;\n\t\t\t\t\t\tmargin-top: 2px;\n\t\t\t\t\t\tcolor: var(--PSF-Global-text-color);\n\t\t\t\t\t\tbackground-color: var(--PSF-Global-background-color);\n\t\t\t\t\t\tpadding: 10px;\n\t\t\t\t\t\tborder: 4px double var(--theme-color-text-primary, #111);\n\t\t\t\t\t\tborder-radius: 8px;\n\t\t\t\t\t\tbox-shadow: 2px 2px 10px rgba(0,0,0,0.5);\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t\tfont-family: Arial, sans-serif;\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t}\n\t\t\t\t\t#Pict-Form-Extension-ResizeControl {\n\t\t\t\t\t\tbackground-color: #eae;\n\t\t\t\t\t\tcursor: move;\n\t\t\t\t\t\tpadding: 4px 4px;\n\t\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\t\tborder: 1px solid var(--theme-color-text-primary, #111);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Extension-Footer {\n\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: 8px;\n\t\t\t\t\t}\n\n\t\t\t\t\t/** Headers\t*/\n\t\t\t\t\t.PSFExt-Extension-Header {\n\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-bottom: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Global-Header {\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Header {\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Content-Header {\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Data-Header {\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tborder-bottom: 1px dotted var(--theme-color-border-default, #ccc);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t/** Section content */\n\t\t\t\t\t.PSFExt-Section { \n\t\t\t\t\t\tmargin: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-background-color);\n\t\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Descriptors { \n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size) 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Group { \n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Buttons {\n\t\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tpadding-bottom: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: calc(var(--PSFExt-gutter-size) * 2) var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Button { \n\t\t\t\t\t\tdisplay: inline;\n\t\t\t\t\t\tmargin-right: calc(var(--PSFExt-gutter-size) * 0.25);\n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-button-color);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tborder-radius: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Button a { \n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-button-text-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Button a:hover { \n\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Solver-Entry:not(:last-child) {\n\t\t\t\t\t\tborder-bottom: 1px solid var(--theme-color-border-default, #ccc);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Solver-Entry { \n\t\t\t\t\t\tfont-family: "Courier New", "Lucida Console", monospace;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tline-height: 1.2;\n\t\t\t\t\t\tcolor: var(--PSFExt-Solver-Entry-text-color);\n\t\t\t\t\t\tborder-bottom: 1px dotted var(--theme-color-border-default, #ccc);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Solver-Result { \n\t\t\t\t\t\tfont-family: "Courier New", "Lucida Console", monospace;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tpadding: 0 var(--PSFExt-gutter-size);\n\t\t\t\t\t\tline-height: 1.2;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-ExtraData {\n\t\t\t\t\t\tpadding-top: calc(var(--PSFExt-gutter-size) / 2);\n\t\t\t\t\t\tpadding-bottom: calc(var(--PSFExt-gutter-size) / 2);\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-Data-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Group .PSFExt-Content-Header.PSFExt-Section-Group-Header {\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-Group-Header-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Group .PSFExt-Content-Header.PSFExt-Section-Group-Row-Header {\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-Group-Row-Header-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-DeEmphasize { \n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Data { \n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\tline-height: 0.85;\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Data-Table {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tborder-collapse: collapse;\n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\tmargin-top: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin-bottom: var(--PSFExt-gutter-size);\n\t\t\t\t\t\toverflow-x: auto;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Label { \n\t\t\t\t\t\tmin-width: 15%;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tmargin: var(--PSFExt-gutter-size) 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Label::after {\n\t\t\t\t\t\tcontent: ": ";\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Hidden { \n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Solver-DynamicInput {\n\t\t\t\t\t\tbackground-color: var(--theme-color-background-panel, #ffffff);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t/** empty states */\n\t\t\t\t\t.PSFExt-Section-Solvers:empty::before {\n\t\t\t\t\t\tcontent: "No Section Solvers Defined";\n\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Group-Solvers:empty::before {\n\t\t\t\t\t\tcontent: "No Group/RecordSet Solvers Defined";\n\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-ExpressionEditbox {\n\t\t\t\t\t\twidth: calc(100% - 20px);\n\t\t\t\t\t\tresize: vertical;\n\t\t\t\t\t\tmin-height: 80px;\n\t\t\t\t\t\tfont-family: monospace;\n\t\t\t\t\t\tfont-size: 0.9em;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Token {\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-token-color);\n\t\t\t\t\t}\n\t\t\t\t',1e3,"Pict-Form-SupportBase"),null==this.pict.TemplateProvider.getTemplate("Pict-Form-Support-Container")&&this.pict.TemplateProvider.addTemplate("Pict-Form-Support-Container",'\n\t\t\t<div id="Pict-Form-Extensions-Wrap">\n\t\t\t\t<p class="PSFExt-Extension-Header"><span id="Pict-Form-Extension-DragControl" class="PSDV-Extension-Header-Controlbar">Pict.Extensions {~TS:Pict-Form-Support-Container-Link:Pict.providers[Pict-Form-SupportExtensions].getSupportViewLinks()~} <a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.toggleClass(\'#Pict-Form-Extensions-Container\', \'PSFExt-Hidden\');{~P~}.ContentAssignment.toggleClass(\'#Pict-Form-Extensions-Footer\', \'PSFExt-Hidden\');">toggle</a></span></p>\n\t\t\t\t<div id="Pict-Form-Extensions-Container"></div>\n\t\t\t\t<p id="Pict-Form-Extensions-Footer" class="PSFExt-Extension-Footer"><span id="Pict-Form-Extension-ResizeControl">Pict.Extensions Resize</span></p>\n\t\t\t</div>\n\t\t\t\t'),null==this.pict.TemplateProvider.getTemplate("Pict-Form-Support-Container-Link")&&this.pict.TemplateProvider.addTemplate("Pict-Form-Support-Container-Link",' [ <a href="{~D:Record.Link~}" onclick="{~D:Record.OnClick~}" data-shortname="{~D:Record.ShortName~}" data-longname="{~D:Record.LongName~}">{~D:Record.ShortName~}</a> ] '),this.SupportViews={}}registerSupportView(t){this.pict.log.info("Registering support view ".concat(t.Hash," with Pict Support Extension provider.")),this.SupportViews[t.Hash]=t}getSupportViewLinks(){let t=[],e=Object.keys(this.SupportViews);for(let i=0;i<e.length;i++){let n=e[i],r=this.SupportViews[n];t.push({Hash:r.Hash,Link:"javascript:void(0);",ShortName:r.DisplayShortName,LongName:r.DisplayLongName,OnClick:"".concat(this.pict.browserAddress,".views['").concat(r.Hash,"'].render()")})}return t}},e.exports.default_configuration=r},{"pict-provider":9}],106:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="FDT",this.DisplayLongName="FormData"}flattenMarshalDestination(){return this.flattenAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination)}flattenAppData(){return this.flattenAddress("AppData")}flattenAddress(t){let e=this.pict.resolveStateFromAddress(t);return this.pict.manifest.objectAddressGeneration.generateAddressses(e)}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-AppData",DefaultRenderable:"Pict-Form-AppData-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-AppData-Content",Template:'\n<div id="Pict-Form-AppData-Content">\n\t<h2 class="PSFAD-Global-Header">Pict Form Data Visualization</h2>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Form Marshal Destination</span> {~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Form Data</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.{~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}\')">Download JSON</a>]\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">AppData</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.AppData\')">Download AppData JSON</a>]\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Fable Settings</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.settings\')">Download fable settings JSON</a>]\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Application Options</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.PictApplication.options\')">Download Application options JSON</a>]\n\t</p>\n\t<div id="PSFExt-Data-Browser" class="PSFExt-Section">\n\t\t{~TVS:Pict-Form-AppData:Context[0].flattenMarshalDestination()~}\n\t</div>\n'},{Hash:"Pict-Form-AppData",Template:'\n\t<div class="PSFExt-Section">\n\t\t<h3 class="PSFExt-Section-Header"><span class="PSFExt-DeEmphasize">Address:</span> \n\t\t\t{~D:Record.Key~}\n\t\t</h3>\n\t\t<div id="PSFExt-AD-{~D:Record.Key~}-Extra" class="PSFExt-Section-ExtraData">\n\t\t\t{~TIfAbs:Pict-Form-AppData-ObjectValueDisplay:Record:Record.Value.DataType^==^Object~}\n\t\t\t{~TIfAbs:Pict-Form-AppData-NotObjectValueDisplay:Record:Record.Value.DataType^!=^Object~}\n\t\t</div>\n\t</div>\n'},{Hash:"Pict-Form-AppData-NotObjectValueDisplay",Template:"\n\t\t\t\t\x3c!-- Not Object Value Display --\x3e\n\t\t\t\t{~TIfAbs:Pict-Form-AppData-ArrayValueDisplay:Record:Record.Value.DataType^==^Array~}\n\t\t\t\t{~TIfAbs:Pict-Form-AppData-PrimitiveValueDisplay:Record:Record.Value.DataType^!=^Array~}\n"},{Hash:"Pict-Form-AppData-ObjectValueDisplay",Template:'\n\t\t\t\x3c!-- Object Value Display --\x3e\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Type</span> Javascript Object {~T:Pict-Form-AppData-ObjectDownloadLink~}\n\t\t\t</p>\n'},{Hash:"Pict-Form-AppData-ArrayValueDisplay",Template:'\n\t\t\t\x3c!-- Array Value Display --\x3e\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Type</span> Array {~TIfAbs:Pict-Form-AppData-ArrayDownloadLink~}\n\n\t\t\t</p>\n'},{Hash:"Pict-Form-AppData-PrimitiveValueDisplay",Template:'\n\t\t\t\x3c!-- Primitive Value Display --\x3e\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Value</span> {~D:Record.Value.Default~}\n\t\t\t</p>\n'},{Hash:"Pict-Form-AppData-ObjectDownloadLink",Template:"[<a href=\"javascript:void(0);\" onclick=\"{~P~}.views['{~D:Context[0].Hash~}'].downloadJSONObjectAsFile('Pict.{~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}')\">Download JSON</a>]"},{Hash:"Pict-Form-AppData-ArrayDownloadLink",Template:"[<a href=\"javascript:void(0);\" onclick=\"{~P~}.views['{~D:Context[0].Hash~}'].downloadJSONObjectAsFile('Pict.{~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}')\">Download Array</a>]"}],Renderables:[{RenderableHash:"Pict-Form-AppData-Renderable",TemplateHash:"Pict-Form-AppData-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],107:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="ILE",this.DisplayLongName="InlineEditor"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-DebugViewer",DefaultRenderable:"Pict-Form-DebugViewer-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"\n\t/** Dynamic Input Section Overrides */\n\t#PSFExt-DynamicInputSection .PSFExt-Section { \n\t\tmargin: var(--PSFExt-gutter-size);\n\t\tpadding: var(--PSFExt-gutter-size);\n\t\tbackground-color: var(--PSFExt-Section-DynamicInput-background-color);\n\t}\n\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-Section-Button { \n\t\tbackground-color: var(--PSFExt-Section-DynamicInput-button-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-Section-Button a { \n\t\tcolor: var(--PSFExt-Section-DynamicInput-button-text-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-Label,\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-DeEmphasize { \n\t\tcolor: var(--PSFExt-Section-DynamicInput-button-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section-Descriptors { \n\t\tborder-left: 5px solid var(--PSFExt-Section-DynamicInput-background-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section-Group { \n\t\tborder-left: 5px solid var(--PSFExt-Section-DynamicInput-button-color);\n\t}\n",Templates:[{Hash:"Pict-Form-DebugViewer-Content",Template:'\n<div id="Pict-Form-DebugViewer-Content">\n\t<h2 class="PSFExt-Global-Header">Pict Inline Form Editing Tool</h2>\n\t{~T:Pict-Form-DebugViewer-MetacontrollerContainer~}\n</div>'},{Hash:"Pict-Form-DebugViewer-MetacontrollerContainer",Template:'\n\t<p class="PSFExt-Data"><span class="PSFExt-Label">Scope:</span> {~D:Context[0].getDynamicState().Scope~}</p>\n\t<ul class="PSFExt-Section-Buttons">\n\t</ul>\n\t<div id="PSFExt-SectionList">\n\t\t{~TS:Pict-Form-DebugViewer-SectionContainer:Context[0].getDynamicState().SectionViews~}\n\t</div>\n\t<hr>\n\t<div id="PSFExt-DynamicInputSection">\n\t\t{~T:Pict-Form-DebugViewer-SectionContainer:Context[0].getDynamicState().DynamicInputView~}\n\t</div>\n'},{Hash:"Pict-Form-DebugViewer-SectionContainer",Template:'\n\t<div id="PSFExt-Section-{~D:Record.Hash~}" class="PSFExt-Section">\n\t\t<h3 class="PSFExt-Section-Header"><span class="PSFExt-DeEmphasize">Section:</span> {~D:Record.sectionDefinition.Name~}</h3>\n\t\t<ul class="PSFExt-Section-Buttons">\n\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Record.View.Hash~}\'].render()">Render</a></li>\n\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.assignContent(\'{~D:Record.View.options.DefaultDestinationAddress~}\',\'\')">Clear</a></li>\n\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.removeClass(\'#PSFExt-{~D:Record.View.Hash~}-Extra\', \'PSFExt-Hidden\')">Extra Data</a></li>\n\t\t</ul>\n\t\t<div id="PSFExt-{~D:Record.View.Hash~}-Extra" class="PSFExt-Hidden PSFExt-Section-ExtraData">\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Description</span> {~D:Record.sectionDefinition.Description~}\n\t\t\t</p>\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Hash</span> {~D:Record.View.Hash~}\n\t\t\t</p>\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">HTML ID</span> {~D:Record.View.sectionDefinition.Macro.HTMLID~}\n\t\t\t</p>\n\t\t\t<h4 class="PSFExt-Content-Header">Section Solvers:</h4>\n\t\t\t<div class="PSFExt-Section-Solvers">{~TS:Pict-Form-DebugViewer-SolverEntry:Record.Solvers[]<<~?ExpressionScope,==,Section?~>>~}</div>\n\t\t\t<h4 class="PSFExt-Content-Header">Tabular/RecordSet Solvers:</h4>\n\t\t\t<div class="PSFExt-Group-Solvers">{~TS:Pict-Form-DebugViewer-SolverEntry:Record.Solvers[]<<~?ExpressionScope,==,Group?~>>~}</div>\n\t\t\t<h4 class="PSFExt-Content-Header">Inputs:</h4>\n\t\t\t<div class="PSFExt-Section-Solver-DynamicInput">\n\t\t\t\t{~TS:Pict-Form-DebugViewer-GroupContainer:Record.View.sectionDefinition.Groups~}\n\t\t\t</div>\n\t\t\t<ul class="PSFExt-Section-Buttons">\n\t\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.addClass(\'#PSFExt-{~D:Record.View.Hash~}-Extra\', \'PSFExt-Hidden\')">Hide Extra Data for {~D:Record.View.Hash~}</a></li>\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n'},{Hash:"Pict-Form-DebugViewer-SolverEntry",Template:'\n\t\t\t<div class="PSFExt-Section-Solver-Entry">\n\t\t\t\t<p class="PSFExt-Solver-Entry">{~D:Record.Expression~}</p>\n\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Last Result</span> <span class="PSFExt-Solver-Result">{~D:Record.LastResult~}</span></p>\n\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Sequence</span> Ordinal [{~D:Record.Ordinal~}] Index [{~D:Record.Index~}]</p>\n\t\t\t</div>\n\t\t\t'},{Hash:"Pict-Form-DebugViewer-GroupContainer",Template:'\n\t\t\t<div class="PSFExt-Section-Group">\n\t\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">\n\t\t\t\t\t<span class="PSFExt-DeEmphasize">Group:</span> {~D:Record.Name~} [idx <em>{~D:Record.GroupIndex~}</em>]\n\t\t\t\t</h5>\n\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Layout</span> {~D:Record.Layout~}</p>\n\t\t\t\t<div class="PSFExt-Section-Rows">\n\t\t\t\t\t{~TS:Pict-Form-DebugViewer-RowContainer:Record.Rows~}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t'},{Hash:"Pict-Form-DebugViewer-RowContainer",Template:'\n\t\t\t\t\t<div class="PSFExt-Section-Descriptors">\n\t\t\t\t\t\t<h6 class="PSFExt-Content-Header PSFExt-Section-Group-Row-Header">\n\t\t\t\t\t\t\t<span class="PSFExt-DeEmphasize">Row:</span> {~D:Record.Hash~}\n\t\t\t\t\t\t</h6>\n\t\t\t\t\t\t{~TS:Pict-Form-DebugViewer-DescriptorContainer:Record.Inputs~}\n\t\t\t\t\t</div>\n'},{Hash:"Pict-Form-DebugViewer-DescriptorContainer",Template:'\n\t\t\t\t\t\t<div class="PSFExt-Section-Descriptor">\n\t\t\t\t\t\t\t<p class="PSFExt-Data-Header"><span class="PSFExt-DeEmphasize">Input:</span> {~D:Record.Name~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Hash</span> {~D:Record.Hash~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">DataType</span> {~D:Record.DataType~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">InputType</span> {~D:Record.PictForm.InputType~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Informary Data Address</span> {~D:Record.PictForm.InformaryDataAddress~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Input Index</span> {~D:Record.PictForm.InputIndex~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">HTML ID</span> {~D:Record.PictForm.Macro.HTMLID~}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t'}],Renderables:[{RenderableHash:"Pict-Form-DebugViewer-Renderable",TemplateHash:"Pict-Form-DebugViewer-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],108:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="LCV",this.DisplayLongName="LifecycleVisulization"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-LifeCycle",DefaultRenderable:"Pict-Form-LifeCycle-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-LifeCycle-Content",Template:'\n<div id="Pict-Form-LifeCycle-Content">\n\t<h2 class="PSFLC-Global-Header">Pict LifeCycle Visualization</h2>\n</div>\n'}],Renderables:[{RenderableHash:"Pict-Form-LifeCycle-Renderable",TemplateHash:"Pict-Form-LifeCycle-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],109:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="SLV",this.DisplayLongName="SolverVisualization"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-Solver",DefaultRenderable:"Pict-Form-Solver-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-Solver-Content",Template:'\n<div id="Pict-Form-Solver-Content">\n\t<h2 class="PSFS-Global-Header">Pict Solver Visualization</h2>\n\t<ul class="PSFExt-Section-Buttons">\n\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.views.PictFormMetacontroller.solve(); {~P~}.views.PictFormMetacontroller.marshalFormSections(); {~P~}.views[\'{~D:Context[0].Hash~}\'].render();">Solve</a></li>\n\t</ul>\n\t{~TS:Pict-Form-Solver-Entries:Context[0].getDynamicState().Solvers~}\n</div>\n'},{Hash:"Pict-Form-Solver-Entries",Template:'\n\t<div id="PSFExt-Section-{~D:Record.Hash~}" class="PSFExt-Section">\n\t\t<h3 class="PSFExt-Section-Header">\n\t\t\t<span class="PSFExt-DeEmphasize">{~D:Record.ExpressionScope~} {~D:Record.SectionOrdinal~}.G.{~D:Record.GroupOrdinal~}</span> Ord</span>{~D:Record.Ordinal~} <span class="PSFExt-DeEmphasize">Ind</span>{~D:Record.Index~}\n\t\t\t[ <a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.toggleClass(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionContainer\', \'PSFExt-Hidden\');">Edit</a> ]\n\t\t\t[ <a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.toggleClass(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExtraDataContainer\', \'PSFExt-Hidden\');">More</a> ]\n\t\t</h3>\n\t\t\n\t\t<div id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionContainer" class="PSFExt-Hidden">\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<textarea id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionEditbox" class="PSFExt-ExpressionEditbox">{~D:Record.Expression~}</textarea>\n\t\t\t</p>\n\t\t\t<ul class="PSFExt-Section-Buttons">\n\t\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].updateExpressionFromElement(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionEditbox\', \'{~D:Record.ExpressionScope~}\', \'{~D:Record.ViewHash~}\', {~D:Record.SectionOrdinal~}, {~D:Record.Index~}, \'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-Display\'); {~P~}.ContentAssignment.addClass(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionContainer\', \'PSFExt-Hidden\');">Apply</a></li>\n\t\t\t</ul>\n\t\t</div>\n\t\t<div id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-Extra" class="PSFExt-Section-ExtraData">\n\t\t\t<p class="PSFExt-Solver-Entry" id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-Display">{~D:Record.Expression~}</p>\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Value</span> {~TBT:Record.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record:Pict-Form-RecordValueDisplaySimple~}\n\t\t\t</p>\n\t\t</div>\n\t\t<div id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExtraDataContainer" class="PSFExt-Section-ExtraData PSFExt-Hidden">\n\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">{~D:Record.LastResultsObject.PostfixTokenObjects.length~} Postfix Tokens</h5>\n\t\t\t{~TS:Pict-Form-Solver-PostfixToken:Record.LastResultsObject.PostfixTokenObjects~}\n\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">Virtual Symbols</h5>\n\t\t\t{~TVS:Pict-Form-Solver-VirtualSymbols:Record.LastResultsObject.VirtualSymbols~}\n\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">{~D:Record.LastResultsObject.PostfixTokenObjects.length~} Postfix Solve List</h5>\n\t\t\t{~TVS:Pict-Form-Solver-PostFixSolveEntry:Record.LastResultsObject.PostfixSolveList~}\n\t\t</div>\n\t</div>\n'},{Hash:"Pict-Form-Solver-PostfixToken",Template:'\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">{~D:Record.Type~}</span> <span class="PSFExt-Token">{~D:Record.Token~}</span>\n\t\t\t</p>\n'},{Hash:"Pict-Form-Solver-VirtualSymbols",Template:'\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">{~D:Record.Key~}</span> {~TBT:Record.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record:Pict-Form-RecordValueDisplaySimple~}\n\t\t\t</p>\n'},{Hash:"Pict-Form-RecordValueDisplayComplex",Template:"\n\t\t\t\x3c!-- Complex Value --\x3e\n\t\t\t{~TBT:Record.Value:array:Pict-Form-RecordValueDisplayArray:Record:Pict-Form-RecordValueDisplayObject~}\n"},{Hash:"Pict-Form-RecordValueDisplayObject",Template:"JSON Object\n\t\t\t\x3c!-- RAW Object\n{~DJ:Record.Value~}\n\t\t\t--\x3e"},{Hash:"Pict-Form-RecordValueDisplayArray",Template:"JSON Array ({~D:Record.Value.length~} items)\n\t\t\t\x3c!-- RAW Array\n{~DJ:Record.Value~}\n\t\t\t--\x3e"},{Hash:"Pict-Form-RecordValueDisplaySimple",Template:"{~D:Record.Value~}"},{Hash:"Pict-Form-Solver-PostFixSolveEntry",Template:'\n\t\t\t<div>\n\t\t\t\t<h6 class="PSFExt-Content-Header PSFExt-Data-Header">Postfix Solve Entry #{~D:Record.Key~} Symbol <span class="PSFExt-Token">{~D:Record.Value.VirtualSymbolName~}</span></h6>\n\t\t\t\t<table class="PSFExt-Data-Table">\n\t\t\t\t\t<th>\n\t\t\t\t\t\t<tr><td></td><td>Left</td><td>Operation</td><td>Right</td></tr>\n\t\t\t\t\t</th>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Virtual Symbol</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.VirtualSymbolName~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.Operation.VirtualSymbolName~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.VirtualSymbolName~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Value</td>\n\t\t\t\t\t\t<td> {~TBT:Record.Value.LeftValue.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record.Value.LeftValue:Pict-Form-RecordValueDisplaySimple~} </td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td> {~TBT:Record.Value.RightValue.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record.Value.RightValue:Pict-Form-RecordValueDisplaySimple~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Tokens</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.Token~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.Operation.Token~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.Token~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Type</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.Type~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.Operation.Type~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.Type~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Solve Layer</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.SolveLayerStack~} </td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.SolveLayerStack~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</div>\n'}],Renderables:[{RenderableHash:"Pict-Form-Solver-Renderable",TemplateHash:"Pict-Form-Solver-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],110:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="STV",this.DisplayLongName="SpecificSolveTimingVisualization"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-SpecificSolve",DefaultRenderable:"Pict-Form-SpecificSolve-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-SpecificSolve-Content",Template:'\n<div id="Pict-Form-SpecificSolve-Content">\n\t<h2 class="PSFSS-Global-Header">Pict Specific Solve Timing Visualization</h2>\n</div>\n'}],Renderables:[{RenderableHash:"Pict-Form-SpecificSolve-Renderable",TemplateHash:"Pict-Form-SpecificSolve-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],111:[function(t,e,i){const n=t("pict-view"),r=t("./Pict-Provider-PSF-Support.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict.addProviderSingleton("Pict-Form-SupportExtensions",{},r),this.DisplayShortName="U",this.DisplayLongName="UNDEFINED",this.pict.providers["Pict-Form-SupportExtensions"].registerSupportView(this)}getDynamicState(){if(!("PictFormMetacontroller"in this.pict.views))return this.pict.log.warn("Pict Forms Inline Editor tried to initialize but no metacontroller was found."),{Scope:"ERR_NO_METACONTROLLER",Description:"Error initializing inline editor -- no metacontroller found.",Manifest:this.fable.newManyfest(),Sections:[]};let t=this.pict.views.PictFormMetacontroller,e={Scope:t.manifestDescription.Scope,Description:"",Manifest:t.manifest,ManifestDescription:t.manifestDescription,AllViews:t.filterViews(),SectionViews:[],DynamicInputView:!1,Solvers:[]};for(let t=0;t<e.AllViews.length;t++){let i=e.AllViews[t];i.isPictSectionForm&&"PictFormMetacontroller-DynamicInputs"==i.Hash?e.DynamicInputView=i:i.isPictSectionForm&&e.SectionViews.push({View:i,sectionDefinition:i.sectionDefinition,Solvers:[]})}for(let t=0;t<e.SectionViews.length;t++){let i=e.SectionViews[t].View,n=e.SectionViews[t].Solvers;if(i.isPictSectionForm&&Array.isArray(i.sectionDefinition.Solvers))for(let r=0;r<i.sectionDefinition.Solvers.length;r++){let o=i.sectionDefinition.Solvers[r],a={ViewHash:i.Hash,SectionOrdinal:t,GroupOrdinal:-1,Ordinal:1,Index:r,Expression:"",ExpressionType:"Unknown",ExpressionScope:"Section"};"string"==typeof o?(a.Expression=o,a.ExpressionType="Simple"):"object"==typeof o&&(a.Expression=o.Expression,a.Ordinal=o.Ordinal,a.ExpressionType="Complex"),e.Solvers.push(a),n.push(a)}for(let r=0;r<i.sectionDefinition.Groups.length;r++){let o=i.getGroup(r);if("RecordSetSolvers"in o)for(let a=0;a<o.RecordSetSolvers.length;a++){let s=o.RecordSetSolvers[a],c={ViewHash:i.Hash,SectionOrdinal:t,GroupOrdinal:r,Ordinal:1,Index:a,Expression:"",ExpressionType:"Unknown",ExpressionScope:"Group"};s&&("string"==typeof s?(c.Expression=s,c.ExpressionType="Simple"):"object"==typeof s&&(c.Expression=s.Expression,c.Ordinal=s.Ordinal,c.ExpressionType="Complex")),e.Solvers.push(c),n.push(c)}}n.sort((t,e)=>t.Ordinal<e.Ordinal?-1:t.Ordinal>e.Ordinal?1:"Group"==t.ExpressionScope&&"Section"==e.ExpressionScope?-1:"Section"==t.ExpressionScope&&"Group"==e.ExpressionScope?1:t.Index<e.Index?-1:t.Index>e.Index?1:0)}if(e.Solvers.sort((t,e)=>t.Ordinal<e.Ordinal?-1:t.Ordinal>e.Ordinal?1:"Group"==t.ExpressionScope&&"Section"==e.ExpressionScope?-1:"Section"==t.ExpressionScope&&"Group"==e.ExpressionScope?1:t.Index<e.Index?-1:t.Index>e.Index?1:0),e.LastSolveOutcome=this.pict.providers.DynamicSolver.lastSolveOutcome,"object"==typeof e.LastSolveOutcome)for(let t=0;t<e.Solvers.length;t++){let i=e.Solvers[t];if(i.Ordinal in e.LastSolveOutcome.SolveOrdinals)if("Section"==i.ExpressionScope){let t=e.LastSolveOutcome.SolveOrdinals[i.Ordinal].SectionSolvers;if(Array.isArray(t))for(let e=0;e<t.length;e++){let n=t[e];n.ViewHash==i.ViewHash&&n.Solver.Expression==i.Expression&&(i.LastResult=n.Solver.ResultsObject.RawResult,i.Value=n.Solver.ResultsObject.RawResult,i.LastResultsObject=n.Solver.ResultsObject)}}else if("Group"==i.ExpressionScope){let t=e.LastSolveOutcome.SolveOrdinals[i.Ordinal].GroupSolvers;if(Array.isArray(t))for(let e=0;e<t.length;e++){let n=t[e];n.ViewHash==i.ViewHash&&n.Solver.Expression==i.Expression&&(n.Solver&&"ResultsObject"in n.Solver&&(i.LastResult=n.Solver.ResultsObject.RawResult),n.Solver&&"ResultsObject"in n.Solver&&(i.LastResultsObject=n.Solver.ResultsObject))}}}return e}getSectionSolvers(t){return this.getDynamicState().Solvers.map(e=>{if(e.ViewHash===t)return e})}downloadJSONObjectAsFile(t){try{const e=this.pict.resolveStateFromAddress(t),i="PICT_JSON_".concat(t.replace(".","_"),".json"),n=JSON.stringify(e,null,4);if(!URL||!Blob)return void this.pict.log.error("Browser does not support required features for downloading JSON object from address ".concat(t,"."));const r=new Blob([n],{type:"application/json"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=i,a.click(),URL.revokeObjectURL(o)}catch(e){this.pict.log.error("Error downloading JSON object from address ".concat(t,": ").concat(e.message))}}updateExpressionFromElement(t,e,i,n,r,o){let a=this.pict.ContentAssignment.readContent(t);if(!a)return void this.pict.log.warn("No expression found in element at address ".concat(t,"; cannot update ").concat(e," solver Ordinal ").concat(n," Index ").concat(r,"."));let s=this.pict.views.PictFormMetacontroller,c={Scope:s.manifestDescription.Scope,Description:"",Manifest:s.manifest,ManifestDescription:s.manifestDescription,AllViews:s.filterViews(),SectionViews:[],DynamicInputView:!1,Solvers:[]};for(let t=0;t<c.AllViews.length;t++){let e=c.AllViews[t];e.isPictSectionForm&&"PictFormMetacontroller-DynamicInputs"==e.Hash?c.DynamicInputView=e:e.isPictSectionForm&&c.SectionViews.push({View:e,sectionDefinition:e.sectionDefinition,Solvers:[]})}for(let t=0;t<c.SectionViews.length;t++){let o=c.SectionViews[t].View;c.SectionViews[t].Solvers;if(o.isPictSectionForm&&Array.isArray(o.sectionDefinition.Solvers))for(let s=0;s<o.sectionDefinition.Solvers.length;s++){let c=o.sectionDefinition.Solvers[s];"Section"==e&&t==n&&s==r&&o.Hash==i&&("string"==typeof c?o.sectionDefinition.Solvers[s]=a:"object"==typeof c&&(o.sectionDefinition.Solvers[s].Expression=a))}for(let s=0;s<o.sectionDefinition.Groups.length;s++){let c=o.getGroup(s);if("RecordSetSolvers"in c)for(let l=0;l<c.RecordSetSolvers.length;l++){let p=c.RecordSetSolvers[l];"Group"==e&&t==n&&s==r&&o.Hash==i&&("string"==typeof p?o.sectionDefinition.Solvers[s]=a:"object"==typeof p&&(o.sectionDefinition.Solvers[s].Expression=a))}}}o&&this.pict.ContentAssignment.assignContent(o,a)}bootstrapContainer(){let t=this.options.DefaultDestinationAddress;if(this.pict.ContentAssignment.getElement(this.options.DefaultDestinationAddress).length>0)return!0;let e="Pict-Form-Support-Container";e in this.renderables||(this.renderables[e]={RenderableHash:"Pict-Form-Support-Container",TemplateHash:"Pict-Form-Support-Container",ContentDestinationAddress:"body",RenderMethod:"append_once",TestAddress:"#Pict-Form-Extensions-Container"}),this.renderables[e].TestAddress=t,this.pict.CSSMap.injectCSS(),this.render(e);let i=document.getElementById("Pict-Form-Extensions-Wrap"),n=document.getElementById("Pict-Form-Extension-DragControl");i&&n&&n.addEventListener("mousedown",function(t){let e=t.offsetX+n.clientLeft,r=t.offsetY+n.clientTop;function o(t){t.stopPropagation(),i.style.left=t.clientX-e+"px",i.style.top=t.clientY-r+"px"}window.addEventListener("pointermove",o),window.addEventListener("pointerup",function t(e){window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",t)}),t.preventDefault()});let r=document.getElementById("Pict-Form-Extensions-Wrap"),o=document.getElementById("Pict-Form-Extension-ResizeControl");r&&o&&o.addEventListener("mousedown",function(t){function e(t){t.stopPropagation();let e=t.clientX-r.getBoundingClientRect().left,i=t.clientY-r.getBoundingClientRect().top,n=getComputedStyle(r),o=parseInt(n.minWidth,10),a=parseInt(n.minHeight,10);e<o&&(e=o),i<a&&(i=a),r.style.width=e+"px",r.style.height=i+"px"}window.addEventListener("pointermove",e),window.addEventListener("pointerup",function t(i){window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}),t.preventDefault()})}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-SupportBase",DefaultRenderable:"Pict-Form-SUPPORT-BASE",RenderOnLoad:!1,Templates:[],Renderables:[{RenderableHash:"Pict-Form-SUPPORT-BASE",TemplateHash:"Pict-Form-SUPPORT-BASE-NOTEMPLATE"}]}},{"./Pict-Provider-PSF-Support.js":105,"pict-view":38}]},{},[1])(1)});
42
+ const n=[{Key:"primaryColor",Var:"--theme-color-background-panel",Fallback:"#ffffff"},{Key:"primaryTextColor",Var:"--theme-color-text-primary",Fallback:"#1a1a1a"},{Key:"primaryBorderColor",Var:"--theme-color-brand-primary",Fallback:"#3357c7"},{Key:"secondaryColor",Var:"--theme-color-background-secondary",Fallback:"#f5f5f5"},{Key:"secondaryTextColor",Var:"--theme-color-text-secondary",Fallback:"#454545"},{Key:"secondaryBorderColor",Var:"--theme-color-border-default",Fallback:"#d6d6d6"},{Key:"tertiaryColor",Var:"--theme-color-background-tertiary",Fallback:"#ebebeb"},{Key:"tertiaryTextColor",Var:"--theme-color-text-secondary",Fallback:"#454545"},{Key:"tertiaryBorderColor",Var:"--theme-color-border-light",Fallback:"#e9e9e9"},{Key:"background",Var:"--theme-color-background-panel",Fallback:"#ffffff"},{Key:"mainBkg",Var:"--theme-color-background-panel",Fallback:"#ffffff"},{Key:"secondBkg",Var:"--theme-color-background-secondary",Fallback:"#f5f5f5"},{Key:"lineColor",Var:"--theme-color-text-secondary",Fallback:"#454545"},{Key:"textColor",Var:"--theme-color-text-primary",Fallback:"#1a1a1a"},{Key:"noteBkgColor",Var:"--theme-color-background-tertiary",Fallback:"#ebebeb"},{Key:"noteTextColor",Var:"--theme-color-text-primary",Fallback:"#1a1a1a"},{Key:"noteBorderColor",Var:"--theme-color-border-default",Fallback:"#d6d6d6"},{Key:"errorBkgColor",Var:"--theme-color-status-error",Fallback:"#b62828"},{Key:"errorTextColor",Var:"--theme-color-text-on-brand",Fallback:"#ffffff"},{Key:"fontFamily",Var:"--theme-typography-family-sans",Fallback:"inherit"}];function r(t,e,i){if("undefined"==typeof window||"undefined"==typeof document)return e||"";let n=i||document.documentElement;return n?(getComputedStyle(n).getPropertyValue(t)||"").trim()||e||"":e||""}function o(t){let e={};for(let t=0;t<n.length;t++){let i=n[t];e[i.Key]=r(i.Var,i.Fallback)}if(t&&"object"==typeof t){let i=Object.keys(t);for(let n=0;n<i.length;n++)e[i[n]]=t[i[n]]}return e}function a(t,e){if(!t||"function"!=typeof t.initialize)return!1;let i=e||{},n=i.themeVariables,r=i.config||{},a=o(n),s=Object.assign({startOnLoad:!1,theme:"base",securityLevel:"loose"},r,{themeVariables:a});return t.initialize(s),!0}function s(t){if("undefined"==typeof document)return null;let e="undefined"!=typeof mermaid?mermaid:null;if(!e||"function"!=typeof e.run)return null;let i=function(t){let e="pre.mermaid[data-mermaid-source]";if(!t)return document.querySelectorAll(e);if("string"==typeof t){let i=document.querySelector(t);return i?i.querySelectorAll(e):[]}if(t.querySelectorAll)return t.querySelectorAll(e);return[]}(t);if(!i||i.length<1)return null;for(let t=0;t<i.length;t++){let e=i[t],n=e.getAttribute("data-mermaid-source");null!==n&&(e.textContent=n),e.removeAttribute("data-processed"),e.classList&&"function"==typeof e.classList.remove&&e.classList.remove("mermaid-rendered")}try{let t=e.run({nodes:i});return t&&"function"==typeof t.then?t.then(function(){return c(i),t}):(c(i),t)}catch(t){return Promise.reject(t)}}function c(t){if("undefined"==typeof document)return 0;let e;if(t)if("string"==typeof t){let i=document.querySelector(t);e=i?i.querySelectorAll("pre.mermaid"):[]}else if(void 0!==t.length)e=t;else{if(!t.querySelectorAll)return 0;e=t.querySelectorAll("pre.mermaid")}else e=document.querySelectorAll("pre.mermaid");let i=0;for(let t=0;t<e.length;t++){let n=e[t];if(!n||!n.querySelectorAll)continue;let r=n.querySelectorAll('.node rect[style*="!important"], .node polygon[style*="!important"], .node circle[style*="!important"], .node ellipse[style*="!important"], .node path[style*="!important"], .cluster rect[style*="!important"]');for(let t=0;t<r.length;t++){let e=r[t],n=e.getAttribute("style")||"";n.indexOf("!important")<0||(e.setAttribute("style",n.replace(/\s*!important\s*/gi,"")),i++)}}return i}e.exports={MERMAID_TOKEN_MAP:n,readCSSVar:r,getMermaidTokenMap:function(){return n.map(t=>({Key:t.Key,Var:t.Var,Fallback:t.Fallback}))},buildMermaidThemeVariables:o,initializeMermaid:a,stashMermaidSource:function(t){if(t&&!(t.length<1))for(let e=0;e<t.length;e++){let i=t[e];i&&"function"==typeof i.getAttribute&&(i.hasAttribute("data-mermaid-source")||i.setAttribute("data-mermaid-source",i.textContent))}},refreshMermaidDiagrams:s,stripMermaidStyleImportance:c,adaptMermaid:function(t,e,i){let n=i||{},r={themeVariables:n.themeOverrides,config:n.configOverrides};a(e,r);let o=function(t){if("function"==typeof n.onBeforeRefresh)try{n.onBeforeRefresh(t||{})}catch(t){}a(e,r);let i=s(n.refreshScope);return i&&"function"==typeof i.then&&"function"==typeof n.onAfterRefresh&&i.then(()=>{try{n.onAfterRefresh(t||{})}catch(t){}},()=>{try{n.onAfterRefresh(t||{})}catch(t){}}),i},c=function(){},l=!1;return t&&"function"==typeof t.onApply&&(c=t.onApply(function(t,e){o(e||{})}),l=!0),{dispose:function(){"function"==typeof c&&c()},refresh:o,reinitialize:function(){a(e,r)},subscribed:l}}}},{}],8:[function(t,e,i){e.exports={name:"pict-provider",version:"1.0.13",description:"Pict Provider Base Class",main:"source/Pict-Provider.js",scripts:{start:"node source/Pict-Provider.js",test:"npx quack test",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-provider-image:local","docker-dev-run":'docker run -it -d --name pict-provider-dev -p 24125:8080 -p 30027:8086 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-provider" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-provider-image:local',"docker-dev-shell":"docker exec -it pict-provider-dev /bin/bash",lint:"eslint source/**",types:"tsc -p ."},types:"types/source/Pict-Provider.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-provider.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-provider/issues"},homepage:"https://github.com/stevenvelozo/pict-provider#readme",devDependencies:{"@eslint/js":"^9.39.1",eslint:"^9.39.1",pict:"^1.0.351","pict-docuserve":"^0.1.5",quackage:"^1.1.0",typescript:"^5.9.3"},dependencies:{"fable-serviceproviderbase":"^3.0.19"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]}}},{}],9:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json"),o={ProviderIdentifier:!1,AutoInitialize:!0,AutoInitializeOrdinal:0,AutoLoadDataWithApp:!0,AutoLoadDataOrdinal:0,AutoSolveWithApp:!0,AutoSolveOrdinal:0,Manifests:{},Templates:[]};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(o)),e),i),this.fable,this.pict,this.log,this.options,this.UUID,this.Hash,this.options.ProviderIdentifier||(this.options.ProviderIdentifier="AutoProviderID-".concat(this.fable.getUUID())),this.serviceType="PictProvider",this._Package=r,this.pict=this.fable,this.AppData=this.pict.AppData,this.Bundle=this.pict.Bundle,this.initializeTimestamp=!1,this.lastSolvedTimestamp=!1;for(let t=0;t<this.options.Templates.length;t++){let e=this.options.Templates[t];e.hasOwnProperty("Postfix")&&e.hasOwnProperty("Template")?(e.Source||(e.Source="PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," options object.")),this.pict.TemplateProvider.addDefaultTemplate(e.Prefix,e.Postfix,e.Template,e.Source)):this.log.error("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," could not load Default Template ").concat(t," in the options array."),e)}}onBeforeInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onBeforeInitialize:")),!0}onBeforeInitializeAsync(t){return this.onBeforeInitialize(),t()}onInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onInitialize:")),!0}onInitializeAsync(t){return this.onInitialize(),t()}initialize(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow PROVIDER [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialize:")),this.initializeTimestamp?(this.log.warn("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialize called but initialization is already completed. Aborting.")),!1):(this.onBeforeInitialize(),this.onInitialize(),this.onAfterInitialize(),this.initializeTimestamp=this.pict.log.getTimeStamp(),!0)}initializeAsync(t){if(this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow PROVIDER [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initializeAsync:")),this.initializeTimestamp)return this.log.warn("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," async initialize called but initialization is already completed. Aborting.")),t();{let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate");this.pict.LogNoisiness>0&&this.log.info("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," beginning initialization...")),e.anticipate(this.onBeforeInitializeAsync.bind(this)),e.anticipate(this.onInitializeAsync.bind(this)),e.anticipate(this.onAfterInitializeAsync.bind(this)),e.wait(e=>(this.initializeTimestamp=this.pict.log.getTimeStamp(),e?this.log.error("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialization failed: ").concat(e.message||e),{Stack:e.stack}):this.pict.LogNoisiness>0&&this.log.info("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," initialization complete.")),t()))}}onAfterInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onAfterInitialize:")),!0}onAfterInitializeAsync(t){return this.onAfterInitialize(),t()}onPreRender(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onPreRender:")),!0}onPreRenderAsync(t){return this.onPreRender(),t()}render(){return this.onPreRender()}renderAsync(t){return this.onPreRender(),t()}onPreSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onPreSolve:")),!0}onPreSolveAsync(t){return this.onPreSolve(),t()}solve(){return this.onPreSolve()}solveAsync(t){return this.onPreSolve(),t()}onBeforeLoadDataAsync(t){return t()}onLoadDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onLoadDataAsync:")),t()}onAfterLoadDataAsync(t){return t()}onBeforeSaveDataAsync(t){return t()}onSaveDataAsync(t){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onSaveDataAsync:")),t()}onAfterSaveDataAsync(t){return t()}}},{"../package.json":8,"fable-serviceproviderbase":3}],10:[function(t,e,i){const n={javascript:{tokenizer:/(\/\/[^\n]*|\/\*[\s\S]*?\*\/)|(["'])(?:(?!\2|\\).|\\.)*?\2|(`(?:[^`\\]|\\.)*?`)|(\/(?![/*])(?:\\.|\[(?:\\.|[^\]])*\]|[^/\\\n])+\/[gimsuvy]*)/g,keywords:/\b(async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|export|extends|finally|for|from|function|get|if|import|in|instanceof|let|new|of|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/g,builtins:/\b(true|false|null|undefined|NaN|Infinity|console|window|document|Math|JSON|Array|Object|String|Number|Boolean|Date|RegExp|Map|Set|Promise|Error|Symbol|parseInt|parseFloat|require|module|exports)\b/g,numbers:/\b(\d+\.?\d*(?:e[+-]?\d+)?|0x[0-9a-fA-F]+|0b[01]+|0o[0-7]+)\b/g},json:{tokenizer:/(\/\/[^\n]*|\/\*[\s\S]*?\*\/)|("(?:[^"\\]|\\.)*")/g,keywords:/\b(true|false|null)\b/g,numbers:/-?\b\d+\.?\d*(?:e[+-]?\d+)?\b/g},html:{tokenizer:/(<!--[\s\S]*?-->)|(["'])(?:(?!\2|\\).|\\.)*?\2|(<\/?[a-zA-Z][a-zA-Z0-9-]*(?:\s+[a-zA-Z-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*))?)*\s*\/?>)/g,tagGroupIndex:3},css:{tokenizer:/(\/\*[\s\S]*?\*\/)|(["'])(?:(?!\2|\\).|\\.)*?\2/g,selectors:/([.#]?[a-zA-Z_][\w-]*(?:\s*[>+~]\s*[.#]?[a-zA-Z_][\w-]*)*)\s*\{/g,properties:/\b([a-zA-Z-]+)\s*:/g,numbers:/\b(\d+\.?\d*)(px|em|rem|%|vh|vw|s|ms|deg|fr)?\b/g,keywords:/\b(important|inherit|initial|unset|none|auto|block|inline|flex|grid)\b/g},sql:{tokenizer:/(--[^\n]*|\/\*[\s\S]*?\*\/)|(["'])(?:(?!\2|\\).|\\.)*?\2/g,keywords:/\b(SELECT|FROM|WHERE|AND|OR|INSERT|INTO|VALUES|UPDATE|SET|DELETE|CREATE|TABLE|DROP|ALTER|ADD|COLUMN|INDEX|JOIN|LEFT|RIGHT|INNER|OUTER|ON|AS|ORDER|BY|GROUP|HAVING|LIMIT|OFFSET|UNION|ALL|DISTINCT|COUNT|SUM|AVG|MIN|MAX|NOT|NULL|IS|IN|BETWEEN|LIKE|EXISTS|CASE|WHEN|THEN|ELSE|END|PRIMARY|KEY|FOREIGN|REFERENCES|CONSTRAINT|DEFAULT|CHECK|UNIQUE|CASCADE|GRANT|REVOKE|COMMIT|ROLLBACK|BEGIN|TRANSACTION|INT|VARCHAR|DATETIME|AUTO_INCREMENT|CURRENT_TIMESTAMP)\b/gi,numbers:/\b\d+\.?\d*\b/g}};function r(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function o(t,e){let i=t;return e.selectors&&(e.selectors.lastIndex=0,i=i.replace(e.selectors,'<span class="function-name">$1</span>{')),e.properties&&(e.properties.lastIndex=0,i=i.replace(e.properties,'<span class="property">$1</span>:')),e.keywords&&(e.keywords.lastIndex=0,i=i.replace(e.keywords,'<span class="keyword">$1</span>')),e.builtins&&(e.builtins.lastIndex=0,i=i.replace(e.builtins,'<span class="keyword">$1</span>')),e.numbers&&(e.numbers.lastIndex=0,i=i.replace(e.numbers,t=>'<span class="number">'.concat(t,"</span>"))),i}function a(t){let e="",i=t,n=i.match(/^(<\/?)([a-zA-Z][a-zA-Z0-9-]*)/);if(!n)return r(t);e+=r(n[1]),e+='<span class="tag">'+r(n[2])+"</span>",i=i.substring(n[0].length);let o,a=/^(\s+)([a-zA-Z-]+)(?:(\s*=\s*)(["'])([^"']*?)\4)?/;for(;null!==(o=i.match(a));)e+=o[1],e+='<span class="attr-name">'+r(o[2])+"</span>",o[3]&&(e+=r(o[3]),e+='<span class="attr-value">'+r(o[4])+r(o[5])+r(o[4])+"</span>"),i=i.substring(o[0].length);return e+=r(i),e}n.js=n.javascript,n.htm=n.html,e.exports=function(t){return function(e){let i=e.textContent,s="string"==typeof t?t.toLowerCase():"javascript",c=n[s];if(!c)return void(e.innerHTML=r(i));if(!c.tokenizer)return void(e.innerHTML=o(r(i),c));let l,p="",d=0,u=c.tagGroupIndex||0;for(c.tokenizer.lastIndex=0;null!==(l=c.tokenizer.exec(i));){if(l.index>d){p+=o(r(i.substring(d,l.index)),c)}let t=l[0];l[1]?p+='<span class="comment">'.concat(r(t),"</span>"):u>0&&l[u]?p+=a(t):p+='<span class="string">'.concat(r(t),"</span>"),d=c.tokenizer.lastIndex}if(d<i.length){p+=o(r(i.substring(d)),c)}e.innerHTML=p}},e.exports.LanguageDefinitions=n},{}],11:[function(t,e,i){e.exports={RenderOnLoad:!0,DefaultRenderable:"CodeEditor-Wrap",DefaultDestinationAddress:"#CodeEditor-Container-Div",Templates:[{Hash:"CodeEditor-Container",Template:"\x3c!-- CodeEditor-Container Rendering Soon --\x3e"}],Renderables:[{RenderableHash:"CodeEditor-Wrap",TemplateHash:"CodeEditor-Container",DestinationAddress:"#CodeEditor-Container-Div"}],TargetElementAddress:"#CodeEditor-Container-Div",CodeDataAddress:!1,Language:"javascript",ReadOnly:!1,Tab:"\t",IndentOn:/[({[]$/,MoveToNewLine:/^[)}\]]/,AddClosing:!0,CatchTab:!0,LineNumbers:!0,DefaultCode:"// Enter your code here\n",CSS:".pict-code-editor-wrap\n{\n\tdisplay: flex;\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\tfont-size: 14px;\n\tline-height: 1.5;\n\tborder: 1px solid var(--theme-color-border-default, #D0D0D0);\n\tborder-radius: 4px;\n\toverflow: hidden;\n}\n.pict-code-editor-wrap .pict-code-line-numbers\n{\n\twidth: 40px;\n\tmin-width: 40px;\n\t/* padding-top/bottom are stamped at runtime from the editor's\n\t computed padding so row 1 of the gutter aligns with row 1 of\n\t the code; only horizontal padding is stylesheet-owned. */\n\tpadding: 0;\n\ttext-align: right;\n\tbackground: var(--theme-color-editor-linenumber-background, var(--theme-color-background-secondary, #F5F5F5));\n\tborder-right: 1px solid var(--theme-color-editor-gutter-border, var(--theme-color-border-default, #D0D0D0));\n\tcolor: var(--theme-color-editor-linenumber-text, var(--theme-color-text-muted, #999));\n\tfont-size: 13px;\n\t/* line-height, padding-top, padding-bottom, and font-family are\n\t intentionally NOT declared here. PictSectionCode._syncGutterMetrics()\n\t copies them from the editor's computed styles at init and on every\n\t editor resize, so the gutter is guaranteed to track the editor.\n\t Declaring them in CSS would either be redundant (when matching) or\n\t actively wrong (when the editor's metrics diverge — e.g. theme scale\n\t changes the editor's font-size). See codejar-linenumbers for the\n\t canonical version of this pattern. */\n\tuser-select: none;\n\tpointer-events: none;\n\tbox-sizing: border-box;\n}\n.pict-code-editor-wrap .pict-code-line-numbers span\n{\n\tdisplay: block;\n\tpadding: 0 8px 0 0;\n}\n.pict-code-editor-wrap .pict-code-editor\n{\n\tmargin: 0;\n\tpadding: 10px 10px 10px 8px;\n\tmin-height: 100px;\n\tflex: 1;\n\tmin-width: 0;\n\toutline: none;\n\ttab-size: 4;\n\twhite-space: pre;\n\toverflow-wrap: normal;\n\tcolor: var(--theme-color-text-primary, #383A42);\n\tbackground: var(--theme-color-background-panel, #FAFAFA);\n\tcaret-color: var(--theme-color-brand-primary, #526FFF);\n\tborder-radius: 0 4px 4px 0;\n}\n.pict-code-editor-wrap .pict-code-editor.pict-code-no-line-numbers\n{\n\tpadding-left: 10px;\n\tborder-radius: 4px;\n}\n.pict-code-editor-wrap .pict-code-editor::selection,\n.pict-code-editor-wrap .pict-code-editor *::selection\n{\n\tbackground: var(--theme-color-editor-selection-background, var(--theme-color-selection-background, #B3D4FC));\n}\n/* Syntax token colors — each class binds to a Color.Syntax.* token from\n pict-provider-theme. Fallback hexes match the One Light palette so apps\n that don't install the theme provider look the same as before. */\n.pict-code-editor-wrap .pict-code-editor .keyword { color: var(--theme-color-syntax-keyword, #A626A4); }\n.pict-code-editor-wrap .pict-code-editor .string { color: var(--theme-color-syntax-string, #50A14F); }\n.pict-code-editor-wrap .pict-code-editor .number { color: var(--theme-color-syntax-number, #986801); }\n.pict-code-editor-wrap .pict-code-editor .comment { color: var(--theme-color-syntax-comment, #A0A1A7); font-style: italic; }\n.pict-code-editor-wrap .pict-code-editor .operator { color: var(--theme-color-syntax-operator, #0184BC); }\n.pict-code-editor-wrap .pict-code-editor .punctuation { color: var(--theme-color-syntax-punctuation, #383A42); }\n.pict-code-editor-wrap .pict-code-editor .function-name { color: var(--theme-color-syntax-function, #4078F2); }\n.pict-code-editor-wrap .pict-code-editor .property { color: var(--theme-color-syntax-property, #E45649); }\n.pict-code-editor-wrap .pict-code-editor .tag { color: var(--theme-color-syntax-tag, #E45649); }\n.pict-code-editor-wrap .pict-code-editor .attr-name { color: var(--theme-color-syntax-attrname, #986801); }\n.pict-code-editor-wrap .pict-code-editor .attr-value { color: var(--theme-color-syntax-attrvalue, #50A14F); }\n.pict-code-editor-wrap .pict-code-editor .builtin { color: var(--theme-color-syntax-builtin, #986801); }\n.pict-code-editor-wrap .pict-code-editor .type { color: var(--theme-color-syntax-type, #C18401); }\n.pict-code-editor-wrap .pict-code-editor .variable { color: var(--theme-color-syntax-variable, #383A42); }\n\n/* highlight.js class aliases — when host apps render code blocks with\n highlight.js (e.g. markdown previews via CodeJar's hljs integration),\n the output uses .hljs / .hljs-* classes rather than the bare token\n classes pict-section-code emits. Mapping them here lets one stylesheet\n theme both editor surfaces (bare classes) and hljs-rendered surfaces\n without the host needing a separate per-app github.css. Rules are\n intentionally unscoped (no .pict-code-editor-wrap parent) so they\n apply globally wherever hljs paints. */\n.hljs { color: var(--theme-color-text-primary, #383A42); background: transparent; }\n.hljs-keyword,\n.hljs-keyword.hljs-typeof,\n.hljs-selector-tag,\n.hljs-literal { color: var(--theme-color-syntax-keyword, #A626A4); }\n.hljs-string,\n.hljs-regexp,\n.hljs-template-tag,\n.hljs-template-variable { color: var(--theme-color-syntax-string, #50A14F); }\n.hljs-number,\n.hljs-meta { color: var(--theme-color-syntax-number, #986801); }\n.hljs-comment,\n.hljs-quote { color: var(--theme-color-syntax-comment, #A0A1A7); font-style: italic; }\n.hljs-operator,\n.hljs-link { color: var(--theme-color-syntax-operator, #0184BC); }\n.hljs-punctuation { color: var(--theme-color-syntax-punctuation, #383A42); }\n.hljs-function .hljs-title,\n.hljs-title.function_,\n.hljs-title.class_ { color: var(--theme-color-syntax-function, #4078F2); }\n.hljs-variable,\n.hljs-variable.language_,\n.hljs-params { color: var(--theme-color-syntax-variable, #383A42); }\n.hljs-type,\n.hljs-class .hljs-title { color: var(--theme-color-syntax-type, #C18401); }\n.hljs-built_in,\n.hljs-builtin-name { color: var(--theme-color-syntax-builtin, #986801); }\n.hljs-attr,\n.hljs-property { color: var(--theme-color-syntax-property, #E45649); }\n.hljs-tag,\n.hljs-name { color: var(--theme-color-syntax-tag, #E45649); }\n.hljs-attribute { color: var(--theme-color-syntax-attrname, #986801); }\n.hljs-symbol { color: var(--theme-color-syntax-attrvalue, #50A14F); }\n.hljs-emphasis { font-style: italic; }\n.hljs-strong { font-weight: bold; }\n.hljs-deletion { color: var(--theme-color-status-error, #B62828); background: rgba(220, 50, 47, 0.08); }\n.hljs-addition { color: var(--theme-color-status-success, #2E7A3A); background: rgba(80, 161, 79, 0.10); }\n"}},{}],12:[function(t,e,i){const n=t("pict-view"),r=t("./Pict-Code-Highlighter.js"),o=t("./Pict-Section-Code-DefaultConfiguration.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},o,e),i),this.initialRenderComplete=!1,this.codeJar=null,this._highlightFunction=null,this._language=this.options.Language||"javascript"}onBeforeInitialize(){return super.onBeforeInitialize(),this._codeJarPrototype=null,this.targetElement=!1,this._highlightFunction=r(this._language),super.onBeforeInitialize()}connectCodeJarPrototype(t){if("function"!=typeof t)return"undefined"!=typeof window&&"function"==typeof window.CodeJar?(this.log.trace("PICT-Code Found CodeJar in window.CodeJar."),void(this._codeJarPrototype=window.CodeJar)):(this.log.error("PICT-Code No CodeJar prototype found. Include codejar via script tag or call connectCodeJarPrototype(CodeJar) explicitly."),!1);this._codeJarPrototype=t}onAfterRender(t){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t)}onAfterInitialRender(){if(this._codeJarPrototype||this.connectCodeJarPrototype(),!this._codeJarPrototype)return this.log.error("PICT-Code Cannot initialize editor; no CodeJar prototype available."),!1;if(this.codeJar)return this.log.error("PICT-Code editor is already initialized!"),!1;let t=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-Code Could not find target element [".concat(this.options.TargetElementAddress,"]!")),this.targetElement=!1,!1;this.targetElement=t[0],this._buildEditorDOM();let e=this._resolveCodeContent(),i={};this.options.Tab&&(i.tab=this.options.Tab),this.options.IndentOn&&(i.indentOn=this.options.IndentOn),this.options.MoveToNewLine&&(i.moveToNewLine=this.options.MoveToNewLine),void 0!==this.options.AddClosing&&(i.addClosing=this.options.AddClosing),void 0!==this.options.CatchTab&&(i.catchTab=this.options.CatchTab),this.customConfigureEditorOptions(i);let n=this._editorElement;if(this.codeJar=this._codeJarPrototype(n,this._highlightFunction,i),this._resetEditorWrapStyles(),e&&this.codeJar.updateCode(e),this.codeJar.onUpdate(t=>{this._updateLineNumbers(),this.onCodeChange(t)}),this._updateLineNumbers(),this._lineNumbersElement){let t=this._lineNumbersElement;n.addEventListener("scroll",function(){t.style.transform="translateY(-"+n.scrollTop+"px)"},{passive:!0})}if(this._syncGutterMetrics(),this._lineNumbersElement&&"function"==typeof ResizeObserver){let t=this;this._editorResizeObserver=new ResizeObserver(function(){t._syncGutterMetrics()}),this._editorResizeObserver.observe(n)}if(this._lineNumbersElement&&"function"==typeof MutationObserver){let t=this;this._editorStyleObserver=new MutationObserver(function(){t._syncGutterMetrics()}),this._editorStyleObserver.observe(n,{attributes:!0,attributeFilter:["style","class"]})}this.options.ReadOnly&&n.setAttribute("contenteditable","false")}_buildEditorDOM(){this.targetElement.innerHTML="";let t=document.createElement("div");if(t.className="pict-code-editor-wrap",this.options.LineNumbers){let e=document.createElement("div");e.className="pict-code-line-numbers",t.appendChild(e),this._lineNumbersElement=e}let e=document.createElement("div");e.className="pict-code-editor language-"+this._language,this.options.LineNumbers||(e.className+=" pict-code-no-line-numbers"),t.appendChild(e),this.targetElement.appendChild(t),this._editorElement=e,this._wrapElement=t}_updateLineNumbers(){if(!this.options.LineNumbers||!this._lineNumbersElement||!this._editorElement)return;let t=(this._editorElement.textContent||"").split("\n").length,e="";for(let i=1;i<=t;i++)e+="<span>".concat(i,"</span>");this._lineNumbersElement.innerHTML=e,this._syncGutterMetrics()}_syncGutterMetrics(){if(!this._lineNumbersElement||!this._editorElement)return;if("undefined"==typeof window||"function"!=typeof window.getComputedStyle)return;let t=window.getComputedStyle(this._editorElement),e=t.lineHeight;if(e&&"normal"!==e&&(this._lineNumbersElement.style.lineHeight=e),t.paddingTop&&(this._lineNumbersElement.style.paddingTop=t.paddingTop),t.paddingBottom&&(this._lineNumbersElement.style.paddingBottom=t.paddingBottom),t.fontFamily&&(this._lineNumbersElement.style.fontFamily=t.fontFamily),"undefined"!=typeof console&&console.warn){let t=this._lineNumbersElement.querySelector("span");if(t){let i=t.getBoundingClientRect().height,n=parseFloat(e);i&&n&&Math.abs(i-n)>.5&&console.warn("[pict-section-code] gutter/editor row-height mismatch: gutter "+i+"px vs editor "+n+"px — line numbers will drift. Check for CSS overriding .pict-code-line-numbers line-height.")}}}syncMetrics(){this._syncGutterMetrics()}_resetEditorWrapStyles(){this._editorElement&&(this._editorElement.style.whiteSpace="pre",this._editorElement.style.overflowWrap="normal")}_resolveCodeContent(){if(this.options.CodeDataAddress){const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let e=this.fable.manifest.getValueByHash(t,this.options.CodeDataAddress);if("string"==typeof e)return e;this.log.warn("PICT-Code Address [".concat(this.options.CodeDataAddress,"] did not return a string; it was ").concat(typeof e,"."))}return this.options.DefaultCode||""}customConfigureEditorOptions(t){}onCodeChange(t){if(this.options.CodeDataAddress){const e={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};this.fable.manifest.setValueByHash(e,this.options.CodeDataAddress,t)}}getCode(){return this.codeJar?this.codeJar.toString():(this.log.warn("PICT-Code getCode called before editor initialized."),"")}setCode(t){this.codeJar?(this.codeJar.updateCode(t),this._updateLineNumbers()):this.log.warn("PICT-Code setCode called before editor initialized.")}setLanguage(t){if(this._language=t,this._highlightFunction=r(t),this._editorElement&&(this._editorElement.className="pict-code-editor language-"+t,this.options.LineNumbers||(this._editorElement.className+=" pict-code-no-line-numbers")),this.codeJar){let t=this.codeJar.toString();this.codeJar.destroy(),this.codeJar=this._codeJarPrototype(this._editorElement,this._highlightFunction,{tab:this.options.Tab,catchTab:this.options.CatchTab,addClosing:this.options.AddClosing}),this._resetEditorWrapStyles(),this.codeJar.updateCode(t),this.codeJar.onUpdate(t=>{this._updateLineNumbers(),this.onCodeChange(t)})}}setHighlightFunction(t){if("function"==typeof t){if(this._highlightFunction=t,this.codeJar){let t=this.codeJar.toString();this.codeJar.destroy(),this.codeJar=this._codeJarPrototype(this._editorElement,this._highlightFunction,{tab:this.options.Tab,catchTab:this.options.CatchTab,addClosing:this.options.AddClosing}),this._resetEditorWrapStyles(),this.codeJar.updateCode(t),this.codeJar.onUpdate(t=>{this._updateLineNumbers(),this.onCodeChange(t)})}}else this.log.error("PICT-Code setHighlightFunction requires a function.")}setReadOnly(t){this.options.ReadOnly=t,this._editorElement&&this._editorElement.setAttribute("contenteditable",t?"false":"true")}destroy(){this._editorResizeObserver&&(this._editorResizeObserver.disconnect(),this._editorResizeObserver=null),this._editorStyleObserver&&(this._editorStyleObserver.disconnect(),this._editorStyleObserver=null),this.codeJar&&(this.codeJar.destroy(),this.codeJar=null)}marshalToView(){if(super.marshalToView(),this.codeJar&&this.options.CodeDataAddress){let t=this._resolveCodeContent();"string"==typeof t&&(this.codeJar.updateCode(t),this._updateLineNumbers())}}marshalFromView(){super.marshalFromView(),this.codeJar&&this.options.CodeDataAddress&&this.onCodeChange(this.codeJar.toString())}},e.exports.default_configuration=o,e.exports.createHighlighter=r;const a=t("./demos");e.exports.demos=a.demos,e.exports.registerWithDocuserve=a.registerWithDocuserve},{"./Pict-Code-Highlighter.js":10,"./Pict-Section-Code-DefaultConfiguration.js":11,"./demos":13,"pict-view":38}],13:[function(t,e,i){const n=t("../Pict-Section-Code.js");function r(t,e,i){let r="demo-code-"+(i.Hash||"unnamed")+"-"+Date.now();e.innerHTML='<div id="'+r+'"></div>';let o={ViewIdentifier:"Demo-Code-"+r,DefaultDestinationAddress:"#"+r,Templates:[{Hash:"CodeEditor-Container",Template:"\x3c!-- demo code editor renders here --\x3e"}],Renderables:[{RenderableHash:"CodeEditor-Wrap",TemplateHash:"CodeEditor-Container",DestinationAddress:"#"+r}],TargetElementAddress:"#"+r,Language:i.Language||"javascript",ReadOnly:!!i.ReadOnly,LineNumbers:!1!==i.LineNumbers,Tab:i.Tab||"\t",AddClosing:!1!==i.AddClosing,CatchTab:!1!==i.CatchTab,DefaultCode:i.Code||"// example code\n",AutoRender:!1,RenderOnLoad:!1},a=t.addView(o.ViewIdentifier,o,n);if(!a)return null;if("undefined"!=typeof window&&(window.CodeJarModules&&"function"==typeof window.CodeJarModules.CodeJar?a.connectCodeJarPrototype(window.CodeJarModules.CodeJar):"function"==typeof window.CodeJar&&a.connectCodeJarPrototype(window.CodeJar),window.CodeJarModules&&window.CodeJarModules.hljs)){let t=window.CodeJarModules.hljs,e=o.Language;a._highlightFunction=function(i){i.removeAttribute("data-highlighted"),delete i.dataset.highlighted,i.className=i.className.replace(/\bhljs\b/g,"").replace(/\blanguage-\S+/g,"").trim(),i.classList.add("language-"+e);try{t.highlightElement(i)}catch(t){}}}try{a.render()}catch(t){}return a}const o=[{DemoSchemaVersion:1,Hash:"javascript-editor",Group:"pict",Module:"pict-section-code",Name:"JavaScript editor",Description:"Default pict-section-code configuration — line numbers on, highlight.js for JavaScript, two-space tab.",Spec:{Hash:"javascript-editor",Language:"javascript",LineNumbers:!0,Tab:" ",Code:"// A small example — try editing me.\nfunction fibonacci(n) {\n if (n <= 1) return n;\n return fibonacci(n - 1) + fibonacci(n - 2);\n}\n\nfor (let i = 0; i < 10; i++) {\n console.log(`fib(${i}) =`, fibonacci(i));\n}\n"},Mount:r,Sources:[{Name:"spec.json",Language:"json",Content:'{\n "Language": "javascript",\n "LineNumbers": true,\n "Tab": " ",\n "Code": "function fibonacci(n) { … }"\n}'}]},{DemoSchemaVersion:1,Hash:"json-readonly",Group:"pict",Module:"pict-section-code",Name:"JSON viewer (read-only)",Description:'Read-only mode with line numbers off — useful for embedded "show me the payload" surfaces in dashboards.',Spec:{Hash:"json-readonly",Language:"json",ReadOnly:!0,LineNumbers:!1,Code:'{\n "version": "1.0.7",\n "syntax": {\n "keyword": "#A626A4",\n "string": "#50A14F",\n "number": "#986801",\n "function": "#4078F2"\n },\n "features": ["highlighting", "line-numbers", "readonly", "themed"]\n}\n'},Mount:r,Sources:[{Name:"spec.json",Language:"json",Content:'{\n "Language": "json",\n "ReadOnly": true,\n "LineNumbers": false\n}'}]},{DemoSchemaVersion:1,Hash:"css-editor",Group:"pict",Module:"pict-section-code",Name:"CSS editor (4-space tab)",Description:"CSS-flavoured highlighting with a 4-space tab and bracket auto-close turned off — leaner editing for stylesheet snippets.",Spec:{Hash:"css-editor",Language:"css",LineNumbers:!0,Tab:" ",AddClosing:!1,Code:"/* Theme-aware token usage */\n.docuserve-demo-title {\n color: var(--theme-color-text-primary, #3D3229);\n font-size: 1.5em;\n font-weight: 600;\n}\n\n.docuserve-demo-description {\n color: var(--theme-color-text-secondary, #5E5549);\n line-height: 1.55;\n}\n"},Mount:r,Sources:[{Name:"spec.json",Language:"json",Content:'{\n "Language": "css",\n "LineNumbers": true,\n "Tab": " ",\n "AddClosing": false\n}'}]}];e.exports=o,e.exports.demos=o,e.exports.registerWithDocuserve=function(t){return t&&t.providers&&t.providers["Docuserve-Demos"]?t.providers["Docuserve-Demos"].registerAll(o):0}},{"../Pict-Section-Code.js":12}],14:[function(t,e,i){e.exports=t("./views/Pict-View-Content.js"),e.exports.PictContentProvider=t("./providers/Pict-Provider-Content.js"),e.exports.PictContentDemoView=t("./views/PictView-Content-Demo.js")},{"./providers/Pict-Provider-Content.js":15,"./views/Pict-View-Content.js":16,"./views/PictView-Content-Demo.js":17}],15:[function(t,e,i){const n=t("pict-provider"),r=t("pict-section-code").createHighlighter;e.exports=class extends n{constructor(t,e,i){super(t,e,i)}highlightCode(t,e){if(!t)return"";let i={textContent:t,innerHTML:""};return r(e)(i),i.innerHTML}generateLineNumbers(t){if(!t)return"<span>1</span>";let e=t.split("\n").length,i="";for(let t=1;t<=e;t++)i+="<span>"+t+"</span>";return i}parseMarkdown(t,e,i,n){if(!t)return"";let r=t.split("\n"),o=[],a=!1,s=0,c="",l=[],p=!1,d="",u=!1,h=[],m=!1,g=[],f=[],D=()=>{f.length>0&&(o.push("<p>"+f.map(t=>this.parseInline(t,e,i,n)).join(" ")+"</p>"),f=[])};for(let t=0;t<r.length;t++){let y=r[t];if(!a&&y.trim().match(/^\$\$/)){m?(o.push('<div class="pict-content-katex-display">'+g.join("\n")+"</div>"),m=!1,g=[]):(D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),u&&(o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),u=!1,h=[]),m=!0);continue}if(m){g.push(y);continue}let v=y.match(/^(`{3,})/);if(v){let t=v[1].length;if(a){if(t>=s&&y.trim()===v[1]){if("mermaid"===c)o.push('<pre class="mermaid">'+l.join("\n")+"</pre>");else if("excalidraw"===c){let t,e=l.join("\n");try{t=encodeURIComponent(e)}catch(e){t=""}o.push('<div class="pict-excalidraw-fence" data-scene="'+t+'"><div class="pict-excalidraw-fence-loading">Rendering Excalidraw diagram…</div></div>')}else{let t=l.join("\n"),e=this.highlightCode(t,c),i=this.generateLineNumbers(t);o.push('<div class="pict-content-code-wrap"><div class="pict-content-code-line-numbers">'+i+'</div><pre><code class="language-'+this.escapeHTML(c)+'">'+e+"</code></pre></div>")}a=!1,s=0,c="",l=[];continue}l.push(y);continue}D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),u&&(o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),u=!1,h=[]),s=t,c=y.replace(/^`{3,}/,"").trim(),a=!0;continue}if(a){l.push(y);continue}if(y.match(/^>\s?/)){u||(D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),u=!0,h=[]),h.push(y.replace(/^>\s?/,""));continue}if(u&&(o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),u=!1,h=[]),y.match(/^(-{3,}|\*{3,}|_{3,})\s*$/)){D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),o.push("<hr>");continue}let b=y.match(/^(#{1,6})\s+(.+)/);if(b){D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1);let t=b[1].length,r=this.parseInline(b[2],e,i,n),a=b[2].toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-");o.push("<h"+t+' id="'+a+'">'+r+"</h"+t+">");continue}let T=y.match(/^(\s*)[-*+]\s+(.*)/);if(T){D(),p&&"ul"===d||(p&&o.push("ul"===d?"</ul>":"</ol>"),o.push("<ul>"),p=!0,d="ul"),o.push("<li>"+this.parseInline(T[2],e,i,n)+"</li>");continue}let w=y.match(/^(\s*)\d+\.\s+(.*)/);if(w)D(),p&&"ol"===d||(p&&o.push("ul"===d?"</ul>":"</ol>"),o.push("<ol>"),p=!0,d="ol"),o.push("<li>"+this.parseInline(w[2],e,i,n)+"</li>");else{if(p&&y.match(/^\s+\S/)&&o.length>0&&o[o.length-1].endsWith("</li>")){let t=o.length-1,r=o[t].slice(0,-5);o[t]=r+" "+this.parseInline(y.trim(),e,i,n)+"</li>";continue}if(p&&""!==y.trim()&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1),""!==y.trim()){if(y.match(/^\|/)&&t+1<r.length&&r[t+1].match(/^\|[\s-:|]+\|/)){D(),p&&(o.push("ul"===d?"</ul>":"</ol>"),p=!1);let a="<table>",s=y.split("|").filter(t=>""!==t.trim());a+="<thead><tr>";for(let t=0;t<s.length;t++)a+="<th>"+this.parseInline(s[t].trim(),e,i,n)+"</th>";for(a+="</tr></thead>",t++,a+="<tbody>";t+1<r.length&&r[t+1].match(/^\|/);){t++;let o=r[t].split("|").filter(t=>""!==t.trim());a+="<tr>";for(let t=0;t<o.length;t++)a+="<td>"+this.parseInline(o[t].trim(),e,i,n)+"</td>";a+="</tr>"}a+="</tbody></table>",o.push(a);continue}f.push(y)}else D()}}if(D(),p&&o.push("ul"===d?"</ul>":"</ol>"),u&&o.push("<blockquote>"+this.parseMarkdown(h.join("\n"),e,i,n)+"</blockquote>"),a){let t=l.join("\n"),e=this.highlightCode(t,c),i=this.generateLineNumbers(t);o.push('<div class="pict-content-code-wrap"><div class="pict-content-code-line-numbers">'+i+"</div><pre><code>"+e+"</code></pre></div>")}return o.join("\n")}parseInline(t,e,i,n){if(!t)return"";let r=t,o=[];return r=r.replace(/`([^`]+)`/g,(t,e)=>{let i=o.length;return o.push("<code>"+e+"</code>"),"\0CODEINLINE"+i+"\0"}),r=r.replace(/\$([^\$\s][^\$]*?[^\$\s])\$/g,'<span class="pict-content-katex-inline">$1</span>'),r=r.replace(/\$([^\$\s])\$/g,'<span class="pict-content-katex-inline">$1</span>'),r=r.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(t,e,n)=>{let r=n;if("function"==typeof i){let t=i(n,e);t&&(r=t)}return'<img src="'+r+'" alt="'+e+'">'}),r=r.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(t,i,n)=>{if("function"==typeof e){let t=e(n,i);if(t){let e=t.target?' target="'+t.target+'"':"",n=t.rel?' rel="'+t.rel+'"':"";return'<a href="'+t.href+'"'+e+n+">"+i+"</a>"}}return n.match(/^https?:\/\//)?'<a href="'+n+'" target="_blank" rel="noopener">'+i+"</a>":'<a href="'+n+'">'+i+"</a>"}),r=r.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),r=r.replace(/(^|[^A-Za-z0-9_])__([^_]+?)__(?![A-Za-z0-9_])/g,"$1<strong>$2</strong>"),r=r.replace(/\*([^*]+)\*/g,"<em>$1</em>"),r=r.replace(/(^|[^A-Za-z0-9_])_([^_]+?)_(?![A-Za-z0-9_])/g,"$1<em>$2</em>"),r=r.replace(/\x00CODEINLINE(\d+)\x00/g,(t,e)=>o[parseInt(e)]),"function"==typeof n&&(r=this._applyVocabularyLinks(r,n)),r}_applyVocabularyLinks(t,e){if(!t||"function"!=typeof e)return t;let i={},n=t.split(/(<[^>]+>)/g),r=0,o=["code","a","pre","span"];for(let t=0;t<n.length;t++){let a=n[t];if("<"===a.charAt(0)){let t=a.match(/^<(\w+)/);t&&-1!==o.indexOf(t[1].toLowerCase())&&r++;let e=a.match(/^<\/(\w+)/);e&&-1!==o.indexOf(e[1].toLowerCase())&&(r=Math.max(0,r-1));continue}r>0||(n[t]=a.replace(/\b([A-Za-z][A-Za-z0-9_-]{1,30})\b/g,(t,n)=>{if(n.length<3)return t;let r=n.toLowerCase();if(i[r])return t;let o=e(r);if(!o)return t;i[r]=!0;let a=(o.short||"").replace(/"/g,"&quot;");return'<span class="pict-vocab-term" data-vocab-slug="'+o.slug+'" data-vocab-title="'+(o.title||"").replace(/"/g,"&quot;")+'" data-vocab-short="'+a+'">'+t+"</span>"}))}return n.join("")}escapeHTML(t){return t?t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"):""}},e.exports.default_configuration={ProviderIdentifier:"Pict-Content",AutoInitialize:!0,AutoInitializeOrdinal:0}},{"pict-provider":9,"pict-section-code":12}],16:[function(t,e,i){const n=t("pict-view");class r extends n{constructor(t,e,i){super(t,e,i)}displayContent(t,e){let i=e||"Pict-Content-Body";this.pict.ContentAssignment.assignContent("#"+i,t);let n=document.getElementById(i);n&&n.parentElement&&(n.parentElement.scrollTop=0),n&&!n.classList.contains("pict-content")&&n.classList.add("pict-content"),this.enableFullscreenViewers(i,{skipMermaid:!0}),this.renderMermaidDiagrams(i),this.renderExcalidrawDiagrams(i),this.renderKaTeXEquations(i)}renderExcalidrawDiagrams(t){if("undefined"==typeof document)return;let e=t||"Pict-Content-Body",i=document.getElementById(e);if(!i)return;let n=i.querySelectorAll(".pict-excalidraw-fence:not([data-rendered])");if(n.length<1)return;let r="undefined"!=typeof window?window.PictSectionExcalidrawVendor:null;if(r&&"function"==typeof r.exportToSvg)for(let t=0;t<n.length;t++){let e,i=n[t],o=i.getAttribute("data-scene")||"",a="";try{a=decodeURIComponent(o)}catch(t){a=""}try{e=JSON.parse(a)}catch(t){this._renderExcalidrawFenceError(i,"Invalid scene JSON: "+t.message);continue}let s={elements:e.elements||[],appState:Object.assign({exportEmbedScene:!0},e.appState||{}),files:e.files||{}};r.exportToSvg(s).then(t=>{t&&(t.removeAttribute("width"),t.removeAttribute("height"),t.setAttribute("style","max-width: 100%; height: auto;"),i.innerHTML="",i.appendChild(t),i.setAttribute("data-rendered","true"))}).catch(t=>{this._renderExcalidrawFenceError(i,"Excalidraw render failed: "+(t&&t.message?t.message:t))})}else this.log&&this.log.warn&&!this._excalidrawBundleWarnLogged&&(this.log.warn("pict-excalidraw fence(s) found but pict-section-excalidraw wrapper bundle is not loaded — leaving as placeholders."),this._excalidrawBundleWarnLogged=!0)}_renderExcalidrawFenceError(t,e){t.setAttribute("data-rendered","true"),t.classList.add("pict-excalidraw-fence-error"),t.innerHTML='<div class="pict-excalidraw-fence-error-message"></div>';let i=t.querySelector(".pict-excalidraw-fence-error-message");i&&(i.textContent=e),this.log&&this.log.warn&&this.log.warn("pict-excalidraw fence: "+e)}_ensureMermaidAdapter(){if(this._mermaidAdapter)return this._mermaidAdapter;if("undefined"==typeof mermaid||"undefined"==typeof window)return null;let e=this.pict&&this.pict.providers&&this.pict.providers.Theme;try{if(e&&e.diagram&&"function"==typeof e.diagram.adaptMermaid)this._mermaidAdapter=e.diagram.adaptMermaid(mermaid,{});else{let e=t("pict-provider-theme/source/Theme-Diagram-Adapter.js");e.initializeMermaid(mermaid),this._mermaidAdapter={refresh:function(){return e.refreshMermaidDiagrams()},reinitialize:function(){e.initializeMermaid(mermaid)},dispose:function(){},subscribed:!1}}}catch(t){this.log&&this.log.warn&&this.log.warn("Mermaid theme adapter init failed: "+t.message),this._mermaidAdapter=null}return this._mermaidAdapter}renderMermaidDiagrams(t){if("undefined"==typeof mermaid)return;let e=t||"Pict-Content-Body",i=document.getElementById(e);if(!i)return;let n=i.querySelectorAll("pre.mermaid");if(n.length<1)return;this._ensureMermaidAdapter();let r=this.pict&&this.pict.providers&&this.pict.providers.Theme;if(r&&r.diagram&&"function"==typeof r.diagram.stashMermaidSource)r.diagram.stashMermaidSource(n);else for(let t=0;t<n.length;t++){let e=n[t];e.hasAttribute("data-mermaid-source")||e.setAttribute("data-mermaid-source",e.textContent)}try{let t=mermaid.run({nodes:n});if(t&&"function"==typeof t.then)t.then(()=>{let t=this.pict&&this.pict.providers&&this.pict.providers.Theme;t&&t.diagram&&"function"==typeof t.diagram.stripMermaidStyleImportance&&t.diagram.stripMermaidStyleImportance(n),this.enableFullscreenViewers(e,{onlyMermaid:!0})}).catch(t=>{this.log.error("Mermaid rendering error: "+(t&&t.message?t.message:t))});else{let t=this.pict&&this.pict.providers&&this.pict.providers.Theme;t&&t.diagram&&"function"==typeof t.diagram.stripMermaidStyleImportance&&t.diagram.stripMermaidStyleImportance(n),this.enableFullscreenViewers(e,{onlyMermaid:!0})}}catch(t){this.log.error("Mermaid rendering error: "+t.message)}}renderKaTeXEquations(t){if("undefined"==typeof katex)return;let e=t||"Pict-Content-Body",i=document.getElementById(e);if(!i)return;let n=i.querySelectorAll(".pict-content-katex-inline");for(let t=0;t<n.length;t++)try{katex.render(n[t].textContent,n[t],{throwOnError:!1,displayMode:!1})}catch(t){this.log.warn("KaTeX inline error: "+t.message)}let r=i.querySelectorAll(".pict-content-katex-display");for(let t=0;t<r.length;t++)try{katex.render(r[t].textContent,r[t],{throwOnError:!1,displayMode:!0})}catch(t){this.log.warn("KaTeX display error: "+t.message)}}enableFullscreenViewers(t,e){let i=t||"Pict-Content-Body",n=document.getElementById(i);if(!n)return;let r=e||{};if(!r.onlyMermaid){let t=n.querySelectorAll("img:not([data-fullscreen-source])");for(let e=0;e<t.length;e++){let i=t[e];i.setAttribute("data-fullscreen-source","image");let n=i.getAttribute("alt");if(!n){n=(i.getAttribute("src")||"").split("/").pop().split("?")[0]||"Image"}i.setAttribute("data-fullscreen-title",n)}let e=n.querySelectorAll(".pict-content-code-wrap:not([data-code-actions-wired])");for(let t=0;t<e.length;t++)this._wireCodeActions(e[t])}if(!r.skipMermaid){let t=n.querySelectorAll("pre.mermaid:not([data-fullscreen-source])");for(let e=0;e<t.length;e++){let i=t[e];i.querySelector("svg")&&(i.setAttribute("data-fullscreen-source","mermaid"),i.setAttribute("data-fullscreen-title","Mermaid Diagram"))}}n.__pictFullscreenWired||(n.__pictFullscreenWired=!0,n.addEventListener("click",t=>{let e=t.target;for(;e&&e!==n&&!e.hasAttribute("data-fullscreen-source");)e=e.parentElement;e&&e!==n&&e.hasAttribute("data-fullscreen-source")&&(t.preventDefault(),this._openFullscreen(e))}))}_wireCodeActions(t){if(!t||t.hasAttribute("data-code-actions-wired"))return;t.setAttribute("data-code-actions-wired","true");let e=t.querySelector('code[class*="language-"]'),i="Code";if(e){let t=(e.getAttribute("class")||"").match(/language-(\S+)/);t&&(i=t[1]+" code")}t.setAttribute("data-code-language",i);let n=document.createElement("div");n.className="pict-content-code-container";let r=document.createElement("div");r.className="pict-content-code-actions",r.setAttribute("aria-hidden","false");let o=document.createElement("button");o.type="button",o.className="pict-content-code-action-btn",o.setAttribute("aria-label","Open code in fullscreen"),o.setAttribute("title","Open in fullscreen"),o.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true"><polyline points="3 6 3 3 6 3"></polyline><polyline points="13 6 13 3 10 3"></polyline><polyline points="3 10 3 13 6 13"></polyline><polyline points="13 10 13 13 10 13"></polyline></svg>';let a=document.createElement("button");a.type="button",a.className="pict-content-code-action-btn",a.setAttribute("aria-label","Copy code to clipboard"),a.setAttribute("title","Copy code"),a.innerHTML='<svg viewBox="0 0 16 16" aria-hidden="true"><rect x="5" y="5" width="9" height="9" rx="1.25"></rect><path d="M11 5V3.25A1.25 1.25 0 0 0 9.75 2H3.25A1.25 1.25 0 0 0 2 3.25v6.5A1.25 1.25 0 0 0 3.25 11H5"></path></svg>',r.appendChild(o),r.appendChild(a),t.parentNode.insertBefore(n,t),n.appendChild(t),n.appendChild(r),o.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this._openCodeFullscreen(t)}),a.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this._copyCodeToClipboard(t,a)})}_openCodeFullscreen(t){let e=this._buildFullscreenOverlay();t.setAttribute("data-fullscreen-source","code"),t.setAttribute("data-fullscreen-title",t.getAttribute("data-code-language")||"Code"),e.open(t)}_copyCodeToClipboard(t,e){let i=t.querySelector("code"),n=i?i.textContent:t.textContent,r=()=>{e.classList.add("is-copied"),e.setAttribute("title","Copied!"),setTimeout(()=>{e.classList.remove("is-copied"),e.setAttribute("title","Copy code")},1400)},o=()=>{e.classList.add("is-copy-failed"),e.setAttribute("title","Copy failed"),setTimeout(()=>{e.classList.remove("is-copy-failed"),e.setAttribute("title","Copy code")},1400)};try{if(navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText)return void navigator.clipboard.writeText(n).then(r).catch(o)}catch(t){}try{let t=document.createElement("textarea");t.value=n,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let e=document.execCommand("copy");document.body.removeChild(t),e?r():o()}catch(t){o()}}_buildFullscreenOverlay(){if(r._FullscreenOverlay)return r._FullscreenOverlay;let t=document.createElement("div");t.className="pict-fullscreen-overlay",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-labelledby","pict-fullscreen-title"),t.setAttribute("hidden",""),t.innerHTML='<div class="pict-fullscreen-titlebar"><span class="pict-fullscreen-title" id="pict-fullscreen-title"></span><div class="pict-fullscreen-controls"><button type="button" class="pict-fullscreen-btn" data-action="zoom-out" aria-label="Zoom out" title="Zoom out"><svg viewBox="0 0 16 16" aria-hidden="true"><line x1="3" y1="8" x2="13" y2="8"></line></svg></button><button type="button" class="pict-fullscreen-btn" data-action="zoom-reset" aria-label="Reset zoom" title="Reset zoom"><svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="5"></circle><line x1="8" y1="5" x2="8" y2="11"></line><line x1="5" y1="8" x2="11" y2="8"></line></svg></button><button type="button" class="pict-fullscreen-btn" data-action="zoom-in" aria-label="Zoom in" title="Zoom in"><svg viewBox="0 0 16 16" aria-hidden="true"><line x1="3" y1="8" x2="13" y2="8"></line><line x1="8" y1="3" x2="8" y2="13"></line></svg></button><button type="button" class="pict-fullscreen-btn pict-fullscreen-close" data-action="close" aria-label="Close" title="Close (Esc)"><svg viewBox="0 0 16 16" aria-hidden="true"><line x1="4" y1="4" x2="12" y2="12"></line><line x1="12" y1="4" x2="4" y2="12"></line></svg></button></div></div><div class="pict-fullscreen-stage"><div class="pict-fullscreen-content"></div></div>',document.body.appendChild(t);let e={scale:1,translateX:0,translateY:0,isPanning:!1,didPan:!1,currentKind:"",panStartX:0,panStartY:0,panOrigX:0,panOrigY:0,pinchInitialDistance:0,pinchInitialScale:1},i=t.querySelector(".pict-fullscreen-stage"),n=t.querySelector(".pict-fullscreen-content"),o=t.querySelector(".pict-fullscreen-title"),a=()=>{n.style.transform="translate("+e.translateX+"px, "+e.translateY+"px) scale("+e.scale+")",i.classList.toggle("is-zoomed",e.scale>1.001)},s=(t,n,r)=>{let o=(s=t)<.5?.5:s>8?8:s;var s;let c=i.getBoundingClientRect(),l=void 0!==n?n:c.left+c.width/2,p=void 0!==r?r:c.top+c.height/2,d=l-(c.left+c.width/2),u=p-(c.top+c.height/2),h=o/e.scale;e.translateX=d-h*(d-e.translateX),e.translateY=u-h*(u-e.translateY),e.scale=o,a()},c=()=>{e.scale=1,e.translateX=0,e.translateY=0,a()},l=()=>{t.setAttribute("hidden",""),n.innerHTML="",c(),document.documentElement.style.removeProperty("overflow"),document.removeEventListener("keydown",p)},p=t=>{"Escape"===t.key?(t.preventDefault(),l()):"+"===t.key||"="===t.key?(t.preventDefault(),s(e.scale+.25)):"-"===t.key||"_"===t.key?(t.preventDefault(),s(e.scale-.25)):"0"===t.key&&(t.preventDefault(),c())};t.addEventListener("click",n=>{e.didPan?e.didPan=!1:n.target!==t&&n.target!==i||l()}),t.querySelectorAll("[data-action]").forEach(t=>{t.addEventListener("click",i=>{i.stopPropagation();let n=t.getAttribute("data-action");"close"===n?l():"zoom-in"===n?s(e.scale+.25):"zoom-out"===n?s(e.scale-.25):"zoom-reset"===n&&c()})}),i.addEventListener("wheel",t=>{if("code"===e.currentKind)return;t.preventDefault();let i=.15*(-t.deltaY>0?1:-1);s(e.scale+i,t.clientX,t.clientY)},{passive:!1}),i.addEventListener("pointerdown",t=>{"code"!==e.currentKind&&(e.scale<=1.001||t.target.closest(".pict-fullscreen-controls")||(e.isPanning=!0,e.panStartX=t.clientX,e.panStartY=t.clientY,e.panOrigX=e.translateX,e.panOrigY=e.translateY,i.setPointerCapture(t.pointerId),i.classList.add("is-panning")))}),i.addEventListener("pointermove",t=>{e.isPanning&&(e.translateX=e.panOrigX+(t.clientX-e.panStartX),e.translateY=e.panOrigY+(t.clientY-e.panStartY),a())});let d=t=>{if(e.isPanning){e.isPanning=!1,e.didPan=!0,i.classList.remove("is-panning");try{i.releasePointerCapture(t.pointerId)}catch(t){}}};i.addEventListener("pointerup",d),i.addEventListener("pointercancel",d);let u={};return i.addEventListener("touchstart",t=>{for(let e=0;e<t.touches.length;e++){let i=t.touches[e];u[i.identifier]={x:i.clientX,y:i.clientY}}if(2===t.touches.length){let i=t.touches[0],n=t.touches[1],r=n.clientX-i.clientX,o=n.clientY-i.clientY;e.pinchInitialDistance=Math.sqrt(r*r+o*o),e.pinchInitialScale=e.scale}},{passive:!0}),i.addEventListener("touchmove",t=>{if(2===t.touches.length&&e.pinchInitialDistance>0){t.preventDefault();let i=t.touches[0],n=t.touches[1],r=n.clientX-i.clientX,o=n.clientY-i.clientY,a=Math.sqrt(r*r+o*o)/e.pinchInitialDistance,c=(i.clientX+n.clientX)/2,l=(i.clientY+n.clientY)/2;s(e.pinchInitialScale*a,c,l)}},{passive:!1}),i.addEventListener("touchend",()=>{u={},e.pinchInitialDistance=0}),r._FullscreenOverlay={element:t,content:n,titleEl:o,state:e,open:i=>{let r=i.getAttribute("data-fullscreen-title")||"";o.textContent=r,n.innerHTML="";let a,s=i.getAttribute("data-fullscreen-source");if(e.currentKind=s||"","mermaid"===s){let t=i.querySelector("svg");t?(a=t.cloneNode(!0),a.classList.add("pict-fullscreen-mermaid-svg"),a.removeAttribute("style"),a.removeAttribute("width"),a.removeAttribute("height")):a=i.cloneNode(!0)}else if("diagram"===s){let t="svg"===String(i.tagName).toLowerCase()?i:i.querySelector("svg");t?(a=t.cloneNode(!0),a.classList.add("pict-fullscreen-diagram-svg"),a.removeAttribute("style"),a.removeAttribute("width"),a.removeAttribute("height")):a=i.cloneNode(!0)}else"image"===s?(a=i.cloneNode(!0),a.classList.add("pict-fullscreen-img")):(a=i.cloneNode(!0),a.classList.add("pict-fullscreen-codewrap"));n.appendChild(a);let l=t.querySelectorAll('[data-action="zoom-in"], [data-action="zoom-out"], [data-action="zoom-reset"]');for(let t=0;t<l.length;t++)l[t].style.display="code"===s?"none":"";c(),t.removeAttribute("hidden"),document.documentElement.style.overflow="hidden",document.addEventListener("keydown",p)},close:l},r._FullscreenOverlay}_openFullscreen(t){this._buildFullscreenOverlay().open(t)}showLoading(t,e){let i=e||"Pict-Content-Body",n=t||"Loading content...";this.pict.ContentAssignment.assignContent("#"+i,'<div class="pict-content-loading">'+n+"</div>")}}e.exports=r,e.exports.default_configuration={ViewIdentifier:"Pict-Content",DefaultRenderable:"Pict-Content-Display",DefaultDestinationAddress:"#Pict-Content-Container",AutoRender:!1,CSS:"\n\t\t.pict-content {\n\t\t\tpadding: 2em 3em;\n\t\t\tmax-width: 900px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\t.pict-content-loading {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tmin-height: 200px;\n\t\t\tcolor: var(--theme-color-text-muted, #8A7F72);\n\t\t\tfont-size: 1em;\n\t\t}\n\t\t.pict-content h1 {\n\t\t\tfont-size: 2em;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding-bottom: 0.3em;\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t.pict-content h2 {\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-light, #EAE3D8);\n\t\t\tpadding-bottom: 0.25em;\n\t\t\tmargin-top: 1.5em;\n\t\t}\n\t\t.pict-content h3 {\n\t\t\tfont-size: 1.25em;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tmargin-top: 1.25em;\n\t\t}\n\t\t.pict-content h4, .pict-content h5, .pict-content h6 {\n\t\t\tcolor: var(--theme-color-text-secondary, #5E5549);\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\t.pict-content p {\n\t\t\tline-height: 1.7;\n\t\t\tcolor: var(--theme-color-text-primary, #423D37);\n\t\t\tmargin: 0.75em 0;\n\t\t}\n\t\t.pict-content a {\n\t\t\tcolor: var(--theme-color-brand-primary, #2E7D74);\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.pict-content a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t/* ─── Code blocks ─────────────────────────────────────\n\t\t Background, text color, line-number gutter, and every\n\t\t syntax token route through pict-provider-theme tokens —\n\t\t the same set pict-section-code (the live editor) uses.\n\t\t This way the rendered-preview code blocks look identical\n\t\t to the live editor and re-skin together when the theme\n\t\t switches. Previous version used the text-primary token\n\t\t as the code background (a TEXT token used as BACKGROUND),\n\t\t which broke in dark mode and any palette where text and\n\t\t background-tertiary diverge.\n\t\t*/\n\t\t.pict-content pre {\n\t\t\tbackground: var(--theme-color-background-tertiary, #F0ECE4);\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding: 1.25em;\n\t\t\tborder-radius: 6px;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: 0.9em;\n\t\t\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\t\t}\n\t\t/* Inline code (single backtick) — slightly differentiated\n\t\t from block code so it doesn't disappear into prose. */\n\t\t.pict-content code {\n\t\t\tbackground: var(--theme-color-background-secondary, #FAF8F4);\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n\t\t}\n\t\t.pict-content-code-wrap {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1.5;\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tborder-radius: 6px;\n\t\t\toverflow: hidden;\n\t\t\tmargin: 1em 0;\n\t\t\tbackground: var(--theme-color-background-tertiary, #F0ECE4);\n\t\t}\n\t\t.pict-content-code-wrap .pict-content-code-line-numbers {\n\t\t\twidth: 40px;\n\t\t\tmin-width: 40px;\n\t\t\tpadding: 1.25em 0;\n\t\t\ttext-align: right;\n\t\t\tbackground: var(--theme-color-background-secondary, #FAF8F4);\n\t\t\tborder-right: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tcolor: var(--theme-color-text-muted, #8A7F72);\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tline-height: inherit;\n\t\t\tuser-select: none;\n\t\t\tpointer-events: none;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-content-code-wrap .pict-content-code-line-numbers span {\n\t\t\tdisplay: block;\n\t\t\tpadding: 0 8px 0 0;\n\t\t}\n\t\t.pict-content-code-wrap pre {\n\t\t\tmargin: 0;\n\t\t\tbackground: var(--theme-color-background-tertiary, #F0ECE4);\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t\tborder: none;\n\t\t\tpadding: 1.25em 1.25em 1.25em 8px;\n\t\t\tborder-radius: 0 6px 6px 0;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: inherit;\n\t\t\tflex: 1;\n\t\t\tmin-width: 0;\n\t\t}\n\t\t.pict-content-code-wrap pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-family: inherit;\n\t\t}\n\t\t/* Syntax token colors — every class binds to a --theme-color-syntax-*\n\t\t variable, the same tokens pict-section-code (the live editor) uses.\n\t\t Each var() carries an Atom One Light hex as fallback for hosts\n\t\t without a theme provider; themes that DO ship syntax tokens\n\t\t (pict-default, retold-content-system, etc.) drive everything\n\t\t coherently. */\n\t\t.pict-content-code-wrap .keyword { color: var(--theme-color-syntax-keyword, #A626A4); }\n\t\t.pict-content-code-wrap .string { color: var(--theme-color-syntax-string, #50A14F); }\n\t\t.pict-content-code-wrap .number { color: var(--theme-color-syntax-number, #986801); }\n\t\t.pict-content-code-wrap .comment { color: var(--theme-color-syntax-comment, #A0A1A7); font-style: italic; }\n\t\t.pict-content-code-wrap .operator { color: var(--theme-color-syntax-operator, #0184BC); }\n\t\t.pict-content-code-wrap .punctuation { color: var(--theme-color-syntax-punctuation, #383A42); }\n\t\t.pict-content-code-wrap .function-name { color: var(--theme-color-syntax-function, #4078F2); }\n\t\t.pict-content-code-wrap .property { color: var(--theme-color-syntax-property, #E45649); }\n\t\t.pict-content-code-wrap .tag { color: var(--theme-color-syntax-tag, #E45649); }\n\t\t.pict-content-code-wrap .attr-name { color: var(--theme-color-syntax-attrname, #986801); }\n\t\t.pict-content-code-wrap .attr-value { color: var(--theme-color-syntax-attrvalue, #50A14F); }\n\t\t.pict-content-code-wrap .builtin { color: var(--theme-color-syntax-builtin, #986801); }\n\t\t.pict-content-code-wrap .type { color: var(--theme-color-syntax-type, #C18401); }\n\t\t.pict-content-code-wrap .variable { color: var(--theme-color-syntax-variable, #383A42); }\n\t\t.pict-content pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t}\n\t\t.pict-content blockquote {\n\t\t\tborder-left: 4px solid var(--theme-color-brand-primary, #2E7D74);\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em 1em;\n\t\t\tbackground: var(--theme-color-background-secondary, #F7F5F0);\n\t\t\tcolor: var(--theme-color-text-secondary, #5E5549);\n\t\t}\n\t\t.pict-content blockquote p {\n\t\t\tmargin: 0.25em 0;\n\t\t}\n\t\t.pict-content ul, .pict-content ol {\n\t\t\tpadding-left: 2em;\n\t\t\tline-height: 1.8;\n\t\t}\n\t\t.pict-content li {\n\t\t\tmargin: 0.25em 0;\n\t\t\tcolor: var(--theme-color-text-primary, #423D37);\n\t\t}\n\t\t.pict-content hr {\n\t\t\tborder: none;\n\t\t\tborder-top: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tmargin: 2em 0;\n\t\t}\n\t\t.pict-content table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin: 1em 0;\n\t\t}\n\t\t.pict-content table th {\n\t\t\tbackground: var(--theme-color-background-secondary, #F5F0E8);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding: 0.6em 0.8em;\n\t\t\ttext-align: left;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: var(--theme-color-text-primary, #3D3229);\n\t\t}\n\t\t.pict-content table td {\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tpadding: 0.5em 0.8em;\n\t\t\tcolor: var(--theme-color-text-primary, #423D37);\n\t\t}\n\t\t.pict-content table tr:nth-child(even) {\n\t\t\tbackground: var(--theme-color-background-secondary, #F7F5F0);\n\t\t}\n\t\t.pict-content img {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t\t.pict-content pre.mermaid {\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tcolor: var(--theme-color-text-primary, #2A241E);\n\t\t\ttext-align: center;\n\t\t\tpadding: 1em;\n\t\t}\n\t\t.pict-content pre.mermaid text,\n\t\t.pict-content pre.mermaid .nodeLabel,\n\t\t.pict-content pre.mermaid .edgeLabel,\n\t\t.pict-content pre.mermaid .label,\n\t\t.pict-content pre.mermaid .cluster-label,\n\t\t.pict-content pre.mermaid span,\n\t\t.pict-content pre.mermaid foreignObject p,\n\t\t.pict-content pre.mermaid foreignObject div,\n\t\t.pict-content pre.mermaid foreignObject span {\n\t\t\tcolor: var(--theme-color-text-primary, #2A241E) !important;\n\t\t\tfill: var(--theme-color-text-primary, #2A241E) !important;\n\t\t}\n\t\t.pict-content pre.mermaid .edgePath .path {\n\t\t\tstroke: var(--theme-color-text-secondary, #5E5549) !important;\n\t\t}\n\t\t.pict-content pre.mermaid .arrowheadPath {\n\t\t\tfill: var(--theme-color-text-secondary, #5E5549) !important;\n\t\t}\n\t\t/* Dark-mode override for handcrafted mermaid diagrams that bake\n\t\t per-node inline fill colors via 'style X fill:#...' directives\n\t\t (common in architecture / module docs, where pastel layer\n\t\t colors mark visual hierarchy). Mermaid renders those as inline\n\t\t style=\"fill:#...\" SVG attributes — highest specificity, so\n\t\t neither themeVariables nor unflagged CSS can reach them.\n\t\t In light mode the Material pastels read fine; in dark mode the\n\t\t same light fills become a high-contrast island on the dark\n\t\t page with unreadable text. Force the fills back to a theme\n\t\t background so dark-mode reads; light mode is intentionally\n\t\t unmodified so the per-layer hierarchy is preserved there. */\n\t\t.theme-dark .pict-content pre.mermaid .node rect,\n\t\t.theme-dark .pict-content pre.mermaid .node polygon,\n\t\t.theme-dark .pict-content pre.mermaid .node circle,\n\t\t.theme-dark .pict-content pre.mermaid .node ellipse,\n\t\t.theme-dark .pict-content pre.mermaid .node path,\n\t\t.theme-dark .pict-content pre.mermaid .cluster rect {\n\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t}\n\t\t/* Mirror of the above for theme mode 'system' — when the user\n\t\t hasn't explicitly picked light or dark, the theme provider\n\t\t leaves <html> without .theme-light/.theme-dark and the CSS\n\t\t variables follow prefers-color-scheme. The .theme-dark-prefixed\n\t\t block above doesn't match in that case, so light pastels would\n\t\t win again on dark OSes. Mirror the rule under the media query,\n\t\t gated by :not(.theme-light) so an explicit light override on a\n\t\t dark OS still wins. */\n\t\t@media (prefers-color-scheme: dark) {\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node rect,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node polygon,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node circle,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node ellipse,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .node path,\n\t\t\thtml:not(.theme-light) .pict-content pre.mermaid .cluster rect {\n\t\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t\t}\n\t\t}\n\t\t/* Excalidraw fence placeholders + rendered SVGs */\n\t\t.pict-content .pict-excalidraw-fence {\n\t\t\tdisplay: block;\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tborder-radius: 4px;\n\t\t\tpadding: 1em;\n\t\t\tmargin: 1em 0;\n\t\t\ttext-align: center;\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence svg {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence-loading {\n\t\t\tcolor: var(--theme-color-text-secondary, #5E5549);\n\t\t\tfont-style: italic;\n\t\t\tfont-size: 0.9em;\n\t\t\tpadding: 1em;\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence-error {\n\t\t\tborder-color: var(--theme-color-status-error, #D9534F);\n\t\t\tbackground: var(--theme-color-background-secondary, #FFF5F5);\n\t\t}\n\t\t.pict-content .pict-excalidraw-fence-error-message {\n\t\t\tcolor: var(--theme-color-status-error, #D9534F);\n\t\t\tfont-family: var(--theme-typography-family-mono, monospace);\n\t\t\tfont-size: 0.85em;\n\t\t\ttext-align: left;\n\t\t}\n\t\t.pict-content .pict-content-katex-display {\n\t\t\ttext-align: center;\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em;\n\t\t\toverflow-x: auto;\n\t\t}\n\t\t.pict-content .pict-content-katex-inline {\n\t\t\tdisplay: inline;\n\t\t}\n\n\t\t/* Fullscreen viewer for images and mermaid diagrams (click-to-zoom) */\n\t\t.pict-content [data-fullscreen-source] {\n\t\t\tcursor: zoom-in;\n\t\t\toutline: 1px solid transparent;\n\t\t\toutline-offset: 3px;\n\t\t\tborder-radius: 4px;\n\t\t\ttransition: outline-color 0.15s ease;\n\t\t}\n\t\t.pict-content [data-fullscreen-source]:hover {\n\t\t\toutline-color: var(--theme-color-brand-primary, #2E7D74);\n\t\t}\n\t\t/* Code block container with hover-revealed action buttons */\n\t\t.pict-content-code-container {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: flex-start;\n\t\t\tgap: 8px;\n\t\t\tmargin: 1em 0;\n\t\t}\n\t\t.pict-content-code-container > .pict-content-code-wrap {\n\t\t\tmargin: 0;\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t}\n\t\t.pict-content-code-actions {\n\t\t\tposition: sticky;\n\t\t\ttop: 64px;\n\t\t\talign-self: flex-start;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 6px;\n\t\t\tflex: 0 0 auto;\n\t\t\tpadding-top: 6px;\n\t\t\topacity: 0;\n\t\t\ttransform: translateX(-4px);\n\t\t\ttransition: opacity 0.15s ease, transform 0.15s ease;\n\t\t\tpointer-events: none;\n\t\t}\n\t\t.pict-content-code-container:hover .pict-content-code-actions,\n\t\t.pict-content-code-container:focus-within .pict-content-code-actions {\n\t\t\topacity: 1;\n\t\t\ttransform: translateX(0);\n\t\t\tpointer-events: auto;\n\t\t}\n\t\t.pict-content-code-action-btn {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: 28px;\n\t\t\theight: 28px;\n\t\t\tpadding: 0;\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tcolor: var(--theme-color-text-muted, #5E5549);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tborder-radius: 6px;\n\t\t\tcursor: pointer;\n\t\t\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n\t\t\ttransition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;\n\t\t}\n\t\t.pict-content-code-action-btn svg {\n\t\t\tdisplay: block;\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t\tstroke: currentColor;\n\t\t\tfill: none;\n\t\t\tstroke-width: 1.6;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t}\n\t\t.pict-content-code-action-btn:hover {\n\t\t\tbackground: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t\tborder-color: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);\n\t\t}\n\t\t.pict-content-code-action-btn:focus-visible {\n\t\t\toutline: 2px solid var(--theme-color-brand-primary, #2E7D74);\n\t\t\toutline-offset: 2px;\n\t\t}\n\t\t.pict-content-code-action-btn.is-copied {\n\t\t\tbackground: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t\tborder-color: var(--theme-color-brand-primary, #2E7D74);\n\t\t}\n\t\t.pict-content-code-action-btn.is-copy-failed {\n\t\t\tbackground: var(--theme-color-status-error, #B23A3A);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t\tborder-color: var(--theme-color-status-error, #B23A3A);\n\t\t}\n\t\t.pict-fullscreen-overlay {\n\t\t\tposition: fixed;\n\t\t\tinset: 0;\n\t\t\tz-index: 9999;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tbackground: rgba(0, 0, 0, 0.62);\n\t\t\tbackdrop-filter: blur(6px);\n\t\t\t-webkit-backdrop-filter: blur(6px);\n\t\t\tcolor: var(--theme-color-text-primary, #2A241E);\n\t\t}\n\t\t.pict-fullscreen-overlay[hidden] {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.pict-fullscreen-titlebar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\tgap: 1em;\n\t\t\theight: 48px;\n\t\t\tpadding: 0 1em;\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tcolor: var(--theme-color-text-primary, #1A1612);\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-default, #DDD6CA);\n\t\t\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);\n\t\t\tflex: 0 0 auto;\n\t\t}\n\t\t.pict-fullscreen-title {\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n\t\t\tfont-size: 0.95em;\n\t\t\tfont-weight: 600;\n\t\t\tletter-spacing: 0.01em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcolor: var(--theme-color-text-primary, #1A1612);\n\t\t}\n\t\t.pict-fullscreen-controls {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tgap: 4px;\n\t\t}\n\t\t.pict-fullscreen-btn {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: 32px;\n\t\t\theight: 32px;\n\t\t\tpadding: 0;\n\t\t\tbackground: transparent;\n\t\t\tborder: 1px solid transparent;\n\t\t\tborder-radius: 6px;\n\t\t\tcolor: var(--theme-color-text-muted, #5E5549);\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;\n\t\t}\n\t\t.pict-fullscreen-btn svg {\n\t\t\tdisplay: block;\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tstroke: currentColor;\n\t\t\tfill: none;\n\t\t\tstroke-width: 1.75;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t}\n\t\t.pict-fullscreen-btn:hover {\n\t\t\tbackground: var(--theme-color-border-light, #EAE3D8);\n\t\t\tcolor: var(--theme-color-text-primary, #1A1612);\n\t\t}\n\t\t.pict-fullscreen-btn:focus-visible {\n\t\t\toutline: 2px solid var(--theme-color-brand-primary, #2E7D74);\n\t\t\toutline-offset: 2px;\n\t\t}\n\t\t.pict-fullscreen-close:hover {\n\t\t\tbackground: var(--theme-color-brand-primary, #2E7D74);\n\t\t\tcolor: var(--theme-color-text-on-brand, #FFFFFF);\n\t\t}\n\t\t.pict-fullscreen-stage {\n\t\t\tflex: 1 1 auto;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\toverflow: hidden;\n\t\t\tpadding: 1.5em;\n\t\t\tcursor: zoom-in;\n\t\t\ttouch-action: none;\n\t\t}\n\t\t.pict-fullscreen-stage.is-zoomed {\n\t\t\tcursor: grab;\n\t\t}\n\t\t.pict-fullscreen-stage.is-panning {\n\t\t\tcursor: grabbing;\n\t\t}\n\t\t.pict-fullscreen-content {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t\ttransform-origin: center center;\n\t\t\ttransition: transform 0.05s linear;\n\t\t\twill-change: transform;\n\t\t}\n\t\t.pict-fullscreen-content > * {\n\t\t\tbox-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);\n\t\t}\n\t\t.pict-fullscreen-content .pict-fullscreen-img {\n\t\t\tmax-width: 90vw;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\t\t\tobject-fit: contain;\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tpadding: 12px;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t.pict-fullscreen-content .pict-fullscreen-mermaid-svg {\n\t\t\twidth: min(90vw, 1400px);\n\t\t\theight: auto;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\t\t\tpadding: 16px;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t/* Bespoke inline-SVG diagrams (pict-renderer-graph / excalidraw). Backdrop\n\t\t uses the diagram's own --diagram-paper so the zoomed copy keeps the same\n\t\t theme as the inline one (the host defines --diagram-* on the overlay). */\n\t\t.pict-fullscreen-content .pict-fullscreen-diagram-svg {\n\t\t\twidth: min(90vw, 1400px);\n\t\t\theight: auto;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\tbackground: var(--diagram-paper, var(--theme-color-background-panel, #FFFFFF));\n\t\t\tpadding: 16px;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t/* Same dark-mode fill/stroke override as for inline diagrams, but\n\t\t scoped to the fullscreen-overlay clone — which lives under\n\t\t <body>, NOT inside .pict-content, so the pre.mermaid-scoped\n\t\t rules above don't reach it. */\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node rect,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node polygon,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node circle,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node ellipse,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node path,\n\t\t.theme-dark .pict-fullscreen-content .pict-fullscreen-mermaid-svg .cluster rect {\n\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t}\n\t\t@media (prefers-color-scheme: dark) {\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node rect,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node polygon,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node circle,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node ellipse,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .node path,\n\t\t\thtml:not(.theme-light) .pict-fullscreen-content .pict-fullscreen-mermaid-svg .cluster rect {\n\t\t\t\tfill: var(--theme-color-background-tertiary, #2A241E) !important;\n\t\t\t\tstroke: var(--theme-color-border-default, #5E5549) !important;\n\t\t\t}\n\t\t}\n\t\t.pict-fullscreen-content .pict-fullscreen-codewrap {\n\t\t\tmax-width: 90vw;\n\t\t\tmax-height: calc(100vh - 96px);\n\t\t\tmargin: 0;\n\t\t\toverflow: auto;\n\t\t\tbox-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);\n\t\t}\n\t",Templates:[{Hash:"Pict-Content-Template",Template:'\n<div class="pict-content" id="Pict-Content-Body">\n\t<div class="pict-content-loading">Loading content...</div>\n</div>\n'}],Renderables:[{RenderableHash:"Pict-Content-Display",TemplateHash:"Pict-Content-Template",DestinationAddress:"#Pict-Content-Container",RenderMethod:"replace"}]}},{"pict-provider-theme/source/Theme-Diagram-Adapter.js":7,"pict-view":38}],17:[function(t,e,i){const n=t("./Pict-View-Content.js"),r=t("../providers/Pict-Provider-Content.js"),o={ViewIdentifier:"Pict-Content-Demo",DefaultRenderable:"Pict-Content-Display",DefaultDestinationAddress:"#Pict-Content-Container",MarkdownDataAddress:"AppData.ContentDemo.Markdown",AutoRender:!0,CSS:n.default_configuration.CSS,Templates:n.default_configuration.Templates,Renderables:n.default_configuration.Renderables};e.exports=class extends n{constructor(t,e,i){super(t,e,i);let n="Pict-Content";this.pict.providers[n]||this.pict.addProvider(n,r.default_configuration,r)}_readMarkdownFromAddress(){let t=this.options.MarkdownDataAddress;if(!t||"string"!=typeof t)return null;let e=t.split("."),i=this.pict;for(let t=0;t<e.length;t++){if(null==i)return null;i=i[e[t]]}return"string"==typeof i?i:null}onAfterRender(t,e,i,n){let r=this._readMarkdownFromAddress(),o=this.pict.providers["Pict-Content"];if(o&&"string"==typeof r){let t=o.parseMarkdown(r);this.displayContent(t)}return this.pict.CSSMap.injectCSS(),super.onAfterRender(t,e,i,n)}},e.exports.default_configuration=o},{"../providers/Pict-Provider-Content.js":15,"./Pict-View-Content.js":16}],18:[function(t,e,i){e.exports={RenderOnLoad:!0,DefaultRenderable:"Excalidraw-Wrap",DefaultDestinationAddress:"#Excalidraw-Container-Div",TargetElementAddress:"#Excalidraw-Container-Div",EmbedMode:"react",DrawingDataAddress:!1,Theme:"light",ViewModeEnabled:!1,ZenModeEnabled:!1,GridModeEnabled:!1,LangCode:"en",UIOptions:{},InitialData:{elements:[],appState:{},files:{}},AssetBaseURL:"./excalidraw-assets/",IframeHostURL:"./excalidraw-iframe-host.html",LazyLoadReactVendorURL:null,LazyLoadWrapperURL:null,OnLoad:null,OnSave:null,OnChange:null,OnChangeThrottleMs:250,Templates:[{Hash:"Excalidraw-Container",Template:"\x3c!-- Excalidraw-Container Rendering Soon --\x3e"}],Renderables:[{RenderableHash:"Excalidraw-Wrap",TemplateHash:"Excalidraw-Container",DestinationAddress:"#Excalidraw-Container-Div"}],CSS:".pict-excalidraw-wrap\n{\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 320px;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\tborder: 1px solid var(--theme-color-border-default, #D0D0D0);\n\tborder-radius: 4px;\n\toverflow: hidden;\n\tfont-family: var(--theme-typography-family-base, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n\tcolor: var(--theme-color-text-primary, #1A1A1A);\n}\n\n/* Theme bridge: forward pict tokens into the variables Excalidraw's own\n stylesheet reads. See vendor/excalidraw/packages/excalidraw/css/ for the\n token names. We default to the official light palette so Excalidraw renders\n correctly even before a pict theme overrides anything. */\n.pict-excalidraw-wrap\n{\n\t--default-bg-color: var(--theme-color-background-panel, #FFFFFF);\n\t--island-bg-color: var(--theme-color-background-secondary, #FFFFFF);\n\t--input-bg-color: var(--theme-color-background-primary, #FFFFFF);\n\t--input-border-color: var(--theme-color-border-default, #D0D0D0);\n\t--text-primary-color: var(--theme-color-text-primary, #1A1A1A);\n\t--color-primary: var(--theme-color-brand-primary, #6965DB);\n\t--color-primary-darker: var(--theme-color-brand-primary-hover, #5754C4);\n\t--color-primary-darkest: var(--theme-color-brand-primary-hover, #4642B7);\n\t--color-on-primary-container: var(--theme-color-background-panel, #FFFFFF);\n\t--button-hover-bg: var(--theme-color-background-hover, #F1F0FF);\n\t--button-active-bg: var(--theme-color-background-selected, #E3E2FE);\n\t--button-active-border: var(--theme-color-brand-primary, #6965DB);\n\t--popup-bg-color: var(--theme-color-background-panel, #FFFFFF);\n\t--popup-border-color: var(--theme-color-border-default, #D0D0D0);\n\t--icon-fill-color: var(--theme-color-text-primary, #1A1A1A);\n\t--shadow-island: 0 0 0 1px var(--theme-color-border-light, rgba(0,0,0,0.06)), 0 2px 6px 0 var(--theme-color-shadow-color, rgba(0,0,0,0.08));\n}\n\n/* iframe mode: the iframe element itself owns the entire wrap surface */\n.pict-excalidraw-iframe\n{\n\tflex: 1 1 auto;\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 320px;\n\tborder: 0;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n}\n\n/* react mode: a single inner div that Excalidraw mounts into via createRoot */\n.pict-excalidraw-mount\n{\n\tflex: 1 1 auto;\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 320px;\n\tposition: relative;\n}\n\n/* Status / error overlay used by both modes before the third-party lib is\n wired up, or when bundling failed. */\n.pict-excalidraw-status\n{\n\tposition: absolute;\n\tinset: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-direction: column;\n\tgap: 8px;\n\tpadding: 16px;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\tcolor: var(--theme-color-text-secondary, #4A4A4A);\n\ttext-align: center;\n\tfont-size: 14px;\n\tline-height: 1.4;\n\tz-index: 1;\n}\n.pict-excalidraw-status code\n{\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', monospace);\n\tfont-size: 12px;\n\tpadding: 2px 6px;\n\tbackground: var(--theme-color-background-secondary, #F4F4F4);\n\tborder: 1px solid var(--theme-color-border-light, rgba(0,0,0,0.06));\n\tborder-radius: 3px;\n}\n.pict-excalidraw-status.error\n{\n\tcolor: var(--theme-color-status-error, #B43B3B);\n}\n"}},{}],19:[function(t,e,i){const n=t("pict-view"),r=t("./views/PictView-Excalidraw-React.js"),o=t("./views/PictView-Excalidraw-Iframe.js"),a=t("./Pict-Section-Excalidraw-DefaultConfiguration.js");function s(t){return"iframe"===(t&&t.EmbedMode||a.EmbedMode||"react").toLowerCase()?o:r}e.exports=class extends n{constructor(t,e,i){var n;let r=Object.assign({},a,e);super(t,r,i),n=this,this._ImplementationClass=s(r);let o=Object.assign({},r);o.ViewIdentifier=(r.ViewIdentifier||"PictSectionExcalidraw")+"-Impl",this._Implementation=new this._ImplementationClass(t,o,i);let c=["getScene","setScene","exportSvg","exportBlob","serialize","setTheme","setReadOnly","load","save","destroy","getApi","connectExcalidrawGlobal","isDestroyed","convertMermaidToExcalidraw"];for(let t=0;t<c.length;t++){let e=c[t];this[e]=function(){if("function"==typeof n._Implementation[e]){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return n._Implementation[e].apply(n._Implementation,i)}}}}onAfterRender(t,e,i,n){return this.pict.CSSMap.injectCSS(),this._Implementation&&"function"==typeof this._Implementation.render&&(this._dispatchedRender||(this._dispatchedRender=!0,this._Implementation.render())),super.onAfterRender(t,e,i,n)}},e.exports.default_configuration=a,e.exports.ReactView=r,e.exports.IframeView=o,e.exports.selectImplementation=s},{"./Pict-Section-Excalidraw-DefaultConfiguration.js":18,"./views/PictView-Excalidraw-Iframe.js":20,"./views/PictView-Excalidraw-React.js":21,"pict-view":38}],20:[function(t,e,i){const n=t("pict-view"),r=t("../Pict-Section-Excalidraw-DefaultConfiguration.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},r,e),i),this.initialRenderComplete=!1,this.targetElement=!1,this._iframeElement=null,this._wrapElement=null,this._statusElement=null,this._iframeReady=!1,this._pendingRequests=Object.create(null),this._nextRequestId=1,this._lastSceneSnapshot=null,this._messageListener=null,this._onChangeThrottleHandle=null,this._lastSeenChangeSnapshot=null,this._currentTheme=this.options.Theme||"light",this._destroyed=!1}onAfterRender(t,e,i,n){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t,e,i,n)}onAfterInitialRender(){let t=this.pict.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-Excalidraw (iframe) could not find target [".concat(this.options.TargetElementAddress,"].")),!1;this.targetElement=t[0],this._buildContainerDOM(),this._wireMessageListener(),this._mountIframe()}_buildContainerDOM(){this.targetElement.innerHTML="";let t=document.createElement("div");t.className="pict-excalidraw-wrap pict-excalidraw-wrap-iframe";let e=document.createElement("div");e.className="pict-excalidraw-status",e.innerHTML="Loading Excalidraw…",t.appendChild(e);let i=document.createElement("iframe");i.className="pict-excalidraw-iframe",i.setAttribute("title","Excalidraw drawing"),i.setAttribute("allow","clipboard-read; clipboard-write"),t.appendChild(i),this.targetElement.appendChild(t),this._wrapElement=t,this._iframeElement=i,this._statusElement=e}_wireMessageListener(){this._messageListener=t=>{t&&t.data&&"object"==typeof t.data&&t.source===(this._iframeElement&&this._iframeElement.contentWindow)&&this._handleIframeMessage(t.data)},window.addEventListener("message",this._messageListener)}_mountIframe(){let t=this.options.IframeHostURL||"./excalidraw-iframe-host.html";this._iframeElement.src=t}_postToIframe(t){return!(!this._iframeElement||!this._iframeElement.contentWindow)&&(this._iframeElement.contentWindow.postMessage(t,"*"),!0)}_handleIframeMessage(t){switch(t.type){case"pict-excalidraw:ready":return this._iframeReady=!0,this._statusElement&&(this._statusElement.style.display="none"),void this._sendInitMessage();case"pict-excalidraw:change":return void this._handleChange(t.payload);case"pict-excalidraw:sceneReply":case"pict-excalidraw:svgReply":case"pict-excalidraw:blobReply":{let e=this._pendingRequests[t.requestId];return void(e&&(clearTimeout(e.timeout),delete this._pendingRequests[t.requestId],e.resolve(t.payload)))}case"pict-excalidraw:error":{let e=t.requestId&&this._pendingRequests[t.requestId];return void(e?(clearTimeout(e.timeout),delete this._pendingRequests[t.requestId],e.reject(new Error(t.message||"iframe error"))):this.log.error("PICT-Excalidraw (iframe) error: ".concat(t.message)))}default:return}}_sendInitMessage(){let t=this._resolveInitialData();this._postToIframe({type:"pict-excalidraw:init",payload:{initialData:t,theme:this._resolveTheme(this._currentTheme),langCode:this.options.LangCode||"en",viewModeEnabled:!!this.options.ViewModeEnabled,zenModeEnabled:!!this.options.ZenModeEnabled,gridModeEnabled:!!this.options.GridModeEnabled,UIOptions:this.options.UIOptions||{},assetBaseURL:this.options.AssetBaseURL}}),this._pushThemeTokens(),"function"==typeof this.options.OnLoad&&this.load()}_pushThemeTokens(){if("undefined"==typeof document||!document.documentElement)return;let t=["--theme-color-background-panel","--theme-color-background-primary","--theme-color-background-secondary","--theme-color-background-hover","--theme-color-background-selected","--theme-color-border-default","--theme-color-border-light","--theme-color-text-primary","--theme-color-text-secondary","--theme-color-brand-primary","--theme-color-brand-primary-hover","--theme-color-status-error","--theme-color-shadow-color"],e=window.getComputedStyle(document.documentElement),i={};for(let n=0;n<t.length;n++){let r=e.getPropertyValue(t[n]).trim();r&&(i[t[n]]=r)}this._postToIframe({type:"pict-excalidraw:setThemeTokens",payload:i})}_resolveInitialData(){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);if(t&&t.elements)return t}return this.options.InitialData||{elements:[],appState:{},files:{}}}_resolveTheme(t){if("auto"===t){if("undefined"!=typeof document&&document.documentElement&&document.documentElement.classList&&document.documentElement.classList.contains("theme-mode-dark"))return"dark";let t=this.pict&&this.pict.providers&&this.pict.providers.ThemeSection;if(t&&t.getCurrentMode){let e=t.getCurrentMode();if("dark"===e)return"dark";if("light"===e)return"light"}return"light"}return"dark"===t?"dark":"light"}_handleChange(t){if(this._destroyed)return;if(this._lastSceneSnapshot=t,this._lastSeenChangeSnapshot=t,this._onChangeThrottleHandle)return;let e=this.options.OnChangeThrottleMs||250;this._onChangeThrottleHandle=setTimeout(()=>{if(this._onChangeThrottleHandle=null,this._destroyed)return;let t=this._lastSeenChangeSnapshot;if(t&&(this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,t),"function"==typeof this.options.OnChange))try{this.options.OnChange(this,t)}catch(t){this.log.error("PICT-Excalidraw OnChange threw: ".concat(t&&t.message))}},e)}_readAppData(t){if(!t)return null;try{let e=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.getValueByHash)return this.fable.manifest.getValueByHash(this.pict.AppData,e);let i=e.split("."),n=this.pict.AppData;for(let t=0;t<i.length;t++){if(null==n)return null;n=n[i[t]]}return n}catch(t){return this.log.error("PICT-Excalidraw read AppData failed: ".concat(t&&t.message)),null}}_writeAppData(t,e){if(!t)return!1;try{let i=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.setValueByHash)return this.fable.manifest.setValueByHash(this.pict.AppData,i,e),!0;let n=i.split("."),r=this.pict.AppData;for(let t=0;t<n.length-1;t++)null==r[n[t]]&&(r[n[t]]={}),r=r[n[t]];return r[n[n.length-1]]=e,!0}catch(t){return this.log.error("PICT-Excalidraw write AppData failed: ".concat(t&&t.message)),!1}}_request(t,e){let i=this._nextRequestId++;return new Promise((n,r)=>{this._pendingRequests[i]={resolve:n,reject:r},this._postToIframe(Object.assign({type:t,requestId:i},e||{})),this._pendingRequests[i].timeout=setTimeout(()=>{this._pendingRequests[i]&&(delete this._pendingRequests[i],r(new Error("iframe request timed out")))},3e4)})}getApi(){return null}getScene(){return this._lastSceneSnapshot}requestScene(){return this._request("pict-excalidraw:requestScene")}setScene(t){return!!t&&(this._postToIframe({type:"pict-excalidraw:setScene",payload:t}),!0)}exportSvg(t){return this._request("pict-excalidraw:requestSvg",{exportOptions:t||{}})}exportBlob(t){return this._request("pict-excalidraw:requestBlob",{exportOptions:t||{}})}serialize(){let t=this._lastSceneSnapshot;return t?JSON.stringify({type:"excalidraw",version:2,source:"pict-section-excalidraw",elements:t.elements||[],appState:t.appState||{},files:t.files||{}}):null}setTheme(t){this._currentTheme=t||"light";let e=this._resolveTheme(this._currentTheme);this._postToIframe({type:"pict-excalidraw:setTheme",payload:e}),this._pushThemeTokens()}setReadOnly(t){this.options.ViewModeEnabled=!!t,this._postToIframe({type:"pict-excalidraw:setReadOnly",payload:!!t})}load(){if("function"!=typeof this.options.OnLoad){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);t&&this.setScene(t)}}else this.options.OnLoad(this,(t,e)=>{t?this.log.error("PICT-Excalidraw OnLoad error: ".concat(t.message||t)):e&&this.setScene(e)})}save(){let t=t=>{t&&("function"!=typeof this.options.OnSave?this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,t):this.options.OnSave(this,t,t=>{t&&this.log.error("PICT-Excalidraw OnSave error: ".concat(t.message||t))}))};this._lastSceneSnapshot?t(this._lastSceneSnapshot):this.requestScene().then(t).catch(t=>{this.log.error("PICT-Excalidraw save scene fetch failed: ".concat(t.message||t))})}destroy(){if(this._destroyed)return;if(this._destroyed=!0,this._onChangeThrottleHandle&&(clearTimeout(this._onChangeThrottleHandle),this._onChangeThrottleHandle=null),this._lastSeenChangeSnapshot=null,this._messageListener){try{window.removeEventListener("message",this._messageListener)}catch(t){}this._messageListener=null}let t=Object.keys(this._pendingRequests);for(let e=0;e<t.length;e++){let i=this._pendingRequests[t[e]];if(i&&"function"==typeof i.reject){clearTimeout(i.timeout);try{i.reject(new Error("view destroyed"))}catch(t){}}}if(this._pendingRequests=Object.create(null),this._iframeElement)try{this._iframeElement.src="about:blank"}catch(t){}if(this.targetElement&&void 0!==this.targetElement.innerHTML)try{this.targetElement.innerHTML=""}catch(t){}this._iframeReady=!1,this._lastSceneSnapshot=null,this._iframeElement=null,this._statusElement=null,this._wrapElement=null,this.targetElement=!1,this.initialRenderComplete=!1}isDestroyed(){return!!this._destroyed}},e.exports.default_configuration=r},{"../Pict-Section-Excalidraw-DefaultConfiguration.js":18,"pict-view":38}],21:[function(t,e,i){const n=t("pict-view"),r=t("../Pict-Section-Excalidraw-DefaultConfiguration.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},r,e),i),this.initialRenderComplete=!1,this._vendor=null,this._reactRoot=null,this._excalidrawAPI=null,this.targetElement=!1,this._wrapElement=null,this._mountElement=null,this._statusElement=null,this._onChangeThrottleHandle=null,this._lastSeenChangeSnapshot=null,this._pendingDeferredLoad=!1,this._destroyed=!1,this._currentTheme=this.options.Theme||"light"}onBeforeInitialize(){return super.onBeforeInitialize(),super.onBeforeInitialize()}connectExcalidrawGlobal(t){return!!(t&&t.Excalidraw&&t.React&&t.ReactDOM)&&(this._vendor=t,!0)}_resolveVendor(){if(this._vendor)return this._vendor;if("undefined"!=typeof window&&window.PictSectionExcalidrawVendor){let t=window.PictSectionExcalidrawVendor;if(t.Excalidraw&&t.React&&t.ReactDOM)return this._vendor=t,t}return null}onAfterRender(t,e,i,n){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t,e,i,n)}onAfterInitialRender(){let t=this.pict.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-Excalidraw could not find target element [".concat(this.options.TargetElementAddress,"].")),!1;this.targetElement=t[0],this._buildContainerDOM();let e=this._resolveVendor();if(!e)return this.options.LazyLoadWrapperURL?(this._renderStatus("Loading Excalidraw…",!1),void this._lazyLoadVendor().then(()=>{if(this._destroyed)return;let t=this._resolveVendor();t?this._mountReact(t):this._renderStatus("Excalidraw failed to lazy-load. Check the network tab for <code>excalidraw-wrapper.min.js</code>.",!0)}).catch(t=>{this.log.error("PICT-Excalidraw lazy-load failed: ".concat(t&&t.message)),this._renderStatus("Excalidraw lazy-load failed: <code>"+(t&&t.message||"unknown error")+"</code>",!0)})):(this._renderStatus("Excalidraw wrapper bundle not loaded. Include <code>excalidraw-wrapper.min.js</code> via a script tag, set <code>LazyLoadWrapperURL</code> in the view options, or call <code>connectExcalidrawGlobal({React, ReactDOM, Excalidraw})</code>.",!0),this.log.error("PICT-Excalidraw vendor bundle not found; cannot mount."),!1);this._mountReact(e)}_lazyLoadVendor(){if("undefined"==typeof window)return Promise.reject(new Error("no window"));if(window.PictSectionExcalidrawVendor)return Promise.resolve();if(window.__pictExcalidrawLazyLoadPromise)return window.__pictExcalidrawLazyLoadPromise;let t=this.options.LazyLoadReactVendorURL,e=this.options.LazyLoadWrapperURL,i=t=>new Promise((e,i)=>{let n=document.createElement("script");n.src=t,n.async=!1,n.onload=()=>e(),n.onerror=()=>i(new Error("failed to load "+t)),document.head.appendChild(n)}),n=Promise.resolve();return t&&!window.React&&(n=n.then(()=>i(t))),n=n.then(()=>i(e)),n=n.then(()=>{if(!window.PictSectionExcalidrawVendor)throw new Error("wrapper loaded but window.PictSectionExcalidrawVendor was not set")}).finally(()=>{window.__pictExcalidrawLazyLoadPromise=null}),window.__pictExcalidrawLazyLoadPromise=n,n}_buildContainerDOM(){this.targetElement.innerHTML="";let t=document.createElement("div");t.className="pict-excalidraw-wrap pict-excalidraw-wrap-react";let e=document.createElement("div");e.className="pict-excalidraw-mount",t.appendChild(e);let i=document.createElement("div");i.className="pict-excalidraw-status",i.style.display="none",t.appendChild(i),this.targetElement.appendChild(t),this._wrapElement=t,this._mountElement=e,this._statusElement=i}_renderStatus(t,e){this._statusElement&&(this._statusElement.style.display="flex",this._statusElement.classList.toggle("error",!!e),this._statusElement.innerHTML=t)}_hideStatus(){this._statusElement&&(this._statusElement.style.display="none")}_mountReact(t){let e=t.React,i=t.ReactDOM,n=t.Excalidraw,r={initialData:this._resolveInitialData(),theme:this._resolveTheme(this._currentTheme),langCode:this.options.LangCode||"en",viewModeEnabled:!!this.options.ViewModeEnabled,zenModeEnabled:!!this.options.ZenModeEnabled,gridModeEnabled:!!this.options.GridModeEnabled,UIOptions:this.options.UIOptions||{},onExcalidrawAPI:t=>{this._excalidrawAPI=t,this._pendingDeferredLoad&&(this._pendingDeferredLoad=!1,this.load())},onChange:(t,e,i)=>{this._handleChange(t,e,i)}};"undefined"!=typeof window&&this.options.AssetBaseURL&&!window.EXCALIDRAW_ASSET_PATH&&(window.EXCALIDRAW_ASSET_PATH=this.options.AssetBaseURL);try{this._reactRoot=i.createRoot(this._mountElement),this._reactRoot.render(e.createElement(n,r)),this._hideStatus()}catch(t){this.log.error("PICT-Excalidraw mount failed: ".concat(t&&t.message)),this._renderStatus("Excalidraw failed to mount: <code>"+(t&&t.message?t.message:"unknown error")+"</code>",!0)}}_resolveInitialData(){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);if(t&&t.elements)return t}return"function"==typeof this.options.OnLoad&&(this._pendingDeferredLoad=!0),this.options.InitialData||{elements:[],appState:{},files:{}}}_resolveTheme(t){if("auto"===t){if("undefined"!=typeof document&&document.documentElement){let t=document.documentElement;if(t.classList&&t.classList.contains("theme-mode-dark"))return"dark"}let t=this.pict&&this.pict.providers&&this.pict.providers.ThemeSection;if(t&&t.getCurrentMode){let e=t.getCurrentMode();if("dark"===e)return"dark";if("light"===e)return"light"}return"light"}return"dark"===t?"dark":"light"}_handleChange(t,e,i){if(this._destroyed)return;if(this._lastSeenChangeSnapshot={elements:t,appState:e,files:i},this._onChangeThrottleHandle)return;let n=this.options.OnChangeThrottleMs||250;this._onChangeThrottleHandle=setTimeout(()=>{if(this._onChangeThrottleHandle=null,this._destroyed)return;let t=this._lastSeenChangeSnapshot;if(t&&(this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,this._cloneScene(t)),"function"==typeof this.options.OnChange))try{this.options.OnChange(this,this._cloneScene(t))}catch(t){this.log.error("PICT-Excalidraw OnChange threw: ".concat(t&&t.message))}},n)}_cloneScene(t){return{elements:t.elements?t.elements.slice():[],appState:t.appState?Object.assign({},t.appState):{},files:t.files?Object.assign({},t.files):{}}}_readAppData(t){if(!t)return null;try{let e=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.getValueByHash)return this.fable.manifest.getValueByHash(this.pict.AppData,e);let i=e.split("."),n=this.pict.AppData;for(let t=0;t<i.length;t++){if(null==n)return null;n=n[i[t]]}return n}catch(t){return this.log.error("PICT-Excalidraw read AppData failed: ".concat(t&&t.message)),null}}_writeAppData(t,e){if(!t)return!1;try{let i=t.replace(/^AppData\./,"");if(this.fable&&this.fable.manifest&&this.fable.manifest.setValueByHash)return this.fable.manifest.setValueByHash(this.pict.AppData,i,e),!0;let n=i.split("."),r=this.pict.AppData;for(let t=0;t<n.length-1;t++)null==r[n[t]]&&(r[n[t]]={}),r=r[n[t]];return r[n[n.length-1]]=e,!0}catch(t){return this.log.error("PICT-Excalidraw write AppData failed: ".concat(t&&t.message)),!1}}getApi(){return this._excalidrawAPI}getScene(){return this._excalidrawAPI?{elements:this._excalidrawAPI.getSceneElements(),appState:this._excalidrawAPI.getAppState(),files:this._excalidrawAPI.getFiles?this._excalidrawAPI.getFiles():{}}:null}setScene(t){if(!this._excalidrawAPI)return!1;if(!t)return!1;let e=Array.isArray(t)?{elements:t,appState:{},files:{}}:t;if(this._excalidrawAPI.updateScene({elements:e.elements||[],appState:e.appState||{},collaborators:new Map}),e.files&&this._excalidrawAPI.addFiles){let t=[],i=Object.keys(e.files);for(let n=0;n<i.length;n++)t.push(e.files[i[n]]);t.length&&this._excalidrawAPI.addFiles(t)}return!0}exportSvg(t){let e=this._resolveVendor();if(!e||!e.exportToSvg)return Promise.reject(new Error("exportToSvg unavailable"));let i=this.getScene();if(!i)return Promise.reject(new Error("Excalidraw not mounted"));let n=t||{},r=this._promoteAppStateExportKeys(n);return e.exportToSvg(Object.assign({elements:i.elements,appState:Object.assign({},i.appState,r),files:i.files},n))}exportBlob(t){let e=this._resolveVendor();if(!e||!e.exportToBlob)return Promise.reject(new Error("exportToBlob unavailable"));let i=this.getScene();if(!i)return Promise.reject(new Error("Excalidraw not mounted"));let n=t||{},r=this._promoteAppStateExportKeys(n);return e.exportToBlob(Object.assign({elements:i.elements,appState:Object.assign({},i.appState,r),files:i.files,mimeType:"image/png"},n))}_promoteAppStateExportKeys(t){let e=["exportEmbedScene","exportBackground","exportPadding","exportScale","exportWithDarkMode"],i={};for(let n=0;n<e.length;n++)Object.prototype.hasOwnProperty.call(t,e[n])&&(i[e[n]]=t[e[n]],delete t[e[n]]);return i}convertMermaidToExcalidraw(t,e){let i=e||{},n=!1!==i.apply,r=this._resolveVendor();return r&&r.parseMermaidToExcalidraw&&r.convertToExcalidrawElements?r.parseMermaidToExcalidraw(t,i.mermaidOptions||{}).then(t=>{let e=t&&t.elements||[],i=t&&t.files||{},o=r.convertToExcalidrawElements(e);return n&&this.setScene({elements:o,appState:{},files:i}),{elements:o,files:i}}):Promise.reject(new Error("mermaid helpers not available — wrapper bundle out of date?"))}serialize(){let t=this._resolveVendor(),e=this.getScene();return e?t&&t.serializeAsJSON?t.serializeAsJSON(e.elements,e.appState,e.files,"local"):JSON.stringify({type:"excalidraw",version:2,source:"pict-section-excalidraw",elements:e.elements,appState:e.appState,files:e.files}):null}setTheme(t){if(this._currentTheme=t||"light",this._excalidrawAPI&&this._excalidrawAPI.updateScene){let t=this._resolveTheme(this._currentTheme);this._excalidrawAPI.updateScene({appState:{theme:t}})}}setReadOnly(t){this.options.ViewModeEnabled=!!t,this._excalidrawAPI&&this._excalidrawAPI.updateScene&&this._excalidrawAPI.updateScene({appState:{viewModeEnabled:!!t}})}load(){if("function"!=typeof this.options.OnLoad){if(this.options.DrawingDataAddress){let t=this._readAppData(this.options.DrawingDataAddress);t&&this.setScene(t)}}else this.options.OnLoad(this,(t,e)=>{t?this.log.error("PICT-Excalidraw OnLoad error: ".concat(t.message||t)):e&&this.setScene(e)})}save(){let t=this.getScene();t&&("function"!=typeof this.options.OnSave?this.options.DrawingDataAddress&&this._writeAppData(this.options.DrawingDataAddress,this._cloneScene(t)):this.options.OnSave(this,t,t=>{t&&this.log.error("PICT-Excalidraw OnSave error: ".concat(t.message||t))}))}destroy(){if(!this._destroyed){if(this._destroyed=!0,this._onChangeThrottleHandle&&(clearTimeout(this._onChangeThrottleHandle),this._onChangeThrottleHandle=null),this._lastSeenChangeSnapshot=null,this._pendingDeferredLoad=!1,this._reactRoot){try{this._reactRoot.unmount()}catch(t){this.log.error("PICT-Excalidraw unmount failed: ".concat(t&&t.message))}this._reactRoot=null}if(this.targetElement&&void 0!==this.targetElement.innerHTML)try{this.targetElement.innerHTML=""}catch(t){}this._excalidrawAPI=null,this._wrapElement=null,this._mountElement=null,this._statusElement=null,this.targetElement=!1,this._vendor=null,this.initialRenderComplete=!1}}isDestroyed(){return!!this._destroyed}},e.exports.default_configuration=r},{"../Pict-Section-Excalidraw-DefaultConfiguration.js":18,"pict-view":38}],22:[function(t,e,i){e.exports.attach=function(t){t._createEditorInContainer=function(e,i,n){let r=t._codeMirrorModules,o=[];o.push(r.EditorView.domEventHandlers({keydown:(e,n)=>(e.ctrlKey||e.metaKey)&&"b"===e.key?(e.preventDefault(),t.applyFormatting(i,"bold"),!0):(e.ctrlKey||e.metaKey)&&"i"===e.key?(e.preventDefault(),t.applyFormatting(i,"italic"),!0):(e.ctrlKey||e.metaKey)&&"e"===e.key?(e.preventDefault(),t.applyFormatting(i,"code"),!0):void 0,paste:(e,n)=>{let r=e.clipboardData&&e.clipboardData.items;if(!r)return!1;for(let n=0;n<r.length;n++)if(r[n].type.startsWith("image/")){e.preventDefault();let o=r[n].getAsFile();return o&&t._processImageFile(o,i),!0}return!1},drop:(e,n)=>{if(t._dragSourceIndex>=0)return!1;if(!e.dataTransfer||!e.dataTransfer.files||e.dataTransfer.files.length<1)return!1;let r=e.dataTransfer.files[0];if(r.type&&r.type.startsWith("image/")){e.preventDefault(),e.stopPropagation(),t._processImageFile(r,i);let o=n.dom.closest(".pict-mde-segment-editor");return o&&o.classList.remove("pict-mde-image-dragover"),!0}return!1}})),r.extensions&&Array.isArray(r.extensions)&&(o=o.concat(r.extensions)),o.push(r.EditorView.updateListener.of(e=>{e.docChanged&&t._onSegmentContentChange(i,e.state.doc.toString()),e.focusChanged&&(e.view.hasFocus?(t._setActiveSegment(i),t._updateSidebarPosition(i)):setTimeout(()=>{if(t._activeSegmentIndex===i){let e=document.getElementById("PictMDE-Segment-".concat(i));e&&!e.contains(document.activeElement)&&(t._clearActiveSegment(i),t._resetSidebarPosition(i))}},100)),e.selectionSet&&e.view.hasFocus&&t._updateSidebarPosition(i)}));let a=t._buildDataURICollapseExtension();a&&o.push(a),t.options.ReadOnly&&(o.push(r.EditorState.readOnly.of(!0)),o.push(r.EditorView.editable.of(!1))),o=t.customConfigureExtensions(o,i);let s=r.EditorState.create({doc:n||"",extensions:o}),c=new r.EditorView({state:s,parent:e});t._segmentEditors[i]=c,c.contentDOM.addEventListener("keydown",function(e){if("ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;if(e.shiftKey||e.ctrlKey||e.metaKey||e.altKey)return;let n=c.state,r=n.selection.main.head,o=n.doc.lineAt(r),a=r-o.from;if("ArrowDown"===e.key){if(o.to<n.doc.length)return;let r=t._getOrderedSegmentIndices(),s=t._getLogicalIndex(i);if(s<0||s>=r.length-1)return;let c=r[s+1],l=t._segmentEditors[c];if(!l)return;e.preventDefault(),e.stopPropagation();let p=l.state.doc.line(1),d=Math.min(a,p.to-p.from);l.focus(),l.dispatch({selection:{anchor:p.from+d}}),t._setActiveSegment(c)}else if("ArrowUp"===e.key){if(o.number>1)return;let n=t._getOrderedSegmentIndices(),r=t._getLogicalIndex(i);if(r<=0)return;let s=n[r-1],c=t._segmentEditors[s];if(!c)return;e.preventDefault(),e.stopPropagation();let l=c.state.doc.line(c.state.doc.lines),p=Math.min(a,l.to-l.from);c.focus(),c.dispatch({selection:{anchor:l.from+p}}),t._setActiveSegment(s)}},!0),c.contentDOM.addEventListener("drop",function(e){if(t._dragSourceIndex>=0)return;if(!e.dataTransfer||!e.dataTransfer.files||e.dataTransfer.files.length<1)return;let n=e.dataTransfer.files[0];if(n.type&&n.type.startsWith("image/")){e.preventDefault(),e.stopPropagation(),t._processImageFile(n,i);let r=document.getElementById("PictMDE-SegmentEditor-".concat(i));r&&r.classList.remove("pict-mde-image-dragover")}},!0)},t._buildDataURICollapseExtension=function(){let e=t._codeMirrorModules;if(!(e&&e.Decoration&&e.ViewPlugin&&e.WidgetType))return null;let i=e.Decoration,n=e.ViewPlugin,r=e.WidgetType;class o extends r{constructor(t){super(),this.label=t}toDOM(){let t=document.createElement("span");return t.className="pict-mde-data-uri-collapsed",t.textContent=this.label,t.title="Data URI (click to expand in image preview below)",t}eq(t){return this.label===t.label}}function a(t){let e=[],n=t.state.doc;for(let r of t.visibleRanges){let t,a=r.from,s=r.to,c=n.sliceString(a,s),l=/!\[[^\]]*\]\(data:([^;]+);base64,/g;for(;null!==(t=l.exec(c));){let r=a+t.index+t[0].length,s=-1,c=r,l=n.length,p=Math.min(l,c+5242880),d=4096;for(let t=c;t<p;t+=d){let e=Math.min(t+d,p),i=n.sliceString(t,e).indexOf(")");if(i>=0){s=t+i;break}}if(s<0)continue;let u=s-r;if(u<200)continue;let h,m=Math.round(.75*u);h=m>=1048576?(m/1048576).toFixed(1)+"MB":m>=1024?Math.round(m/1024)+"KB":m+"B";t[1];let g="…".concat(h,")"),f=i.replace({widget:new o(g)});e.push(f.range(r,s+1))}}return i.set(e,!0)}return n.fromClass(class{constructor(t){this.decorations=a(t)}update(t){(t.docChanged||t.viewportChanged)&&(this.decorations=a(t.view))}},{decorations:t=>t.decorations})}}},{}],23:[function(t,e,i){e.exports.attach=function(t){t._wireSegmentDragEvents=function(e,i){let n=e.querySelector(".pict-mde-drag-handle");n&&(n.addEventListener("dragstart",n=>{t._dragSourceIndex=i,n.dataTransfer.effectAllowed="move",n.dataTransfer.setData("text/plain",String(i));let r=t._getContainerElement();r&&r.classList.add("pict-mde-dragging"),setTimeout(()=>{e.style.opacity="0.4"},0)}),n.addEventListener("dragend",()=>{e.style.opacity="",t._dragSourceIndex=-1,t._clearAllDropIndicators();let i=t._getContainerElement();i&&i.classList.remove("pict-mde-dragging")}),e.addEventListener("dragover",i=>{i.preventDefault(),i.dataTransfer.dropEffect="move",t._clearAllDropIndicators();let n=e.getBoundingClientRect(),r=n.top+n.height/2;i.clientY<r?e.classList.add("pict-mde-drag-over-top"):e.classList.add("pict-mde-drag-over-bottom")}),e.addEventListener("dragleave",t=>{e.contains(t.relatedTarget)||(e.classList.remove("pict-mde-drag-over-top"),e.classList.remove("pict-mde-drag-over-bottom"))}),e.addEventListener("drop",n=>{n.preventDefault();let r=e.classList.contains("pict-mde-drag-over-bottom");t._clearAllDropIndicators();let o=t._dragSourceIndex;o<0||o===i||t._reorderSegment(o,i,r)}))},t._clearAllDropIndicators=function(){let e=t._getContainerElement();if(!e)return;let i=e.querySelectorAll(".pict-mde-segment");for(let t=0;t<i.length;t++)i[t].classList.remove("pict-mde-drag-over-top"),i[t].classList.remove("pict-mde-drag-over-bottom")},t._reorderSegment=function(e,i,n){let r=t._getLogicalIndex(e),o=t._getLogicalIndex(i);if(r<0||o<0)return void t.log.warn("PICT-MarkdownEditor _reorderSegment: could not resolve logical indices (from=".concat(r,", to=").concat(o,")."));if(r===o)return;t._marshalAllEditorsToData();let a=t._getSegmentsFromData();if(!a||a.length<2)return;let s=n?o+1:o;if(r<s&&s--,s===r)return;let c=a.splice(r,1)[0];a.splice(s,0,c),t._setSegmentsToData(a),t._reorderHiddenPreviewState(r,s),t._reorderSegmentTabStates(r,s),t._buildEditorUI()},t._reorderHiddenPreviewState=function(e,i){if(e===i)return;let n=Object.keys(t._hiddenPreviewSegments).map(t=>parseInt(t,10));if(0===n.length)return;let r=Math.max(...n,e,i),o=[];for(let e=0;e<=r;e++)o.push(!!t._hiddenPreviewSegments[e]);let a=o.splice(e,1)[0];o.splice(i,0,a),t._hiddenPreviewSegments={};for(let e=0;e<o.length;e++)o[e]&&(t._hiddenPreviewSegments[e]=!0)},t._swapHiddenPreviewState=function(e,i){let n=!!t._hiddenPreviewSegments[e];!!t._hiddenPreviewSegments[i]?t._hiddenPreviewSegments[e]=!0:delete t._hiddenPreviewSegments[e],n?t._hiddenPreviewSegments[i]=!0:delete t._hiddenPreviewSegments[i]},t._reorderSegmentTabStates=function(e,i){if(e===i)return;let n=Object.keys(t._segmentTabStates).map(t=>parseInt(t,10));if(0===n.length)return;let r=Math.max(...n,e,i),o=[];for(let e=0;e<=r;e++)o.push(t._segmentTabStates[e]||"editor");let a=o.splice(e,1)[0];o.splice(i,0,a),t._segmentTabStates={};for(let e=0;e<o.length;e++)"editor"!==o[e]&&(t._segmentTabStates[e]=o[e])},t._swapSegmentTabStates=function(e,i){let n=t._segmentTabStates[e]||"editor",r=t._segmentTabStates[i]||"editor";"editor"!==r?t._segmentTabStates[e]=r:delete t._segmentTabStates[e],"editor"!==n?t._segmentTabStates[i]=n:delete t._segmentTabStates[i]},t._setActiveSegment=function(e){if(t._activeSegmentIndex>=0&&t._activeSegmentIndex!==e){let e=document.getElementById("PictMDE-Segment-".concat(t._activeSegmentIndex));e&&e.classList.remove("pict-mde-active")}t._activeSegmentIndex=e;let i=document.getElementById("PictMDE-Segment-".concat(e));i&&i.classList.add("pict-mde-active")},t._clearActiveSegment=function(e){t._activeSegmentIndex===e&&(t._activeSegmentIndex=-1);let i=document.getElementById("PictMDE-Segment-".concat(e));i&&i.classList.remove("pict-mde-active"),t._resetSidebarPosition(e)},t._updateSidebarPosition=function(e){let i=document.getElementById("PictMDE-Segment-".concat(e));if(!i)return;let n=i.querySelector(".pict-mde-quadrant-tr");if(!n)return;let r=t._segmentEditors[e];if(!r)return;let o=r.state.selection.main.head,a=r.coordsAtPos(o);if(!a)return void t._resetSidebarPosition(e);let s=i.getBoundingClientRect(),c=a.top-s.top,l=n.offsetHeight||0,p=i.offsetHeight||0,d=Math.max(0,p-l);c=Math.max(0,Math.min(c,d)),n.classList.add("pict-mde-sidebar-at-cursor"),n.style.setProperty("--pict-mde-sidebar-top","".concat(c,"px"))},t._resetSidebarPosition=function(t){let e=document.getElementById("PictMDE-Segment-".concat(t));if(!e)return;let i=e.querySelector(".pict-mde-quadrant-tr");i&&(i.classList.remove("pict-mde-sidebar-at-cursor"),i.style.removeProperty("--pict-mde-sidebar-top"))}}},{}],24:[function(t,e,i){const n={bold:{wrap:"**"},italic:{wrap:"*"},code:{wrap:"`"},heading:{prefix:"# "},link:{before:"[",after:"](url)"}};e.exports.attach=function(t){t.applyFormatting=function(e,i){let r=t._segmentEditors[e];if(!r)return void t.log.warn("PICT-MarkdownEditor applyFormatting: no editor for segment ".concat(e,"."));let o=n[i];if(!o)return void t.log.warn('PICT-MarkdownEditor applyFormatting: unknown format type "'.concat(i,'".'));let a,s,c=r.state,l=c.selection.main,p=l.from,d=l.to,u=p!==d,h=u?c.sliceDoc(p,d):"";if(o.wrap){let t=o.wrap;if(u){let e=c.sliceDoc(Math.max(0,p-t.length),p),i=c.sliceDoc(d,Math.min(c.doc.length,d+t.length));if(e===t&&i===t)return a=[{from:p-t.length,to:p,insert:""},{from:d,to:d+t.length,insert:""}],s=p-t.length,void r.dispatch({changes:a,selection:{anchor:s,head:s+h.length}});a={from:p,to:d,insert:t+h+t},s=p+t.length,r.dispatch({changes:a,selection:{anchor:s,head:s+h.length}})}else{a={from:p,insert:t+t},s=p+t.length,r.dispatch({changes:a,selection:{anchor:s}})}}else if(o.prefix){let t=c.doc.lineAt(p);a=t.text.startsWith(o.prefix)?{from:t.from,to:t.from+o.prefix.length,insert:""}:{from:t.from,insert:o.prefix},r.dispatch({changes:a})}else if(o.before&&o.after)if(u){a={from:p,to:d,insert:o.before+h+o.after},s=p+o.before.length+h.length+2,r.dispatch({changes:a,selection:{anchor:s,head:s+3}})}else{a={from:p,insert:o.before+o.after},s=p+o.before.length,r.dispatch({changes:a,selection:{anchor:s}})}r.focus()}}},{}],25:[function(t,e,i){e.exports.attach=function(t){t.openImagePicker=function(e){let i=document.getElementById("PictMDE-ImageInput-".concat(e));i?(i.onchange=()=>{i.files&&i.files.length>0&&t._processImageFile(i.files[0],e),i.value=""},i.click()):t.log.warn("PICT-MarkdownEditor openImagePicker: file input not found for segment ".concat(e,"."))},t._processImageFile=function(e,i){if(!e||!e.type||!e.type.startsWith("image/"))return void t.log.warn("PICT-MarkdownEditor _processImageFile: not an image file (type: ".concat(e?e.type:"null",")."));let n=e.name?e.name.replace(/\.[^.]+$/,""):"image";if(t.onImageUpload(e,i,(e,r)=>{e?t.log.error("PICT-MarkdownEditor image upload error: ".concat(e)):r&&t._insertImageMarkdown(i,r,n)}))return;if("undefined"==typeof FileReader)return void t.log.error("PICT-MarkdownEditor _processImageFile: FileReader not available in this environment.");let r=new FileReader;r.onload=()=>{t._insertImageMarkdown(i,r.result,n)},r.onerror=()=>{t.log.error("PICT-MarkdownEditor _processImageFile: FileReader error.")},r.readAsDataURL(e)},t._insertImageMarkdown=function(e,i,n){let r=t._segmentEditors[e];if(!r)return void t.log.warn("PICT-MarkdownEditor _insertImageMarkdown: no editor for segment ".concat(e,"."));let o="![".concat(n||"image","](").concat(i,")"),a=r.state.selection.main.head;r.dispatch({changes:{from:a,insert:o},selection:{anchor:a+o.length}}),r.focus(),t._updateImagePreviews(e)},t._updateImagePreviews=function(e){let i=document.getElementById("PictMDE-ImagePreview-".concat(e));if(!i)return;let n=t._segmentEditors[e];if(!n)return i.innerHTML="",void i.classList.remove("pict-mde-has-images");let r,o=n.state.doc.toString(),a=/!\[([^\]]*)\]\(([^)]+)\)/g,s=[];for(;null!==(r=a.exec(o));)s.push({alt:r[1]||"image",url:r[2]});if(0===s.length)return i.innerHTML="",void i.classList.remove("pict-mde-has-images");let c="";for(let e=0;e<s.length;e++){let i=s[e].alt.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),n=t._resolveImageURL(s[e].url).replace(/&/g,"&amp;").replace(/"/g,"&quot;");c+='<div class="pict-mde-image-preview-item"><img src="'.concat(n,'" alt="').concat(i,'" /><span class="pict-mde-image-preview-label">').concat(i,"</span></div>")}i.innerHTML=c,i.classList.add("pict-mde-has-images")},t._wireImageDragEvents=function(e,i){e.addEventListener("dragover",i=>{t._dragSourceIndex>=0||!i.dataTransfer||!i.dataTransfer.types||i.dataTransfer.types.indexOf("Files")<0||(i.preventDefault(),i.dataTransfer.dropEffect="copy",e.classList.add("pict-mde-image-dragover"))}),e.addEventListener("dragleave",t=>{e.contains(t.relatedTarget)||e.classList.remove("pict-mde-image-dragover")}),e.addEventListener("drop",n=>{if(e.classList.remove("pict-mde-image-dragover"),t._dragSourceIndex>=0)return;if(!n.dataTransfer||!n.dataTransfer.files||n.dataTransfer.files.length<1)return;let r=n.dataTransfer.files[0];r.type&&r.type.startsWith("image/")&&(n.preventDefault(),n.stopPropagation(),t._processImageFile(r,i))})}}},{}],26:[function(t,e,i){const n=t("pict-section-content").PictContentProvider;e.exports.attach=function(e){e._getContentProvider=function(){return e._contentProvider||(e._contentProvider=new n(e.fable,{},"Pict-Content-Provider-MDE")),e._contentProvider},e._updateRichPreviews=function(t){if(!e.options.EnableRichPreview)return;let i=document.getElementById("PictMDE-RichPreview-".concat(t));if(!i)return;let n=e._segmentEditors[t];if(!n)return i.innerHTML="",void i.classList.remove("pict-mde-has-rich-preview");let r=n.state.doc.toString();if(!r||0===r.trim().length)return i.innerHTML="",void i.classList.remove("pict-mde-has-rich-preview");let o=e._getContentProvider(),a=null;e.pict&&e.pict.providers&&e.pict.providers.Vocabulary&&"function"==typeof e.pict.providers.Vocabulary.getResolver&&(a=e.pict.providers.Vocabulary.getResolver());let s=o.parseMarkdown(r,null,null,a);if(!s||0===s.trim().length)return i.innerHTML="",void i.classList.remove("pict-mde-has-rich-preview");let c="PictMDE-RichPreviewBody-".concat(t);if(i.innerHTML='<div class="pict-content" id="'.concat(c,'">').concat(s,"</div>"),i.classList.add("pict-mde-has-rich-preview"),e.pict&&e.pict.providers&&e.pict.providers.Vocabulary&&"function"==typeof e.pict.providers.Vocabulary.wirePopovers&&e.pict.providers.Vocabulary.wirePopovers("#"+c),e.options.ImageBaseURL){let t=i.querySelectorAll("img");for(let i=0;i<t.length;i++){let n=t[i].getAttribute("src");if(n){let r=e._resolveImageURL(n);r!==n&&t[i].setAttribute("src",r)}}}let l=(e._richPreviewGenerations[t]||0)+1;e._richPreviewGenerations[t]=l,e._postRenderMermaid(c,t,l),e._postRenderKaTeX(c)},e._ensureMermaidAdapter=function(){if(e._mermaidAdapter)return e._mermaidAdapter;if("undefined"==typeof mermaid||"undefined"==typeof window)return null;let i=e.pict&&e.pict.providers&&e.pict.providers.Theme;try{if(i&&i.diagram&&"function"==typeof i.diagram.adaptMermaid)e._mermaidAdapter=i.diagram.adaptMermaid(mermaid,{});else{let i=t("pict-provider-theme/source/Theme-Diagram-Adapter.js");i.initializeMermaid(mermaid),e._mermaidAdapter={refresh:function(){return i.refreshMermaidDiagrams()},reinitialize:function(){i.initializeMermaid(mermaid)},dispose:function(){},subscribed:!1}}}catch(t){e.log.warn("PICT-MarkdownEditor mermaid theme adapter init failed: ".concat(t.message||t)),e._mermaidAdapter=null}return e._mermaidAdapter},e._postRenderMermaid=function(t,i,n){if("undefined"==typeof mermaid)return;let r=document.getElementById(t);if(!r)return;let o=r.querySelectorAll("pre.mermaid");if(o.length<1)return;e._ensureMermaidAdapter();let a=e.pict&&e.pict.providers&&e.pict.providers.Theme;if(a&&a.diagram&&"function"==typeof a.diagram.stashMermaidSource)a.diagram.stashMermaidSource(o);else for(let t=0;t<o.length;t++){let e=o[t];e.hasAttribute("data-mermaid-source")||e.setAttribute("data-mermaid-source",e.textContent)}try{let t=mermaid.run({nodes:o});t&&"function"==typeof t.catch&&t.catch(t=>{(-1===i?e._renderedViewGeneration:e._richPreviewGenerations[i])===n&&e.log.warn("PICT-MarkdownEditor mermaid render error: ".concat(t.message||t))})}catch(t){e.log.warn("PICT-MarkdownEditor mermaid render error: ".concat(t.message||t))}},e._postRenderKaTeX=function(t){if("undefined"==typeof katex)return;let i=document.getElementById(t);if(!i)return;let n=i.querySelectorAll(".pict-content-katex-inline");for(let t=0;t<n.length;t++)try{katex.render(n[t].textContent,n[t],{throwOnError:!1,displayMode:!1})}catch(t){e.log.warn("PICT-MarkdownEditor KaTeX inline error: ".concat(t.message||t))}let r=i.querySelectorAll(".pict-content-katex-display");for(let t=0;t<r.length;t++)try{katex.render(r[t].textContent,r[t],{throwOnError:!1,displayMode:!0})}catch(t){e.log.warn("PICT-MarkdownEditor KaTeX display error: ".concat(t.message||t))}},e._escapeHTMLForPreview=function(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},e.toggleRenderedView=function(t){e._renderedViewActive="boolean"==typeof t?t:!e._renderedViewActive,e._renderedViewActive?e._renderRenderedView():e._restoreEditingView()},e._renderRenderedView=function(){let t=e._getContainerElement();if(!t)return;e._marshalAllEditorsToData();let i=e._getSegmentsFromData(),n="";if(i&&i.length>0){let t=[];for(let e=0;e<i.length;e++)t.push(i[e].Content||"");n=t.join("\n\n")}for(let t in e._segmentEditors)e._segmentEditors[t]&&e._segmentEditors[t].destroy();e._segmentEditors={};let r=e._getContentProvider().parseMarkdown(n),o="PictMDE-RenderedView";if(t.innerHTML='<div class="pict-mde-rendered-view" id="'.concat(o,'"><div class="pict-content">').concat(r||"","</div></div>"),t.classList.add("pict-mde-rendered-mode"),e.options.ImageBaseURL){let i=t.querySelectorAll(".pict-mde-rendered-view img");for(let t=0;t<i.length;t++){let n=i[t].getAttribute("src");if(n){let r=e._resolveImageURL(n);r!==n&&i[t].setAttribute("src",r)}}}e._renderedViewGeneration++;let a=e._renderedViewGeneration,s=t.querySelector("#".concat(o," .pict-content"));if(s){let t="PictMDE-RenderedViewContent";s.id=t,e._postRenderMermaid(t,-1,a),e._postRenderKaTeX(t)}},e._restoreEditingView=function(){let t=e._getContainerElement();t&&(t.classList.remove("pict-mde-rendered-mode"),e._buildEditorUI())}}},{"pict-provider-theme/source/Theme-Diagram-Adapter.js":7,"pict-section-content":14}],27:[function(t,e,i){e.exports={DefaultRenderable:"MarkdownEditor-Wrap",DefaultDestinationAddress:"#MarkdownEditor-Container-Div",Templates:[{Hash:"MarkdownEditor-Container",Template:'<div class="pict-mde" id="PictMDE-Container"></div>'},{Hash:"MarkdownEditor-Segment",Template:'<div class="pict-mde-segment" id="PictMDE-Segment-{~D:Record.SegmentIndex~}" data-segment-index="{~D:Record.SegmentIndex~}">\n\t<div class="pict-mde-left-controls">\n\t\t<div class="pict-mde-quadrant-tl"></div>\n\t\t<div class="pict-mde-quadrant-bl"></div>\n\t</div>\n\t<div class="pict-mde-drag-handle" draggable="true" title="Drag to reorder"></div>\n\t<div class="pict-mde-segment-body">\n\t\t<div class="pict-mde-tab-bar" id="PictMDE-TabBar-{~D:Record.SegmentIndex~}">\n\t\t\t<button type="button" class="pict-mde-tab pict-mde-tab-active" data-tab="editor" onclick="{~D:Record.ViewIdentifier~}.switchSegmentTab({~D:Record.SegmentIndex~}, \'editor\')">Edit</button>\n\t\t\t<button type="button" class="pict-mde-tab" data-tab="preview" onclick="{~D:Record.ViewIdentifier~}.switchSegmentTab({~D:Record.SegmentIndex~}, \'preview\')">Preview</button>\n\t\t</div>\n\t\t<div class="pict-mde-segment-editor" id="PictMDE-SegmentEditor-{~D:Record.SegmentIndex~}"></div>\n\t\t<div class="pict-mde-preview-pane" id="PictMDE-PreviewPane-{~D:Record.SegmentIndex~}">\n\t\t\t<div class="pict-mde-image-preview" id="PictMDE-ImagePreview-{~D:Record.SegmentIndex~}"></div>\n\t\t\t<div class="pict-mde-rich-preview" id="PictMDE-RichPreview-{~D:Record.SegmentIndex~}"></div>\n\t\t</div>\n\t</div>\n\t<div class="pict-mde-sidebar" id="PictMDE-Sidebar-{~D:Record.SegmentIndex~}">\n\t\t<div class="pict-mde-quadrant-tr"></div>\n\t\t<div class="pict-mde-quadrant-br"></div>\n\t\t<input type="file" accept="image/*" class="pict-mde-image-input" id="PictMDE-ImageInput-{~D:Record.SegmentIndex~}" style="display:none" />\n\t</div>\n</div>'},{Hash:"MarkdownEditor-AddSegment",Template:'<div class="pict-mde-add-segment">\n\t<button type="button" class="pict-mde-btn-add" onclick="{~D:Record.ViewIdentifier~}.addSegment()">+ Add Segment</button>\n</div>'}],Renderables:[{RenderableHash:"MarkdownEditor-Wrap",TemplateHash:"MarkdownEditor-Container",DestinationAddress:"#MarkdownEditor-Container-Div"}],TargetElementAddress:"#MarkdownEditor-Container-Div",ContentDataAddress:!1,ReadOnly:!1,EnableRichPreview:!0,DefaultPreviewMode:"off",ImageBaseURL:"",ButtonsTL:[{HTML:"{~I:Close~}",Action:"removeSegment",Class:"pict-mde-btn-remove",Title:"Remove Segment"}],ButtonsBL:[{HTML:"{~I:ArrowUp~}",Action:"moveSegmentUp",Class:"pict-mde-btn-move",Title:"Move Up"},{HTML:"{~I:ArrowDown~}",Action:"moveSegmentDown",Class:"pict-mde-btn-move",Title:"Move Down"},{HTML:"{~I:Settings~}",Action:"toggleControls",Class:"pict-mde-btn-linenums",Title:"Toggle Controls"},{HTML:"{~I:Eye~}",Action:"cyclePreviewMode",Class:"pict-mde-btn-preview",Title:"Cycle Preview Mode"}],ButtonsTR:[{HTML:"<b>B</b>",Action:"applyFormatting:bold",Class:"",Title:"Bold (Ctrl+B)"},{HTML:"<i>I</i>",Action:"applyFormatting:italic",Class:"",Title:"Italic (Ctrl+I)"},{HTML:"<code>&lt;&gt;</code>",Action:"applyFormatting:code",Class:"",Title:"Inline Code (Ctrl+E)"},{HTML:"#",Action:"applyFormatting:heading",Class:"",Title:"Heading"},{HTML:"[&thinsp;]",Action:"applyFormatting:link",Class:"",Title:"Link"},{HTML:"{~I:Image~}",Action:"openImagePicker",Class:"pict-mde-sidebar-btn-image",Title:"Insert Image"}],ButtonsBR:[],CSS:"\n/* ---- Container ---- */\n.pict-mde\n{\n\tfont-family: var(--theme-typography-family-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\n\tfont-size: 14px;\n}\n\n/* ---- Segment row: left-controls | drag-handle | editor body | sidebar ---- */\n.pict-mde-segment\n{\n\tposition: relative;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: stretch;\n\tmargin-bottom: 6px;\n\tmin-height: 48px;\n\ttransition: background-color 0.15s ease;\n}\n\n/* ---- Left controls column ---- */\n.pict-mde-left-controls\n{\n\tflex: 0 0 22px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 2px 0;\n}\n\n/* ---- Left-side quadrants ---- */\n.pict-mde-quadrant-tl\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tposition: sticky;\n\ttop: 2px;\n\tz-index: 2;\n}\n.pict-mde-quadrant-bl\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 1px;\n\tposition: sticky;\n\tbottom: 2px;\n\tz-index: 2;\n}\n\n/* ---- Left-side buttons (shared base) ---- */\n.pict-mde-left-btn\n{\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-size: 12px;\n\tpadding: 0;\n\tcolor: var(--theme-color-text-muted, #888);\n\tline-height: 1;\n\tfont-family: inherit;\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n}\n.pict-mde-segment:hover .pict-mde-left-btn,\n.pict-mde-segment.pict-mde-active .pict-mde-left-btn\n{\n\topacity: 1;\n}\n.pict-mde-left-btn:hover\n{\n\tcolor: var(--theme-color-text-primary, #222);\n}\n.pict-mde-btn-remove:hover\n{\n\tcolor: var(--theme-color-status-error, #CC3333);\n}\n.pict-mde-btn-linenums\n{\n\tfont-size: 11px;\n\tfont-weight: 600;\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n}\n/* Highlight when controls are active */\n.pict-mde.pict-mde-controls-on .pict-mde-btn-linenums\n{\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n}\n.pict-mde-btn-preview\n{\n\tfont-size: 11px;\n}\n/* Preview button: highlight when any preview mode is active */\n.pict-mde.pict-mde-preview-bottom .pict-mde-btn-preview,\n.pict-mde.pict-mde-preview-side .pict-mde-btn-preview,\n.pict-mde.pict-mde-preview-tabbed .pict-mde-btn-preview\n{\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n}\n/* Dim preview button when mode is off */\n.pict-mde.pict-mde-preview-off .pict-mde-btn-preview\n{\n\tcolor: var(--theme-color-border-default, #CCC);\n}\n\n/* ---- Drag handle (simple grey bar) ---- */\n.pict-mde-drag-handle\n{\n\tflex: 0 0 8px;\n\tcursor: grab;\n\tbackground: var(--theme-color-background-tertiary, #EDEDED);\n\ttransition: background-color 0.15s ease;\n\tuser-select: none;\n}\n.pict-mde-drag-handle:active\n{\n\tcursor: grabbing;\n}\n.pict-mde-drag-handle:hover\n{\n\tbackground: var(--theme-color-border-default, #C8C8C8);\n}\n\n/* ---- Editor body (middle column) ---- */\n.pict-mde-segment-body\n{\n\tflex: 1 1 0%;\n\tmin-width: 0;\n\toverflow: hidden;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\ttransition: background-color 0.15s ease;\n}\n.pict-mde-segment-editor\n{\n\tmin-height: 48px;\n}\n\n/* ---- Image preview area below the editor ---- */\n.pict-mde-image-preview\n{\n\tdisplay: none;\n}\n.pict-mde-image-preview.pict-mde-has-images\n{\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tpadding: 8px 12px;\n\tborder-top: 1px solid var(--theme-color-border-light, #EDEDED);\n}\n.pict-mde-image-preview img\n{\n\tmax-width: 200px;\n\tmax-height: 150px;\n\tborder-radius: 3px;\n\tborder: 1px solid var(--theme-color-border-default, #E0E0E0);\n\tobject-fit: contain;\n\tbackground: var(--theme-color-background-secondary, #F8F8F8);\n}\n.pict-mde-image-preview-item\n{\n\tposition: relative;\n\tdisplay: inline-block;\n}\n.pict-mde-image-preview-label\n{\n\tdisplay: block;\n\tfont-size: 10px;\n\tcolor: var(--theme-color-text-muted, #999);\n\tmargin-top: 2px;\n\tmax-width: 200px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n/* ---- Rich content preview area (rendered via pict-section-content) ---- */\n.pict-mde-rich-preview\n{\n\tdisplay: none;\n}\n.pict-mde-rich-preview.pict-mde-has-rich-preview\n{\n\tdisplay: block;\n\tborder-top: 1px solid var(--theme-color-border-light, #EDEDED);\n\tbackground: var(--theme-color-background-panel, #FCFCFC);\n\toverflow: hidden;\n}\n/* Constrain images in the rich preview even if pict-section-content CSS loads late */\n.pict-mde-rich-preview img\n{\n\tmax-width: 100%;\n\theight: auto;\n}\n/* ---- Preview layout modes ---- */\n\n/* Tab bar: hidden by default, shown only in tabbed mode */\n.pict-mde-tab-bar\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-preview-tabbed .pict-mde-tab-bar\n{\n\tdisplay: flex;\n\tgap: 0;\n\tborder-bottom: 1px solid var(--theme-color-border-light, #EDEDED);\n\tbackground: var(--theme-color-background-secondary, #F8F8F8);\n}\n.pict-mde-tab\n{\n\tpadding: 4px 12px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-size: 12px;\n\tcolor: var(--theme-color-text-muted, #888);\n\tborder-bottom: 2px solid transparent;\n\tfont-family: inherit;\n}\n.pict-mde-tab:hover\n{\n\tcolor: var(--theme-color-text-primary, #222);\n}\n.pict-mde-tab.pict-mde-tab-active\n{\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n\tborder-bottom-color: var(--theme-color-brand-primary, #4A90D9);\n}\n\n/* Off mode: hide all preview panes and tab bars */\n.pict-mde.pict-mde-preview-off .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-preview-off .pict-mde-tab-bar\n{\n\tdisplay: none;\n}\n/* Legacy class alias for backward compatibility */\n.pict-mde.pict-mde-previews-hidden .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n\n/* Bottom mode: vertical stacking (default flex-column behavior) */\n.pict-mde.pict-mde-preview-bottom .pict-mde-segment-body\n{\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n/* Side-by-side mode: editor and preview side by side */\n.pict-mde.pict-mde-preview-side .pict-mde-segment-body\n{\n\tdisplay: flex;\n\tflex-direction: row;\n}\n.pict-mde.pict-mde-preview-side .pict-mde-segment-editor\n{\n\tflex: 1 1 50%;\n\tmin-width: 0;\n\toverflow: hidden;\n}\n.pict-mde.pict-mde-preview-side .pict-mde-preview-pane\n{\n\tflex: 1 1 50%;\n\tmin-width: 0;\n\toverflow: auto;\n\tborder-left: 1px solid var(--theme-color-border-light, #EDEDED);\n}\n/* Side-by-side: remove top borders since preview is beside, not below */\n.pict-mde.pict-mde-preview-side .pict-mde-rich-preview.pict-mde-has-rich-preview\n{\n\tborder-top: none;\n}\n.pict-mde.pict-mde-preview-side .pict-mde-image-preview.pict-mde-has-images\n{\n\tborder-top: none;\n}\n\n/* Tabbed mode: default hides preview, shows editor */\n.pict-mde.pict-mde-preview-tabbed .pict-mde-segment-body\n{\n\tdisplay: flex;\n\tflex-direction: column;\n}\n.pict-mde.pict-mde-preview-tabbed .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n/* Tabbed mode: when showing preview, hide editor and show preview */\n.pict-mde.pict-mde-preview-tabbed .pict-mde-segment.pict-mde-tab-showing-preview .pict-mde-segment-editor\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-preview-tabbed .pict-mde-segment.pict-mde-tab-showing-preview .pict-mde-preview-pane\n{\n\tdisplay: block;\n}\n\n/* Per-segment preview hide: only applies in bottom and side modes */\n.pict-mde.pict-mde-preview-bottom .pict-mde-segment.pict-mde-preview-hidden .pict-mde-preview-pane,\n.pict-mde.pict-mde-preview-side .pict-mde-segment.pict-mde-preview-hidden .pict-mde-preview-pane\n{\n\tdisplay: none;\n}\n/* Constrain the pict-content inside the preview to fit the segment */\n.pict-mde-rich-preview .pict-content\n{\n\tpadding: 12px;\n\tmax-width: none;\n\tmargin: 0;\n\tfont-size: 13px;\n}\n/* Reduce heading sizes in the preview to be proportional */\n.pict-mde-rich-preview .pict-content h1\n{\n\tfont-size: 1.4em;\n\tmargin-top: 0;\n}\n.pict-mde-rich-preview .pict-content h2\n{\n\tfont-size: 1.2em;\n\tmargin-top: 0.75em;\n}\n.pict-mde-rich-preview .pict-content h3\n{\n\tfont-size: 1.1em;\n\tmargin-top: 0.6em;\n}\n\n/* ---- Rendered view (full document preview mode) ---- */\n.pict-mde-rendered-view\n{\n\tpadding: 16px 20px;\n\tbackground: var(--theme-color-background-panel, #FFFFFF);\n\tmin-height: 120px;\n}\n.pict-mde-rendered-view .pict-content\n{\n\tmax-width: none;\n\tmargin: 0;\n}\n/* Hide the add-segment button in rendered mode */\n.pict-mde.pict-mde-rendered-mode .pict-mde-add-segment\n{\n\tdisplay: none;\n}\n\n/* Focused / active editor gets subtle warm background */\n.pict-mde-segment.pict-mde-active .pict-mde-segment-body\n{\n\tbackground: var(--theme-color-background-secondary, #FAFAF5);\n}\n.pict-mde-segment.pict-mde-active .pict-mde-drag-handle\n{\n\tbackground: var(--theme-color-border-strong, #9CB4C8);\n}\n\n/* ---- Right sidebar column ---- */\n.pict-mde-sidebar\n{\n\tflex: 0 0 30px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n\tjustify-content: space-between;\n\tposition: relative;\n}\n\n/* ---- Right-side quadrants ---- */\n.pict-mde-quadrant-tr\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 1px;\n\tpadding: 4px 0;\n\twidth: 100%;\n\topacity: 0;\n\ttransition: opacity 0.15s ease, top 0.1s ease;\n\tposition: sticky;\n\ttop: 0;\n}\n.pict-mde-quadrant-br\n{\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 1px;\n\tpadding: 4px 0;\n\twidth: 100%;\n\topacity: 0;\n\ttransition: opacity 0.15s ease;\n\tposition: sticky;\n\tbottom: 0;\n}\n\n/* Active segment always shows its right-side quadrants */\n.pict-mde-segment.pict-mde-active .pict-mde-quadrant-tr,\n.pict-mde-segment.pict-mde-active .pict-mde-quadrant-br\n{\n\topacity: 1;\n}\n/* When no segment is active, hovering shows both left + right controls */\n.pict-mde:not(:has(.pict-mde-active)) .pict-mde-segment:hover .pict-mde-quadrant-tr,\n.pict-mde:not(:has(.pict-mde-active)) .pict-mde-segment:hover .pict-mde-quadrant-br\n{\n\topacity: 1;\n}\n\n/* ---- Controls-hidden mode: right quadrants show faintly on hover ---- */\n.pict-mde.pict-mde-controls-hidden .pict-mde-quadrant-tr,\n.pict-mde.pict-mde-controls-hidden .pict-mde-quadrant-br\n{\n\topacity: 0;\n}\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment:hover .pict-mde-quadrant-tr,\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment:hover .pict-mde-quadrant-br\n{\n\topacity: 0.3;\n}\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment.pict-mde-active .pict-mde-quadrant-tr,\n.pict-mde.pict-mde-controls-hidden .pict-mde-segment.pict-mde-active .pict-mde-quadrant-br\n{\n\topacity: 0.3;\n}\n\n/* When JS sets a cursor-relative offset, switch TR from sticky to absolute positioning */\n.pict-mde-quadrant-tr.pict-mde-sidebar-at-cursor\n{\n\tposition: absolute;\n\ttop: var(--pict-mde-sidebar-top, 0px);\n}\n\n/* ---- Right-side buttons (shared base) ---- */\n.pict-mde-sidebar-btn\n{\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 24px;\n\theight: 22px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-size: 12px;\n\tpadding: 0;\n\tborder-radius: 3px;\n\tcolor: var(--theme-color-text-secondary, #666);\n\tline-height: 1;\n\tfont-family: inherit;\n}\n.pict-mde-sidebar-btn:hover\n{\n\tcolor: var(--theme-color-text-primary, #222);\n}\n.pict-mde-sidebar-btn b\n{\n\tfont-size: 13px;\n\tfont-weight: 700;\n}\n.pict-mde-sidebar-btn i\n{\n\tfont-size: 13px;\n\tfont-style: italic;\n}\n.pict-mde-sidebar-btn code\n{\n\tfont-size: 10px;\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n}\n\n/* ---- Add segment button ---- */\n.pict-mde-add-segment\n{\n\tmargin-top: 6px;\n\tpadding-left: 30px;\n}\n.pict-mde-btn-add\n{\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 7px;\n\tborder: 2px dashed var(--theme-color-border-default, #D0D0D0);\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: var(--theme-color-text-muted, #999);\n\tfont-size: 12px;\n\tfont-weight: 600;\n\tcursor: pointer;\n\ttransition: all 0.15s ease;\n}\n.pict-mde-btn-add:hover\n{\n\tborder-color: var(--theme-color-brand-primary, #4A90D9);\n\tcolor: var(--theme-color-brand-primary, #4A90D9);\n\tbackground: rgba(74, 144, 217, 0.04);\n}\n\n/* ---- Image drag-over indicator ---- */\n.pict-mde-segment-editor.pict-mde-image-dragover\n{\n\toutline: 2px dashed var(--theme-color-brand-primary, #4A90D9);\n\toutline-offset: -2px;\n}\n\n/* ---- Drag-in-progress: prevent CodeMirror from intercepting drop events ---- */\n.pict-mde.pict-mde-dragging .pict-mde-segment-editor\n{\n\tpointer-events: none;\n}\n\n/* ---- Drop target indicators for drag reorder ---- */\n.pict-mde-segment.pict-mde-drag-over-top\n{\n\tbox-shadow: 0 -2px 0 0 var(--theme-color-brand-primary, #4A90D9);\n}\n.pict-mde-segment.pict-mde-drag-over-bottom\n{\n\tbox-shadow: 0 2px 0 0 var(--theme-color-brand-primary, #4A90D9);\n}\n\n/* ---- CodeMirror overrides inside segments ---- */\n.pict-mde-segment-editor .cm-editor\n{\n\tborder: none;\n}\n.pict-mde-segment-editor .cm-editor .cm-scroller\n{\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace);\n\tfont-size: 14px;\n\tline-height: 1.6;\n}\n.pict-mde-segment-editor .cm-editor.cm-focused\n{\n\toutline: none;\n}\n.pict-mde-segment-editor .cm-editor .cm-content\n{\n\tpadding: 8px 12px;\n\tmin-height: 36px;\n}\n.pict-mde-segment-editor .cm-editor .cm-gutters\n{\n\tbackground: var(--theme-color-background-secondary, #F8F8F8);\n\tborder-right: 1px solid var(--theme-color-border-light, #E8E8E8);\n\tcolor: var(--theme-color-text-muted, #BBB);\n}\n\n/* ---- Collapsed data URI widget ---- */\n.pict-mde-data-uri-collapsed\n{\n\tdisplay: inline;\n\tbackground: var(--theme-color-background-tertiary, #F0F0F0);\n\tcolor: var(--theme-color-text-muted, #888);\n\tfont-size: 11px;\n\tpadding: 1px 4px;\n\tborder-radius: 3px;\n\tborder: 1px solid var(--theme-color-border-default, #E0E0E0);\n\tfont-family: var(--theme-typography-family-mono, 'SFMono-Regular', 'SF Mono', 'Menlo', monospace);\n\tcursor: default;\n\twhite-space: nowrap;\n}\n\n/* ---- Line number / controls toggle: gutters hidden by default ---- */\n.pict-mde .cm-editor .cm-gutters\n{\n\tdisplay: none;\n}\n.pict-mde.pict-mde-controls-on .cm-editor .cm-gutters\n{\n\tdisplay: flex;\n}\n\n/* ============================================\n RESPONSIVE: Tablet / Phone (max-width: 768px)\n ============================================ */\n@media (max-width: 768px)\n{\n\t/* Prevent any horizontal overflow in the editor */\n\t.pict-mde\n\t{\n\t\toverflow-x: hidden;\n\t\tmax-width: 100%;\n\t}\n\n\t/* Reduce the left controls column width */\n\t.pict-mde-left-controls\n\t{\n\t\tflex: 0 0 16px;\n\t}\n\t.pict-mde-left-btn\n\t{\n\t\twidth: 16px;\n\t\theight: 18px;\n\t\tfont-size: 10px;\n\t}\n\n\t/* Make left-side buttons always visible on touch (no hover) */\n\t.pict-mde-left-btn\n\t{\n\t\topacity: 0.6;\n\t}\n\n\t/* Narrow the drag handle */\n\t.pict-mde-drag-handle\n\t{\n\t\tflex: 0 0 5px;\n\t}\n\n\t/* Shrink the right sidebar column */\n\t.pict-mde-sidebar\n\t{\n\t\tflex: 0 0 24px;\n\t}\n\t.pict-mde-sidebar-btn\n\t{\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tfont-size: 11px;\n\t}\n\n\t/* Make right sidebar buttons always visible (touch devices) */\n\t.pict-mde-quadrant-tr,\n\t.pict-mde-quadrant-br\n\t{\n\t\topacity: 0.7;\n\t}\n\t.pict-mde-segment.pict-mde-active .pict-mde-quadrant-tr,\n\t.pict-mde-segment.pict-mde-active .pict-mde-quadrant-br\n\t{\n\t\topacity: 1;\n\t}\n\n\t/* Reduce CodeMirror content padding */\n\t.pict-mde-segment-editor .cm-editor .cm-content\n\t{\n\t\tpadding: 6px 6px;\n\t}\n\n\t/* Reduce font size slightly for more content on screen */\n\t.pict-mde-segment-editor .cm-editor .cm-scroller\n\t{\n\t\tfont-size: 13px;\n\t}\n\n\t/* Add segment button: reduce left margin */\n\t.pict-mde-add-segment\n\t{\n\t\tpadding-left: 21px;\n\t}\n\n\t/* Side-by-side: fall back to vertical stacking on narrow screens */\n\t.pict-mde.pict-mde-preview-side .pict-mde-segment-body\n\t{\n\t\tflex-direction: column;\n\t}\n\t.pict-mde.pict-mde-preview-side .pict-mde-preview-pane\n\t{\n\t\tborder-left: none;\n\t\tborder-top: 1px solid var(--theme-color-border-light, #EDEDED);\n\t}\n\n\t/* Tab bar: smaller on tablet */\n\t.pict-mde-tab\n\t{\n\t\tpadding: 3px 8px;\n\t\tfont-size: 11px;\n\t}\n\n\t/* Rich preview: less padding */\n\t.pict-mde-rich-preview .pict-content\n\t{\n\t\tpadding: 8px;\n\t\tfont-size: 12px;\n\t}\n\n\t/* Image previews: smaller max dimensions */\n\t.pict-mde-image-preview img\n\t{\n\t\tmax-width: 120px;\n\t\tmax-height: 100px;\n\t}\n\n\t/* Rendered view: less padding */\n\t.pict-mde-rendered-view\n\t{\n\t\tpadding: 10px 8px;\n\t}\n}\n\n/* ============================================\n RESPONSIVE: Small phone (max-width: 480px)\n ============================================ */\n@media (max-width: 480px)\n{\n\t/* Wrap segment so left controls flow to the top as a horizontal bar */\n\t.pict-mde-segment\n\t{\n\t\tflex-wrap: wrap;\n\t}\n\n\t/* Left controls become a horizontal toolbar at the top of the segment */\n\t.pict-mde-left-controls\n\t{\n\t\tflex: 0 0 100%;\n\t\tflex-direction: row;\n\t\tjustify-content: flex-start;\n\t\tgap: 2px;\n\t\tpadding: 3px 4px;\n\t\torder: -1;\n\t\tbackground: var(--theme-color-background-secondary, #F5F5F5);\n\t\tborder-bottom: 1px solid var(--theme-color-border-light, #EDEDED);\n\t}\n\t.pict-mde-left-btn\n\t{\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tfont-size: 12px;\n\t\topacity: 0.7;\n\t}\n\n\t/* Left quadrants flow horizontally */\n\t.pict-mde-quadrant-tl,\n\t.pict-mde-quadrant-bl\n\t{\n\t\tflex-direction: row;\n\t\tgap: 2px;\n\t\tposition: static;\n\t}\n\n\t/* Segment body: explicit basis so it fills the wrapped row */\n\t.pict-mde-segment-body\n\t{\n\t\tflex: 1 1 calc(100% - 20px);\n\t}\n\n\t/* Hide drag handle on very small screens */\n\t.pict-mde-drag-handle\n\t{\n\t\tdisplay: none;\n\t}\n\n\t/* Right sidebar: further shrink */\n\t.pict-mde-sidebar\n\t{\n\t\tflex: 0 0 20px;\n\t}\n\t.pict-mde-sidebar-btn\n\t{\n\t\twidth: 18px;\n\t\theight: 18px;\n\t\tfont-size: 10px;\n\t}\n\n\t/* Add segment: no left offset since controls are at top */\n\t.pict-mde-add-segment\n\t{\n\t\tpadding-left: 0;\n\t}\n\n\t/* Even tighter CodeMirror padding */\n\t.pict-mde-segment-editor .cm-editor .cm-content\n\t{\n\t\tpadding: 4px 4px;\n\t}\n}\n"}},{}],28:[function(t,e,i){const n=t("pict-view"),r=t("pict-section-content"),o=t("./Pict-Section-MarkdownEditor-DefaultConfiguration.js"),a=t("./Pict-MDE-Formatting.js"),s=t("./Pict-MDE-ImageHandling.js"),c=t("./Pict-MDE-DragAndReorder.js"),l=t("./Pict-MDE-RichPreview.js"),p=t("./Pict-MDE-CodeMirror.js");e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},o,e),i),this.initialRenderComplete=!1,this._codeMirrorModules=null,this._segmentEditors={},this._segmentCounter=0,this._viewCallIdentifier=!1,this._activeSegmentIndex=-1,this._dragSourceIndex=-1,this._controlsVisible=!0,this._previewMode=this.options.DefaultPreviewMode||"off",this._lastPreviewLayout="bottom",this._segmentTabStates={},this._hiddenPreviewSegments={},this._imagePreviewTimers={},this._richPreviewTimers={},this._richPreviewGenerations={},this._contentProvider=null,this._renderedViewActive=!1,this._renderedViewGeneration=0,a.attach(this),s.attach(this),c.attach(this),l.attach(this),p.attach(this)}onBeforeInitialize(){return super.onBeforeInitialize(),this.targetElement=!1,super.onBeforeInitialize()}connectCodeMirrorModules(t){if(!t||"object"!=typeof t||"function"!=typeof t.EditorView||"function"!=typeof t.EditorState)return"undefined"!=typeof window&&window.CodeMirrorModules&&"function"==typeof window.CodeMirrorModules.EditorView?(this.log.trace("PICT-MarkdownEditor Found CodeMirror modules on window.CodeMirrorModules."),void(this._codeMirrorModules=window.CodeMirrorModules)):(this.log.error("PICT-MarkdownEditor No CodeMirror modules found. Provide them via connectCodeMirrorModules() or set window.CodeMirrorModules."),!1);this._codeMirrorModules=t}onAfterRender(t){return this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),this.pict.CSSMap.injectCSS(),super.onAfterRender(t)}onAfterInitialRender(){if(this._codeMirrorModules||this.connectCodeMirrorModules(),!this._codeMirrorModules)return this.log.error("PICT-MarkdownEditor Cannot initialize; no CodeMirror modules available."),!1;if(this.options.EnableRichPreview){let t=r.default_configuration;t&&t.CSS&&this.pict.CSSMap.addCSS("Pict-Content-View",t.CSS)}let t=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(!t||t.length<1)return this.log.error("PICT-MarkdownEditor Could not find target element [".concat(this.options.TargetElementAddress,"]!")),this.targetElement=!1,!1;this.targetElement=t[0],this._viewCallIdentifier=this._resolveViewCallIdentifier(),this._buildEditorUI()}_resolveViewCallIdentifier(){let t=this.pict.views;for(let e in t)if(t[e]===this)return"_Pict.views['".concat(e,"']");return"_Pict.servicesMap.PictView['".concat(this.Hash,"']")}_getContainerElement(){if(this.targetElement){let t=this.targetElement.querySelector(".pict-mde");if(t)return t}return this.targetElement||null}_resolveImageURL(t){if(!t||!this.options.ImageBaseURL)return t;if(t.startsWith("/")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("data:"))return t;let e=this.options.ImageBaseURL;return e&&!e.endsWith("/")&&(e+="/"),e+t}_buildEditorUI(){let t=this._getContainerElement();t&&!t.classList.contains("pict-mde")&&t.classList.add("pict-mde");for(let t in this._segmentEditors)this._segmentEditors[t]&&this._segmentEditors[t].destroy();t.innerHTML="",t.classList.remove("pict-mde-preview-off","pict-mde-preview-bottom","pict-mde-preview-side","pict-mde-preview-tabbed","pict-mde-previews-hidden"),t.classList.add("pict-mde-preview-"+this._previewMode),this._controlsVisible?t.classList.add("pict-mde-controls-on"):t.classList.add("pict-mde-controls-hidden");let e=this._getSegmentsFromData();e&&0!==e.length||(e=[{Content:""}],this._setSegmentsToData(e)),this._segmentCounter=0,this._segmentEditors={};for(let i=0;i<e.length;i++)this._renderSegment(t,i,e[i].Content||"");this._renderAddButton(t)}_renderSegment(t,e,i){let n=this._segmentCounter++,r={SegmentIndex:n,SegmentDisplayIndex:e+1,ViewIdentifier:this._viewCallIdentifier},o=this.pict.parseTemplateByHash("MarkdownEditor-Segment",r),a=document.createElement("div");a.innerHTML=o;let s=a.firstElementChild;if(t.appendChild(s),this._buildQuadrantButtons(s,n),this._hiddenPreviewSegments[e]&&s.classList.add("pict-mde-preview-hidden"),"tabbed"===this._previewMode&&"preview"===this._segmentTabStates[e]){s.classList.add("pict-mde-tab-showing-preview");let t=s.querySelector(".pict-mde-tab-bar");if(t){let e=t.querySelector('[data-tab="editor"]'),i=t.querySelector('[data-tab="preview"]');e&&e.classList.remove("pict-mde-tab-active"),i&&i.classList.add("pict-mde-tab-active")}}this._wireSegmentDragEvents(s,n);let c=document.getElementById("PictMDE-SegmentEditor-".concat(n));c&&(this._createEditorInContainer(c,n,i),this._wireImageDragEvents(c,n),i&&(this._updateImagePreviews(n),this._updateRichPreviews(n)))}_buildQuadrantButtons(t,e){let i=[{key:"ButtonsTL",selector:".pict-mde-quadrant-tl",baseClass:"pict-mde-left-btn"},{key:"ButtonsBL",selector:".pict-mde-quadrant-bl",baseClass:"pict-mde-left-btn"},{key:"ButtonsTR",selector:".pict-mde-quadrant-tr",baseClass:"pict-mde-sidebar-btn"},{key:"ButtonsBR",selector:".pict-mde-quadrant-br",baseClass:"pict-mde-sidebar-btn"}],n=this;for(let r=0;r<i.length;r++){let o=i[r],a=t.querySelector(o.selector);if(!a)continue;let s=this.options[o.key];if(Array.isArray(s))for(let t=0;t<s.length;t++){let i=s[t],r=document.createElement("button");r.type="button",r.className=o.baseClass,i.Class&&(r.className+=" "+i.Class);let c=i.HTML||"";c&&"function"==typeof this.pict.parseTemplate&&(c=this.pict.parseTemplate(c,{})),r.innerHTML=c,r.title=i.Title||"";let l=i.Action||"",p=l,d=null,u=l.indexOf(":");u>=0&&(p=l.substring(0,u),d=l.substring(u+1)),function(t,e,i){r.addEventListener("click",()=>{"function"==typeof n[t]?null!==e?n[t](i,e):n[t](i):n.log.warn('PICT-MarkdownEditor _buildQuadrantButtons: method "'.concat(t,'" not found.'))})}(p,d,e),a.appendChild(r)}}}customConfigureExtensions(t,e){return t}_renderAddButton(t){let e={ViewIdentifier:this._viewCallIdentifier},i=this.pict.parseTemplateByHash("MarkdownEditor-AddSegment",e),n=document.createElement("div");n.innerHTML=i;let r=n.firstElementChild;t.appendChild(r)}onImageUpload(t,e,i){return!1}toggleControls(t,e){let i=e;"boolean"==typeof t&&(i=t),this._controlsVisible="boolean"==typeof i?i:!this._controlsVisible;let n=this._getContainerElement();n&&(this._controlsVisible?(n.classList.add("pict-mde-controls-on"),n.classList.remove("pict-mde-controls-hidden")):(n.classList.remove("pict-mde-controls-on"),n.classList.add("pict-mde-controls-hidden")))}toggleLineNumbers(t){this.toggleControls(t)}togglePreview(t){"boolean"==typeof t?t?this.setPreviewMode(this._lastPreviewLayout||"bottom"):this.setPreviewMode("off"):"off"===this._previewMode?this.setPreviewMode(this._lastPreviewLayout||"bottom"):this.setPreviewMode("off")}setPreviewMode(t){if(["off","bottom","side","tabbed"].indexOf(t)<0)return void this.log.warn('PICT-MarkdownEditor setPreviewMode: unknown mode "'.concat(t,'".'));"off"!==t&&(this._lastPreviewLayout=t),this._previewMode=t;let e=this._getContainerElement();if(e&&(e.classList.remove("pict-mde-preview-off","pict-mde-preview-bottom","pict-mde-preview-side","pict-mde-preview-tabbed","pict-mde-previews-hidden"),e.classList.add("pict-mde-preview-"+t)),"off"!==t){let t=this._getOrderedSegmentIndices();for(let e=0;e<t.length;e++)this._updateRichPreviews(t[e]),this._updateImagePreviews(t[e])}}cyclePreviewMode(t){let e=["off","bottom","side","tabbed"],i=(e.indexOf(this._previewMode)+1)%e.length;this.setPreviewMode(e[i])}switchSegmentTab(t,e){let i=this._getLogicalIndex(t);if(i<0)return;this._segmentTabStates[i]=e;let n=document.getElementById("PictMDE-Segment-".concat(t));if(!n)return;"preview"===e?(n.classList.add("pict-mde-tab-showing-preview"),this._updateRichPreviews(t),this._updateImagePreviews(t)):n.classList.remove("pict-mde-tab-showing-preview");let r=document.getElementById("PictMDE-TabBar-".concat(t));if(r){let t=r.querySelectorAll(".pict-mde-tab");for(let i=0;i<t.length;i++)t[i].getAttribute("data-tab")===e?t[i].classList.add("pict-mde-tab-active"):t[i].classList.remove("pict-mde-tab-active")}}toggleSegmentPreview(t,e){let i=this._getLogicalIndex(t);if(i<0)return;let n=!!this._hiddenPreviewSegments[i];n="boolean"==typeof e?!e:!n,n?this._hiddenPreviewSegments[i]=!0:delete this._hiddenPreviewSegments[i];let r=document.getElementById("PictMDE-Segment-".concat(t));r&&(n?r.classList.add("pict-mde-preview-hidden"):(r.classList.remove("pict-mde-preview-hidden"),this._updateRichPreviews(t),this._updateImagePreviews(t)))}_getSegmentsFromData(){if(!this.options.ContentDataAddress)return null;const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let e=this.fable.manifest.getValueByHash(t,this.options.ContentDataAddress);return Array.isArray(e)?e:null}_setSegmentsToData(t){if(!this.options.ContentDataAddress)return;const e={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};this.fable.manifest.setValueByHash(e,this.options.ContentDataAddress,t)}_onSegmentContentChange(t,e){let i=this._getLogicalIndex(t);if(i<0)return;let n=this._getSegmentsFromData();if(!n)return;i<n.length&&(n[i].Content=e),this.onContentChange(i,e);let r=this;this._imagePreviewTimers[t]&&clearTimeout(this._imagePreviewTimers[t]),this._imagePreviewTimers[t]=setTimeout(()=>{r._updateImagePreviews(t),delete r._imagePreviewTimers[t]},500),this._richPreviewTimers[t]&&clearTimeout(this._richPreviewTimers[t]),this._richPreviewTimers[t]=setTimeout(()=>{r._updateRichPreviews(t),delete r._richPreviewTimers[t]},500)}onContentChange(t,e){}_getLogicalIndex(t){let e=this._getContainerElement();if(!e)return-1;let i=e.querySelectorAll(".pict-mde-segment");for(let e=0;e<i.length;e++){if(parseInt(i[e].getAttribute("data-segment-index"),10)===t)return e}return-1}_getOrderedSegmentIndices(){let t=this._getContainerElement();if(!t)return[];let e=t.querySelectorAll(".pict-mde-segment"),i=[];for(let t=0;t<e.length;t++)i.push(parseInt(e[t].getAttribute("data-segment-index"),10));return i}addSegment(t){let e="string"==typeof t?t:"",i=this._getSegmentsFromData();i||(i=[]),i.push({Content:e}),this._setSegmentsToData(i),this._buildEditorUI()}removeSegment(t){let e=this._getLogicalIndex(t);if(e<0)return void this.log.warn("PICT-MarkdownEditor removeSegment: segment index ".concat(t," not found."));let i=this._getSegmentsFromData();if(!i||i.length<=1)return void this.log.warn("PICT-MarkdownEditor removeSegment: cannot remove the last segment.");this._segmentEditors[t]&&(this._segmentEditors[t].destroy(),delete this._segmentEditors[t]),i.splice(e,1),this._setSegmentsToData(i);let n={};for(let t in this._hiddenPreviewSegments){let i=parseInt(t,10);i<e?n[i]=!0:i>e&&(n[i-1]=!0)}this._hiddenPreviewSegments=n;let r={};for(let t in this._segmentTabStates){let i=parseInt(t,10);i<e?r[i]=this._segmentTabStates[t]:i>e&&(r[i-1]=this._segmentTabStates[t])}this._segmentTabStates=r,this._buildEditorUI()}moveSegmentUp(t){let e=this._getLogicalIndex(t);if(e<=0)return;this._marshalAllEditorsToData();let i=this._getSegmentsFromData();if(!i)return;let n=i[e];i[e]=i[e-1],i[e-1]=n,this._swapHiddenPreviewState(e,e-1),this._swapSegmentTabStates(e,e-1),this._buildEditorUI()}moveSegmentDown(t){let e=this._getLogicalIndex(t),i=this._getSegmentsFromData();if(!i||e<0||e>=i.length-1)return;this._marshalAllEditorsToData();let n=i[e];i[e]=i[e+1],i[e+1]=n,this._swapHiddenPreviewState(e,e+1),this._swapSegmentTabStates(e,e+1),this._buildEditorUI()}getSegmentContent(t){let e=this._getOrderedSegmentIndices();if(t<0||t>=e.length)return"";let i=e[t],n=this._segmentEditors[i];return n?n.state.doc.toString():""}setSegmentContent(t,e){let i=this._getOrderedSegmentIndices();if(t<0||t>=i.length)return void this.log.warn("PICT-MarkdownEditor setSegmentContent: index ".concat(t," out of range."));let n=i[t],r=this._segmentEditors[n];r&&r.dispatch({changes:{from:0,to:r.state.doc.length,insert:e}})}getSegmentCount(){return this._getOrderedSegmentIndices().length}getAllContent(t){let e="string"==typeof t?t:"\n\n",i=this._getOrderedSegmentIndices(),n=[];for(let t=0;t<i.length;t++){let e=this._segmentEditors[i[t]];e&&n.push(e.state.doc.toString())}return n.join(e)}_marshalAllEditorsToData(){let t=this._getSegmentsFromData();if(!t)return;let e=this._getOrderedSegmentIndices();for(let i=0;i<e.length;i++){let n=this._segmentEditors[e[i]];n&&i<t.length&&(t[i].Content=n.state.doc.toString())}}setReadOnly(t){this.options.ReadOnly=t,this.initialRenderComplete&&(this._marshalAllEditorsToData(),this._buildEditorUI())}marshalToView(){super.marshalToView(),this.initialRenderComplete&&this.options.ContentDataAddress&&this._buildEditorUI()}marshalFromView(){super.marshalFromView(),this._marshalAllEditorsToData()}destroy(){for(let t in this._segmentEditors)this._segmentEditors[t]&&this._segmentEditors[t].destroy();this._segmentEditors={};for(let t in this._richPreviewTimers)clearTimeout(this._richPreviewTimers[t]);this._richPreviewTimers={},this._richPreviewGenerations={},this._segmentTabStates={}}},e.exports.default_configuration=o},{"./Pict-MDE-CodeMirror.js":22,"./Pict-MDE-DragAndReorder.js":23,"./Pict-MDE-Formatting.js":24,"./Pict-MDE-ImageHandling.js":25,"./Pict-MDE-RichPreview.js":26,"./Pict-Section-MarkdownEditor-DefaultConfiguration.js":27,"pict-section-content":14,"pict-view":38}],29:[function(t,e,i){e.exports={RenderOnLoad:!0,GridWidth:"auto",GridRowHeight:40,GridBodyHeight:"auto",GridBodyMinHeight:130,GridColumnMinWidth:50,GridColumnWidthResizable:!0,GridColumnHeightResizable:!1,GridColumnFrozenCount:0,GridColumnFrozenBorderWidth:3,GridScrollX:!0,GridScrollY:!0,GridShowDummyRows:!1,GridDraggableRows:!1,GridSelectionUnit:"cell",DefaultRenderable:"TuiGrid-Wrap",DefaultDestinationAddress:"#TuiGrid-Container-Div",Templates:[{Hash:"TuiGrid-Container",Template:"\x3c!-- TuiGrid-Container Rendering Soon --\x3e"}],Renderables:[{RenderableHash:"TuiGrid-Wrap",TemplateHash:"TuiGrid-Container",DestinationAddress:"#TuiGrid-Container-Div"}],TargetElementAddress:"#TuiGrid-Container-Div",GridDataAddress:!1,GridData:[{idrecord:1,entity:"SampleEntity",name:"Record name 1",description:"description 1"},{idrecord:2,entity:"SampleEntity",name:"Record name 2",description:"description 2"},{idrecord:3,entity:"SampleEntity",name:"Record name 3",description:"description 3"},{idrecord:4,entity:"SampleEntity",name:"Record name 4",description:"description 4"},{idrecord:5,entity:"SampleEntity",name:"Record name 5",description:"description 5"},{idrecord:6,entity:"SampleEntity",name:"Record name 6",description:"description 6"},{idrecord:7,entity:"SampleEntity",name:"Record name 7",description:"description 7"},{idrecord:8,entity:"SampleEntity",name:"Record name 8",description:"description 8"},{idrecord:9,entity:"SampleEntity",name:"Record name 9",description:"description 9"}],ColumnsToSolveOnChange:{},TuiColumnSchema:[{header:"IDRecord",name:"idrecord",PictTriggerSolveOnChange:!0},{header:"Entity",name:"entity",PictTriggerSolveOnChange:!0},{header:"Name",name:"name",editor:"text"},{header:"Description",name:"description",editor:"text"}]}},{}],30:[function(t,e,i){const n=t("pict-view");e.exports=class extends n{constructor(e,i,n){super(e,Object.assign({},t("./Pict-Section-TuiGrid-DefaultConfiguration.json"),i),n),this.services,this.dateFormatter=this.fable.instantiateServiceProviderWithoutRegistration("Dates"),this.initialRenderComplete=!1,this.customFormatters={}}onBeforeInitialize(){return super.onBeforeInitialize(),this._tuiGridPrototype=null,this.tuiGrid=null,this.customHeaders=t("./Pict-TuiGrid-Headers.js"),this.customEditors=t("./Pict-TuiGrid-Editors.js"),this.initializeCustomFormatters(),this.columnSchema=!1,this.targetElementAddress=!1,this.gridData=null,super.onBeforeInitialize()}initializeCustomFormatters(){this.customFormatters.FormatterTwoDigitNumber=t=>{var e;let i=Number.parseFloat(t.value),n=null!==(e=null==t?void 0:t.decimalPrecision)&&void 0!==e?e:2;return isNaN(i)?"":this.fable.Math.roundPrecise(t.value,n)},this.customFormatters.FormatterCurrencyNumber=t=>{var e;let i=null!==(e=null==t?void 0:t.decimalPrecision)&&void 0!==e?e:2;return this.fable.DataFormat.formatterDollars(t.value,i)},this.customFormatters.FormatterRoundedNumber=t=>{var e;let i=Number.parseFloat(t.value),n=null!==(e=null==t?void 0:t.decimalPrecision)&&void 0!==e?e:2;return isNaN(i)?"":this.fable.Math.roundPrecise(t.value,n)},this.customFormatters.FormatterDate=t=>{let e=this.fable.Dates.dayJS.utc(t.value);return t.dateformat?e.format(t.dateformat):e.format()}}connectTuiGridPrototype(t){if(void 0!==t)this._tuiGridPrototype=t;else{if(this.log.trace("PICT-TuiGrid No TuiGrid Prototype defined or explicitly set; looking for it in the window object."),"undefined"==typeof window)return this.log.error("PICT-TuiGrid No TuiGrid Prototype found in window.tuiGrid -- window object unavailable."),!1;if(void 0===window.tui||void 0===window.tui.Grid)return this.log.error("PICT-TuiGrid No TuiGrid Prototype found in window.tuiGrid."),!1;this.log.trace("PICT-TuiGrid Found TuiGrid Prototype in window.tuiGrid."),this.connectTuiGridPrototype(window.tui.Grid)}}preChangeHandler(t){}changeHandler(t){let e=!1;for(let i=0;i<t.changes.length;i++){let n=t.instance.getValue(t.changes[i].rowKey,"entity"),r=t.instance.getValue(t.changes[i].rowKey,"idrecord");this.log.trace("Generic Change Handler for TuiGrid Fired, Entity ".concat(n," IDRecord ").concat(r," setting Column [").concat(t.changes[i].value,"] to new Value [").concat(t.changes[i].value,"]")),this.options.ColumnsToSolveOnChange.hasOwnProperty(t.changes[i].columnName)&&(e=!0)}e&&this.services.PictApplication.solve()}onAfterRender(t){return this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),super.onAfterRender(t)}onAfterInitialRender(){if(this._tuiGridPrototype||this.connectTuiGridPrototype(),this.tuiGrid)return this.log.error("TuiGrid going to ".concat(this.options.TargetElementAddress," is already initialized!")),!1;if(this.options.GridDataAddress){const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let e=this.fable.manifest.getValueByHash(t,this.options.GridDataAddress);"object"!=typeof e?(this.log.error("Address for GridData [".concat(this.options.GridDataAddress,"] did not return an object; it was a ").concat(typeof e,".")),this.gridData=[]):this.gridData=JSON.parse(JSON.stringify(e))}else this.gridData=[];let t=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(t.length<1)return this.log.error("Could not find target element [".concat(this.options.TargetElementAddress,"] for TuiGrid! Rendering won't function properly.")),this.targetElement=!1,!1;this.targetElement=t[0],this.columnSchema=this.options.TuiColumnSchema;for(let t=0;t<this.columnSchema.length;t++){let e=this.columnSchema[t];if(e.PictTriggerSolveOnChange&&(this.options.ColumnsToSolveOnChange[e.name]=e),e.hasOwnProperty("formatter")&&this.customFormatters.hasOwnProperty(e.formatter)&&(e.formatter=this.customFormatters[e.formatter]),e.hasOwnProperty("editor")&&(e.editor.hasOwnProperty("type")&&"string"==typeof e.editor.type&&this.customEditors.hasOwnProperty(e.editor.type)&&(e.editor.type=this.customEditors[e.editor.type]),e.editor.hasOwnProperty("options")&&"object"==typeof e.editor.options&&e.editor.options.hasOwnProperty("listItems")&&"string"==typeof e.editor.options.listItems)){const t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options};let i=this.fable.manifest.getValueByHash(t,e.editor.options.listItems);"object"==typeof i?e.editor.options.listItems=i:(this.log.warn("Pict TuiGrid for column [".concat(e.name,"] had [").concat(e.editor.options.listItems,"] as a listItems address, but it didn't return an object. It was a [").concat(typeof i,"]. Setting to empty list.")),e.editor.options.listItems=[])}}this.gridSettings={data:this.gridData,el:this.targetElement,columns:this.columnSchema,usageStatistics:!1,scrollY:this.options.GridScrollY,columnOptions:{resizable:this.options.GridColumnWidthResizable}},this.customConfigureGridSettings();let e=this._tuiGridPrototype;this.tuiGrid=new e(this.gridSettings),this.tuiGrid.on("beforeChange",t=>{const e=t;this.preChangeHandler(e)}),this.tuiGrid.on("afterChange",t=>{const e=t;this.changeHandler(e)})}customConfigureGridSettings(){}SetGridValue(t,e,i,n){if(void 0===i)return void console.log("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by [").concat(n,"]::[").concat(i,"]. No valid lookup value!"));if(!this.tuiGrid)return void this.log.warn("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by [").concat(n,"]::[").concat(i,"]. No valid grid!"));const r=this.tuiGrid.getData();for(let o=0;o<r.length;o++){r[o][n]==i&&this.tuiGrid.setValue(o,t,e)}}SetGridValueByRowKey(t,e,i){return void 0===i?(this.log.error("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by row key [").concat(i,"]. No valid row key!")),!1):this.tuiGrid?(this.tuiGrid.setValue(i,t,e),!0):(this.log.warn("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by row key [").concat(i,"]. No valid grid!")),!1)}},e.exports.default_configuration=t("./Pict-Section-TuiGrid-DefaultConfiguration.json")},{"./Pict-Section-TuiGrid-DefaultConfiguration.json":29,"./Pict-TuiGrid-Editors.js":33,"./Pict-TuiGrid-Headers.js":34,"pict-view":38}],31:[function(t,e,i){e.exports=class{constructor(t){const e=document.createElement("input"),i=t.columnInfo.editor.options.decimalPrecision?t.columnInfo.editor.options.decimalPrecision:3;e.type="number",e.value=String(t.value),e.oninput=t=>{if(t.target instanceof HTMLInputElement){const e=parseFloat(t.target.value).toFixed(i).toString();e.length<parseFloat(t.target.value).toString().length&&(t.target.value=e)}},this.Element=e}getElement(){return this.Element}getValue(){return this.Element.value}mounted(){this.Element.select()}}},{}],32:[function(t,e,i){e.exports=class{constructor(t){const e=document.createElement("input");e.type="text",e.value=String(t.value),e.placeholder=t.columnInfo.editor.options.placeholder||"",e.pattern=t.columnInfo.editor.options.pattern||"",e.minLength=t.columnInfo.editor.options.minLength||"",e.maxLength=t.columnInfo.editor.options.maxLength||"",e.required=t.columnInfo.editor.options.required||"",this.Element=e}getElement(){return this.Element}getValue(){return this.Element.value}mounted(){this.Element.select()}}},{}],33:[function(t,e,i){e.exports={EditorNumber:t("./Pict-TuiGrid-Editor-Number.js"),EditorText:t("./Pict-TuiGrid-Editor-Text.js")}},{"./Pict-TuiGrid-Editor-Number.js":31,"./Pict-TuiGrid-Editor-Text.js":32}],34:[function(t,e,i){e.exports={CustomColumnHeaderNone:class{constructor(){let t=document.createElement("input");t.type="hidden",t.value="",this.Element=t}getElement(){return this.Element}render(){}}}},{}],35:[function(t,e,i){e.exports={name:"pict-template",version:"1.0.15",description:"Pict Template Base Class",main:"source/Pict-Template.js",scripts:{start:"node source/Pict-Template.js",test:"npx quack test",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build",types:"tsc -p ."},types:"types/source/Pict-Template.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-view.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-view/issues"},homepage:"https://github.com/stevenvelozo/pict-view#readme",devDependencies:{pict:"^1.0.348",quackage:"^1.0.58",typescript:"^5.9.3"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},dependencies:{"fable-serviceproviderbase":"^3.0.19"}}},{}],36:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.pict=this.fable,this.serviceType="PictTemplate",this._Package=r}render(t,e,i,n,r){return""}renderAsync(t,e,i,n,r,o){return i(null,this.render(t,e,n,r,o))}addPattern(t,e){return this.pict.MetaTemplate.addPatternBoth(t,e,this.render,this.renderAsync,this)}resolveStateFromAddress(t,e,i,n,r,o){return this.pict.resolveStateFromAddress(t,e,i,n,r,o)}},e.exports.template_hash="Default"},{"../package.json":35,"fable-serviceproviderbase":3}],37:[function(t,e,i){e.exports={name:"pict-view",version:"1.0.68",description:"Pict View Base Class",main:"source/Pict-View.js",scripts:{test:"npx quack test",tests:"npx quack test -g",start:"node source/Pict-View.js",coverage:"npx quack coverage",build:"npx quack build","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-view-image:local","docker-dev-run":'docker run -it -d --name pict-view-dev -p 30001:8080 -p 38086:8086 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-view" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-view-image:local',"docker-dev-shell":"docker exec -it pict-view-dev /bin/bash",types:"tsc -p .",lint:"eslint source/**"},types:"types/source/Pict-View.d.ts",repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-view.git"},author:"steven velozo <steven@velozo.com>",license:"MIT",bugs:{url:"https://github.com/stevenvelozo/pict-view/issues"},homepage:"https://github.com/stevenvelozo/pict-view#readme",devDependencies:{"@eslint/js":"^9.39.1","browser-env":"^3.3.0",eslint:"^9.39.1",pict:"^1.0.363",quackage:"^1.0.65",typescript:"^5.9.3"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]},dependencies:{fable:"^3.1.67","fable-serviceproviderbase":"^3.0.19"}}},{}],38:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../package.json"),o={DefaultRenderable:!1,DefaultDestinationAddress:!1,DefaultTemplateRecordAddress:!1,ViewIdentifier:!1,AutoInitialize:!0,AutoInitializeOrdinal:0,AutoRender:!0,AutoRenderOrdinal:0,AutoSolveWithApp:!0,AutoSolveOrdinal:0,CSSHash:!1,CSS:!1,CSSProvider:!1,CSSPriority:500,Templates:[],DefaultTemplates:[],Renderables:[],Manifests:{}};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(o)),e),i),this.fable,this.options,this.UUID,this.Hash,this.log;const n=this.Hash===this.UUID;this.UUID="V-".concat(this.UUID),n&&(this.Hash=this.UUID),this.options.ViewIdentifier||(this.options.ViewIdentifier="AutoViewID-".concat(this.fable.getUUID())),this.serviceType="PictView",this._Package=r,this.pict=this.fable,this.AppData=this.pict.AppData,this.Bundle=this.pict.Bundle,this.initializeTimestamp=!1,this.lastSolvedTimestamp=!1,this.lastRenderedTimestamp=!1,this.lastMarshalFromViewTimestamp=!1,this.lastMarshalToViewTimestamp=!1,this.pict.instantiateServiceProviderIfNotExists("TransactionTracking");for(let t=0;t<this.options.Templates.length;t++){let e=this.options.Templates[t];"Hash"in e&&"Template"in e?(e.Source||(e.Source="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," options object.")),this.pict.TemplateProvider.addTemplate(e.Hash,e.Template,e.Source)):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Template ").concat(t," in the options array."),e)}for(let t=0;t<this.options.DefaultTemplates.length;t++){let e=this.options.DefaultTemplates[t];"Postfix"in e&&"Template"in e?(e.Source||(e.Source="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," options object.")),this.pict.TemplateProvider.addDefaultTemplate(e.Prefix,e.Postfix,e.Template,e.Source)):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Default Template ").concat(t," in the options array."),e)}if(this.options.CSS){let t=this.options.CSSHash?this.options.CSSHash:"View-".concat(this.options.ViewIdentifier),e=this.options.CSSProvider?this.options.CSSProvider:t;this.pict.CSSMap.addCSS(t,this.options.CSS,e,this.options.CSSPriority)}this.renderables={};for(let t=0;t<this.options.Renderables.length;t++){let e=this.options.Renderables[t];this.addRenderable(e)}}addRenderable(t,e,i,n,r){let o;if("object"==typeof t)o=t;else{o={RenderableHash:t,TemplateHash:e,DefaultTemplateRecordAddress:i,ContentDestinationAddress:n,RenderMethod:"string"!=typeof r?r:"replace"}}"string"!=typeof o.RenderableHash||"string"!=typeof o.TemplateHash?this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Renderable; RenderableHash or TemplateHash are invalid."),o):(this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," adding renderable [").concat(o.RenderableHash,"] pointed to template ").concat(o.TemplateHash,".")),this.renderables[o.RenderableHash]=o)}onBeforeInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeInitialize:")),!0}onBeforeInitializeAsync(t){return this.onBeforeInitialize(),t()}onInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onInitialize:")),!0}onInitializeAsync(t){return this.onInitialize(),t()}initialize(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialize:")),this.initializeTimestamp?(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialize called but initialization is already completed. Aborting.")),!1):(this.onBeforeInitialize(),this.onInitialize(),this.onAfterInitialize(),this.initializeTimestamp=this.pict.log.getTimeStamp(),!0)}initializeAsync(t){if(this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initializeAsync:")),this.initializeTimestamp)return this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," async initialize called but initialization is already completed. Aborting.")),t();{let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate");this.pict.LogNoisiness>0&&this.log.info("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," beginning initialization...")),e.anticipate(this.onBeforeInitializeAsync.bind(this)),e.anticipate(this.onInitializeAsync.bind(this)),e.anticipate(this.onAfterInitializeAsync.bind(this)),e.wait(e=>(e&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialization failed: ").concat(e.message||e),{stack:e.stack}),this.initializeTimestamp=this.pict.log.getTimeStamp(),this.pict.LogNoisiness>0&&this.log.info("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," initialization complete.")),t()))}}onAfterInitialize(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterInitialize:")),!0}onAfterInitializeAsync(t){return this.onAfterInitialize(),t()}onBeforeRender(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeRender:")),!0}onBeforeRenderAsync(t,e){return this.onBeforeRender(e),t()}onBeforeProject(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeProject:")),!0}onBeforeProjectAsync(t,e){return this.onBeforeProject(e),t()}buildRenderOptions(t,e,i){let n={Valid:!0};return n.RenderableHash="string"==typeof t?t:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable,n.RenderableHash||(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not find a suitable RenderableHash ").concat(n.RenderableHash," (param ").concat(t,"because it is not a valid renderable.")),n.Valid=!1),n.Renderable=this.renderables[n.RenderableHash],n.Renderable||(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(n.RenderableHash," (param ").concat(t,") because it does not exist.")),n.Valid=!1),n.DestinationAddress="string"==typeof e?e:"string"==typeof n.Renderable.ContentDestinationAddress?n.Renderable.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress&&this.options.DefaultDestinationAddress,n.DestinationAddress||(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(n.RenderableHash," (param ").concat(t,") because it does not have a valid destination address (param ").concat(e,").")),n.Valid=!1),"object"==typeof i?(n.RecordAddress="Passed in as object",n.Record=i):(n.RecordAddress="string"==typeof i?i:"string"==typeof n.Renderable.DefaultTemplateRecordAddress?n.Renderable.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress,n.Record="string"==typeof n.RecordAddress?this.pict.DataProvider.getDataByAddress(n.RecordAddress):void 0),n}assignRenderContent(t,e,i){return this.pict.ContentAssignment.projectContent(t.RenderMethod,e,i,t.TestAddress)}render(t,e,i,n){return this.renderWithScope(this,t,e,i,n)}renderWithScope(t,e,i,n,r){let o,a,s,c="string"==typeof e?e:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable;return c?("__Virtual"==c?o={RenderableHash:"__Virtual",TemplateHash:this.renderables[this.options.DefaultRenderable].TemplateHash,ContentDestinationAddress:"string"==typeof i?i:"string"==typeof o.ContentDestinationAddress?o.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null,RenderMethod:"virtual-assignment",TransactionHash:r&&r.TransactionHash,RootRenderableViewHash:r&&r.RootRenderableViewHash}:(o=Object.assign({},this.renderables[c]),o.ContentDestinationAddress="string"==typeof i?i:"string"==typeof o.ContentDestinationAddress?o.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null),o.TransactionHash||(o.TransactionHash="ViewRender-V-".concat(this.options.ViewIdentifier,"-R-").concat(c,"-U-").concat(this.pict.getUUID()),o.RootRenderableViewHash=this.Hash,this.pict.TransactionTracking.registerTransaction(o.TransactionHash)),o?o.ContentDestinationAddress?("object"==typeof n?(s=n,a="Passed in as object"):(a="string"==typeof n?n:"string"==typeof o.DefaultTemplateRecordAddress?o.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress,s="string"==typeof a?this.pict.DataProvider.getDataByAddress(a):void 0),this.onBeforeRender(o),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] Renderable[").concat(c,"] Destination[").concat(o.ContentDestinationAddress,"] TemplateRecordAddress[").concat(a,"] render:")),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Beginning Render of Renderable[").concat(c,"] to Destination [").concat(o.ContentDestinationAddress,"]...")),o.Content=this.pict.parseTemplateByHash(o.TemplateHash,s,null,[this],t,{RootRenderable:"object"==typeof r?r:o}),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Assigning Renderable[").concat(c,"] content length ").concat(o.Content.length," to Destination [").concat(o.ContentDestinationAddress,"] using render method [").concat(o.RenderMethod,"].")),this.onBeforeProject(o),this.onProject(o),"virtual-assignment"!==o.RenderMethod&&(this.onAfterProject(o),this.onAfterRender(o)),!0):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(c," (param ").concat(e,") because it does not have a valid destination address.")),!1):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(c," (param ").concat(e,") because it does not exist.")),!1)):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(c," (param ").concat(e,") because it is not a valid renderable.")),!1)}renderAsync(t,e,i,n,r){return this.renderWithScopeAsync(this,t,e,i,n,r)}renderWithScopeAsync(t,e,i,n,r,o){let a,s,c,l="string"==typeof e?e:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable,p="function"==typeof o?o:"function"==typeof n?n:"function"==typeof i?i:"function"==typeof e?e:"function"==typeof r?r:null;if(p||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),p=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAsync Auto Callback Error: ").concat(t),t)}),!l)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not asynchronously render ").concat(l," (param ").concat(e,"because it is not a valid renderable.")),p(new Error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not asynchronously render ").concat(l," (param ").concat(e,"because it is not a valid renderable.")));if("__Virtual"==l?a={RenderableHash:"__Virtual",TemplateHash:this.renderables[this.options.DefaultRenderable].TemplateHash,ContentDestinationAddress:"string"==typeof i?i:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null,RenderMethod:"virtual-assignment",TransactionHash:r&&"function"!=typeof r&&r.TransactionHash,RootRenderableViewHash:r&&"function"!=typeof r&&r.RootRenderableViewHash}:(a=Object.assign({},this.renderables[l]),a.ContentDestinationAddress="string"==typeof i?i:"string"==typeof a.ContentDestinationAddress?a.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null),a.TransactionHash||(a.TransactionHash="ViewRender-V-".concat(this.options.ViewIdentifier,"-R-").concat(l,"-U-").concat(this.pict.getUUID()),a.RootRenderableViewHash=this.Hash,this.pict.TransactionTracking.registerTransaction(a.TransactionHash)),!a)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it does not exist.")),p(new Error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it does not exist.")));if(!a.ContentDestinationAddress)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it does not have a valid destination address.")),p(new Error("Could not render ".concat(l)));"object"==typeof n?(c=n,s="Passed in as object"):(s="string"==typeof n?n:"string"==typeof a.DefaultTemplateRecordAddress?a.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress,c="string"==typeof s?this.pict.DataProvider.getDataByAddress(s):void 0),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] Renderable[").concat(l,"] Destination[").concat(a.ContentDestinationAddress,"] TemplateRecordAddress[").concat(s,"] renderAsync:")),this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Beginning Asynchronous Render (callback-style)..."));let d=this.fable.newAnticipate();d.anticipate(t=>{this.onBeforeRenderAsync(t,a)}),d.anticipate(i=>{this.pict.parseTemplateByHash(a.TemplateHash,c,(t,n)=>t?(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render (asynchronously) ").concat(l," (param ").concat(e,") because it did not parse the template."),t),i(t)):(a.Content=n,i()),[this],t,{RootRenderable:"object"==typeof r?r:a})}),d.anticipate(t=>{this.onBeforeProjectAsync(t,a)}),d.anticipate(t=>{this.onProjectAsync(t,a)}),"virtual-assignment"!==a.RenderMethod&&(d.anticipate(t=>{this.onAfterProjectAsync(t,a)}),d.anticipate(t=>{this.onAfterRenderAsync(t,a)})),d.wait(p)}renderDefaultAsync(t){this.renderAsync(t)}basicRender(t,e,i){return this.basicRenderWithScope(this,t,e,i)}basicRenderWithScope(t,e,i,n){let r=this.buildRenderOptions(e,i,n);return r.Valid?(this.assignRenderContent(r.Renderable,r.DestinationAddress,this.pict.parseTemplateByHash(r.Renderable.TemplateHash,r.Record,null,[this],t,{RootRenderable:r.Renderable})),!0):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not perform a basic render of ").concat(r.RenderableHash," because it is not valid.")),!1)}basicRenderAsync(t,e,i,n){return this.basicRenderWithScopeAsync(this,t,e,i,n)}basicRenderWithScopeAsync(t,e,i,n,r){let o="function"==typeof r?r:"function"==typeof n?n:"function"==typeof i?i:"function"==typeof e?e:null;o||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," basicRenderAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),o=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," basicRenderAsync Auto Callback Error: ").concat(t),t)});const a=this.buildRenderOptions(e,i,n);if(!a.Valid){let t="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not perform a basic render of ").concat(a.RenderableHash," because it is not valid.");return this.log.error(t),o(new Error(t))}this.pict.parseTemplateByHash(a.Renderable.TemplateHash,a.Record,(t,e)=>t?(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render (asynchronously) ").concat(a.RenderableHash," because it did not parse the template."),t),o(t)):(this.assignRenderContent(a.Renderable,a.DestinationAddress,e),o()),[this],t,{RootRenderable:a.Renderable})}onProject(t){this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onProject:")),"virtual-assignment"===t.RenderMethod&&this.pict.TransactionTracking.pushToTransactionQueue(t.TransactionHash,{ViewHash:this.Hash,Renderable:t},"Deferred-Post-Content-Assignment"),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Assigning Renderable[").concat(t.RenderableHash,"] content length ").concat(t.Content.length," to Destination [").concat(t.ContentDestinationAddress,"] using Async render method ").concat(t.RenderMethod,".")),this.pict.ContentAssignment.projectContent(t.RenderMethod,t.ContentDestinationAddress,t.Content,t.TestAddress),this.lastRenderedTimestamp=this.pict.log.getTimeStamp()}onProjectAsync(t,e){return this.onProject(e),t()}onAfterRender(t){if(this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterRender:")),t&&t.RootRenderableViewHash===this.Hash){const e=this.pict.TransactionTracking.clearTransactionQueue(t.TransactionHash)||[];for(const i of e){const e=this.pict.views[i.Data.ViewHash];e?(e.onAfterProject(),e.onAfterRender(i.Data.Renderable)):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterRender: Could not find view for transaction hash ").concat(t.TransactionHash," and ViewHash ").concat(i.Data.ViewHash,"."))}this.pict.TransactionTracking.unregisterTransaction(t.TransactionHash)}return!0}onAfterRenderAsync(t,e){this.onAfterRender(e);const i=this.fable.newAnticipate(),n=e&&e.RootRenderableViewHash===this.Hash;if(n){const t=this.pict.TransactionTracking.clearTransactionQueue(e.TransactionHash)||[];for(const n of t){const t=this.pict.views[n.Data.ViewHash];t?(i.anticipate(t.onAfterProjectAsync.bind(t)),i.anticipate(e=>{t.onAfterRenderAsync(e,n.Data.Renderable)})):this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterRenderAsync: Could not find view for transaction hash ").concat(e.TransactionHash," and ViewHash ").concat(n.Data.ViewHash,"."))}}return i.wait(i=>(n&&e&&e.TransactionHash&&this.pict.TransactionTracking.unregisterTransaction(e.TransactionHash),t(i)))}onAfterProject(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterProject:")),!0}onAfterProjectAsync(t,e){return t()}onBeforeSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeSolve:")),!0}onBeforeSolveAsync(t){return this.onBeforeSolve(),t()}onSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onSolve:")),!0}onSolveAsync(t){return this.onSolve(),t()}solve(){return this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," executing solve() function...")),this.onBeforeSolve(),this.onSolve(),this.onAfterSolve(),this.lastSolvedTimestamp=this.pict.log.getTimeStamp(),!0}solveAsync(t){let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t?t:null;i||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," solveAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeSolveAsync.bind(this)),e.anticipate(this.onSolveAsync.bind(this)),e.anticipate(this.onAfterSolveAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," solveAsync() complete.")),this.lastSolvedTimestamp=this.pict.log.getTimeStamp(),i(t)))}onAfterSolve(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterSolve:")),!0}onAfterSolveAsync(t){return this.onAfterSolve(),t()}onBeforeMarshalFromView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeMarshalFromView:")),!0}onBeforeMarshalFromViewAsync(t){return this.onBeforeMarshalFromView(),t()}onMarshalFromView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onMarshalFromView:")),!0}onMarshalFromViewAsync(t){return this.onMarshalFromView(),t()}marshalFromView(){return this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," executing solve() function...")),this.onBeforeMarshalFromView(),this.onMarshalFromView(),this.onAfterMarshalFromView(),this.lastMarshalFromViewTimestamp=this.pict.log.getTimeStamp(),!0}marshalFromViewAsync(t){let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t?t:null;i||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalFromViewAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalFromViewAsync.bind(this)),e.anticipate(this.onMarshalFromViewAsync.bind(this)),e.anticipate(this.onAfterMarshalFromViewAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," marshalFromViewAsync() complete.")),this.lastMarshalFromViewTimestamp=this.pict.log.getTimeStamp(),i(t)))}onAfterMarshalFromView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterMarshalFromView:")),!0}onAfterMarshalFromViewAsync(t){return this.onAfterMarshalFromView(),t()}onBeforeMarshalToView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeMarshalToView:")),!0}onBeforeMarshalToViewAsync(t){return this.onBeforeMarshalToView(),t()}onMarshalToView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onMarshalToView:")),!0}onMarshalToViewAsync(t){return this.onMarshalToView(),t()}marshalToView(){return this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," executing solve() function...")),this.onBeforeMarshalToView(),this.onMarshalToView(),this.onAfterMarshalToView(),this.lastMarshalToViewTimestamp=this.pict.log.getTimeStamp(),!0}marshalToViewAsync(t){let e=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),i="function"==typeof t?t:null;i||(this.log.warn("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewAsync was called without a valid callback. A callback will be generated but this could lead to race conditions.")),i=t=>{t&&this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," marshalToViewAsync Auto Callback Error: ").concat(t),t)}),e.anticipate(this.onBeforeMarshalToViewAsync.bind(this)),e.anticipate(this.onMarshalToViewAsync.bind(this)),e.anticipate(this.onAfterMarshalToViewAsync.bind(this)),e.wait(t=>(this.pict.LogNoisiness>2&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," marshalToViewAsync() complete.")),this.lastMarshalToViewTimestamp=this.pict.log.getTimeStamp(),i(t)))}onAfterMarshalToView(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterMarshalToView:")),!0}onAfterMarshalToViewAsync(t){return this.onAfterMarshalToView(),t()}get isPictView(){return!0}}},{"../package.json":37,"fable-serviceproviderbase":3}],39:[function(t,e,i){e.exports={name:"pict-section-form",version:"1.2.0",description:"Pict dynamic form sections",main:"source/Pict-Section-Form.js",directories:{test:"test"},repository:{type:"git",url:"git+https://github.com/fable-retold/pict-section-form.git"},bugs:{url:"https://github.com/fable-retold/pict-section-form/issues"},homepage:"https://github.com/fable-retold/pict-section-form#readme",scripts:{start:"node source/Pict-Section-Form.js",tests:"npx quack test -g",coverage:"npx quack coverage",build:"npx quack build",test:"npx quack test",lint:"eslint source/**",types:"tsc -p .","docker-dev-build":"docker build ./ -f Dockerfile_LUXURYCode -t pict-section-form-image:local","docker-dev-run":'docker run -it -d --name pict-section-form-dev -p 48888:8080 -p 49999:9999 -v "$PWD/.config:/home/coder/.config" -v "$PWD:/home/coder/pict-section-form" -u "$(id -u):$(id -g)" -e "DOCKER_USER=$USER" pict-section-form-image:local',"docker-dev-shell":"docker exec -it pict-section-form-dev /bin/bash"},types:"types/source/Pict-Section-Form.d.ts",author:"steven velozo <steven@velozo.com>",license:"MIT",devDependencies:{"@eslint/js":"^9.39.2","browser-env":"^3.3.0",eslint:"^9.39.2",jquery:"^4.0.0",pict:"^1.0.373","pict-application":"^1.0.34","pict-docuserve":"^1.4.19","pict-service-commandlineutility":"^1.0.19",quackage:"^1.3.0","tui-grid":"^4.21.22",typescript:"^5.9.3"},dependencies:{"chart.js":"^4.5.1","fable-serviceproviderbase":"^3.0.19",marked:"^4.3.0","pict-provider":"^1.0.13","pict-section-excalidraw":"^1.0.3","pict-section-markdowneditor":"^1.0.17","pict-section-tuigrid":"^1.0.31","pict-template":"^1.0.15","pict-view":"^1.0.68"},mocha:{diff:!0,extension:["js"],package:"./package.json",reporter:"spec",slow:"75",timeout:"5000",ui:"tdd","watch-files":["source/**/*.js","test/**/*.js"],"watch-ignore":["lib/vendor"]}}},{}],40:[function(t,e,i){e.exports=t("./views/Pict-View-DynamicForm.js"),e.exports.PictDynamicFormDependencyManager=t("./services/Pict-Service-DynamicFormDependencyManager.js"),e.exports.PictFormTemplateProvider=t("./providers/Pict-Provider-DynamicTemplates.js"),e.exports.PictInputExtensionProvider=t("./providers/Pict-Provider-InputExtension.js"),e.exports.PictFormMetacontroller=t("./views/Pict-View-Form-Metacontroller.js"),e.exports.PictFormApplication=t("./application/Pict-Application-Form.js"),e.exports.PictDynamicLayoutProvider=t("./providers/Pict-Provider-DynamicLayout.js"),e.exports.ManifestFactory=t("./services/ManifestFactory.js"),e.exports.ManifestConversionToCSV=t("./services/ManifestConversionToCSV.js"),e.exports.PictFormSupportBase=t("./views/support/Pict-View-PSF-SupportBase.js"),e.exports.PictFormPersistenceProvider=t("./providers/Pict-Provider-FormPersistence.js"),e.exports.ExtensionViews={LifecycleVisualization:t("./views/support/Pict-View-PSF-LifeCycle-Visualization.js"),DebugViewer:t("./views/support/Pict-View-PSF-DebugViewer.js")},e.exports.RichTextInput=t("./providers/inputs/Pict-Provider-Input-RichText.js"),e.exports.DiagramInput=t("./providers/inputs/Pict-Provider-Input-Diagram.js"),e.exports.themeifySVG=t("./providers/inputs/util/Themeify-SVG.js").themeifySVG},{"./application/Pict-Application-Form.js":41,"./providers/Pict-Provider-DynamicLayout.js":45,"./providers/Pict-Provider-DynamicTemplates.js":49,"./providers/Pict-Provider-FormPersistence.js":50,"./providers/Pict-Provider-InputExtension.js":52,"./providers/inputs/Pict-Provider-Input-Diagram.js":63,"./providers/inputs/Pict-Provider-Input-RichText.js":70,"./providers/inputs/util/Themeify-SVG.js":77,"./services/ManifestConversionToCSV.js":86,"./services/ManifestFactory.js":87,"./services/Pict-Service-DynamicFormDependencyManager.js":88,"./views/Pict-View-DynamicForm.js":103,"./views/Pict-View-Form-Metacontroller.js":104,"./views/support/Pict-View-PSF-DebugViewer.js":107,"./views/support/Pict-View-PSF-LifeCycle-Visualization.js":108,"./views/support/Pict-View-PSF-SupportBase.js":111}],41:[function(t,e,i){const n=t("pict-application"),r=t("../Pict-Section-Form.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.pict.addServiceType("PictSectionForm",r),this.pict.addView("PictFormMetacontroller",{},r.PictFormMetacontroller)}marshalDataFromDynamicViewsToAppData(){this.pict.views.PictFormMetacontroller.marshalFromView()}marshalDataFromAppDataToDynamicViews(){this.pict.views.PictFormMetacontroller.marshalToView()}},e.exports.default_configuration={Name:"A Simple Pict Forms Application",Hash:"PictFormsApp",MainViewportViewIdentifier:"PictFormMetacontroller",AutoSolveAfterInitialize:!1,pict_configuration:{Product:"PictDefaultFormsApp"}}},{"../Pict-Section-Form.js":40,"pict-application":6}],42:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-SolverBehaviors",AutoInitialize:!1,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log,this.cssHideSectionClass="pict-section-form-hidden-section",this.cssHideGroupClass="pict-section-form-hidden-group",this.cssTabularRowHighlightClass="pict-tabular-row-highlight",this.cssTabularColumnHighlightClass="pict-tabular-column-highlight",this.cssSnippet=".pict-section-form-hidden-section { display: none; } .pict-section-form-hidden-group { display: none; } .pict-tabular-row-highlight > td, .pict-tabular-row-highlight > th { background-color: var(--pict-tabular-highlight-color, #FFF3CD) !important; } td.pict-tabular-column-highlight, th.pict-tabular-column-highlight { background-color: var(--pict-tabular-highlight-color, #FFF3CD) !important; }",this.solverOrdinalMap={},this.setCSSSnippets()}setCSSSnippets(t,e){this.cssHideClass=t||this.cssHideClass,this.cssSnippet=e||this.cssSnippet,this.pict.CSSMap.addCSS("Pict-Section-Form-SolverBehaviors",this.cssSnippet,1001,"Pict-DynamicForm-SolverBehaviors"),this.pict.CSSMap.injectCSS()}addSolverFunction(t,e,i,n,r){let o=(e||"").trim().toLowerCase();t.functionMap.hasOwnProperty(o)&&this.log.warn("PictDynamicFormsInformary: Function ".concat(o," already exists in the solver, overwriting with address [").concat(i,"]."));let a={Name:n||"Autogenerated function ".concat(o),Address:i};Array.isArray(r)&&r.length>0&&(a.AddressParameterIndices=r),t.functionMap[o]=a}runSolvers(){this.pict.providers.DynamicSolver.solveViews(void 0,!0)}injectBehaviors(t){return this.addSolverFunction(t,"logvalues","fable.providers.DynamicFormSolverBehaviors.logValues","Logs a set of values to the console and returns the last one."),this.addSolverFunction(t,"unionarrays","fable.providers.DynamicFormSolverBehaviors.unionArrays","Return the union of two arrays."),this.addSolverFunction(t,"differencearrays","fable.providers.DynamicFormSolverBehaviors.differenceArrays","Return the difference of two arrays."),this.addSolverFunction(t,"uniquearray","fable.providers.DynamicFormSolverBehaviors.uniqueArray","Return a new array with only unique values from the input array."),this.addSolverFunction(t,"sortarray","fable.providers.DynamicFormSolverBehaviors.sortArray","Returns a sorted array from the input array."),this.addSolverFunction(t,"showsections","fable.providers.DynamicFormSolverBehaviors.showSections","Shows sections based on hashes in an array.",[0]),this.addSolverFunction(t,"hidesections","fable.providers.DynamicFormSolverBehaviors.hideSections","Hides sections based on hashes in an array.",[0]),this.addSolverFunction(t,"setsectionvisibility","fable.providers.DynamicFormSolverBehaviors.setSectionVisibility","Sets a sections visiblity to true or fales based on the second parameter.",[0]),this.addSolverFunction(t,"setgroupvisibility","fable.providers.DynamicFormSolverBehaviors.setGroupVisibility","Sets a group visiblity to true or fales based on the third parameter.",[0,1]),this.addSolverFunction(t,"generatehtmlhexcolor","fable.providers.DynamicFormSolverBehaviors.generateHTMLHexColor","Generates a HTML hex color from three integer parameters (red, green, blue)."),this.addSolverFunction(t,"colorsectionbackground","fable.providers.DynamicFormSolverBehaviors.colorSectionBackground","Colors a section background with a HTML hex color (e.g. #FF0000 for red).",[0]),this.addSolverFunction(t,"colorgroupbackground","fable.providers.DynamicFormSolverBehaviors.colorGroupBackground","Colors a group background with a HTML hex color (e.g. #FF0000 for red).",[0,1]),this.addSolverFunction(t,"colorinputbackground","fable.providers.DynamicFormSolverBehaviors.colorInputBackground","Colors an input background with a HTML hex color (e.g. #FF0000 for red).",[0,1]),this.addSolverFunction(t,"colorinputbackgroundtabular","fable.providers.DynamicFormSolverBehaviors.colorInputBackgroundTabular","Colors a tabular input background with a HTML hex color (e.g. #FF0000 for red).",[0,1,2]),this.addSolverFunction(t,"highlighttabularrow","fable.providers.DynamicFormSolverBehaviors.highlightTabularRow","Adds (1) or removes (0) a highlight class on every cell of a tabular row.",[0,1]),this.addSolverFunction(t,"highlighttabularcolumn","fable.providers.DynamicFormSolverBehaviors.highlightTabularColumn","Adds (1) or removes (0) a highlight class on every cell of a tabular column.",[0,1]),this.addSolverFunction(t,"colortabularrow","fable.providers.DynamicFormSolverBehaviors.colorTabularRow","Sets (1) or clears (0) the background color on every cell of a tabular row.",[0,1]),this.addSolverFunction(t,"colortabularcolumn","fable.providers.DynamicFormSolverBehaviors.colorTabularColumn","Sets (1) or clears (0) the background color on every cell of a tabular column.",[0,1]),this.addSolverFunction(t,"setsolverordinalenabled","fable.providers.DynamicFormSolverBehaviors.setSolverOrdinalEnabled","Enables or disabled a solver ordinal to determine if it should run."),this.addSolverFunction(t,"enablesolverordinal","fable.providers.DynamicFormSolverBehaviors.enableSolverOrdinal","Enables a solver ordinal so that it can run."),this.addSolverFunction(t,"disablesolverordinall","fable.providers.DynamicFormSolverBehaviors.disableSolverOrdinal","Disables a solver ordinal so that it will not run."),this.addSolverFunction(t,"settabularrowlength","fable.providers.DynamicFormSolverBehaviors.setTabularRowLength","Sets the length of a tabular data set.",[0,1]),this.addSolverFunction(t,"runsolvers","fable.providers.DynamicFormSolverBehaviors.runSolvers","Solves all views."),this.addSolverFunction(t,"refreshtabularsection","fable.providers.DynamicFormSolverBehaviors.refreshTabularSection","Causes a tabular section to refresh its display.",[0,1]),this.addSolverFunction(t,"getglobalformdata","fable.providers.DynamicFormSolverBehaviors.getGlobalFormData","Gets a value from the global form data by hash."),this.addSolverFunction(t,"resolveglobalformdata","fable.providers.DynamicFormSolverBehaviors.resolveGlobalFormData","Resolves a value from the global form data by manyfest address."),this.addSolverFunction(t,"getsectionformdata","fable.providers.DynamicFormSolverBehaviors.getSectionFormData","Gets a value from a specific section by hash or address.",[0]),this.addSolverFunction(t,"getsectiontabularformdata","fable.providers.DynamicFormSolverBehaviors.getSectionTabularFormData","Gets a value from a specific tabular section row by hash or address.",[0,1]),this.addSolverFunction(t,"addcomprehensionentity","fable.providers.DynamicFormSolverBehaviors.addComprehensionEntity","Writes a property/value into the configured comprehension destination, nested as Context -> Entity -> GUID -> Property."),!1}unionArrays(t,e){let i=new Set;if(Array.isArray(t))for(let e=0;e<t.length;e++)i.add(t[e]);if(Array.isArray(e))for(let t=0;t<e.length;t++)i.add(e[t]);return Array.from(i)}differenceArrays(t,e){let i=new Set,n=new Set;if(Array.isArray(t))for(let e=0;e<t.length;e++)i.add(t[e]);if(Array.isArray(e))for(let t=0;t<e.length;t++)n.add(e[t]);let r=new Set;return i.forEach(t=>{n.has(t)||r.add(t)}),Array.from(r)}uniqueArray(t){let e=new Set;if(Array.isArray(t))for(let i=0;i<t.length;i++)e.add(t[i]);return Array.from(e)}sortArray(t){return Array.isArray(t)?t.sort():[]}setSolverOrdinalEnabled(t,e){this.solverOrdinalMap["ORD-".concat(t)]=1==e||"1"==e}enableSolverOrdinal(t){this.solverOrdinalMap["ORD-".concat(t)]=!0}disableSolverOrdinal(t){this.solverOrdinalMap["ORD-".concat(t)]=!1}checkSolverOrdinalEnabled(t){let e="ORD-".concat(t);return!(e in this.solverOrdinalMap)||!0===this.solverOrdinalMap[e]}getSectionSelector(t){return"#SECTION-".concat(t)}setSectionVisibility(t,e){return"0"!=e?this.showSection(t):this.hideSection(t)}showSections(t){const e=Array.isArray(t)?t:[t];for(let t=0;t<e.length;t++)this.showSection(e[t])}hideSections(t){const e=Array.isArray(t)?t:[t];for(let t=0;t<e.length;t++)this.hideSection(e[t])}hideSection(t){let e=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return e?(this.pict.ContentAssignment.hasClass(this.getSectionSelector(e.formID),this.cssHideSectionClass)||this.pict.ContentAssignment.addClass(this.getSectionSelector(e.formID),this.cssHideSectionClass),!0):(this.log.warn("PictDynamicFormsInformary: hideSection could not find section with hash [".concat(t,"].")),!1)}showSection(t){let e=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return e?!this.pict.ContentAssignment.hasClass(this.getSectionSelector(e.formID),this.cssHideSectionClass)||(this.pict.ContentAssignment.removeClass(this.getSectionSelector(e.formID),this.cssHideSectionClass),!0):(this.log.warn("PictDynamicFormsInformary: showSection could not find section with hash [".concat(t,"].")),!1)}getGroupSelector(t,e){return"#GROUP-".concat(t,"-").concat(e)}setGroupVisibility(t,e,i){return"0"!=i?this.showGroup(t,e):this.hideGroup(t,e)}hideGroup(t,e){let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return i?(this.pict.ContentAssignment.hasClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass)||this.pict.ContentAssignment.addClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass),!0):(this.log.warn("PictDynamicFormsInformary: hideGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1)}showGroup(t,e){let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return i?!this.pict.ContentAssignment.hasClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass)||(this.pict.ContentAssignment.removeClass(this.getGroupSelector(i.formID,e),this.cssHideGroupClass),!0):(this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1)}refreshTabularSection(t,e){const i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!i)return void this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"]."));const n=i.getGroupIndexFromHash(e);if(n<0)return void this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find group with section hash [".concat(t,"] group [").concat(e,"]."));const r=i.getGroup(n);if(r){const t=this.pict.views.PictFormMetacontroller.filterViews(t=>{if(!t.isPictSectionForm)return!1;const e=t.getGroups();for(let t=0;t<e.length;t++)if(e[t].RecordSetAddress==r.RecordSetAddress)return!0;return!1});for(let e=0;e<t.length;e++)t[e].render();this.pict.views.PictFormMetacontroller.marshalFormSections()}}setTabularRowLength(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!r)return this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;let o=r.getGroupIndexFromHash(e);if(o<0)return this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;let a=r.getTabularRecordSet(o);if(!a||!Array.isArray(a))return this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find a valid tabular record set with section hash [".concat(t,"] group [").concat(e,"].")),!1;let s=parseInt(i.toString());if(isNaN(s)||s<0)return this.log.warn("PictDynamicFormsInformary: setTabularRowLength was given an invalid length [".concat(i,"] with section hash [").concat(t,"] group [").concat(e,"].")),!1;let c=a.length,l=1==n||"1"==n;if(s>c)for(let t=c;t<s;t++)r.createDynamicTableRow(o);else if(s<c&&l)for(let t=c-1;t>=s;t--)r.deleteDynamicTableRow(o,t)}generateHTMLHexColor(t,e,i){let n=parseInt(t)||0,r=parseInt(e)||0,o=parseInt(i)||0;n<0&&(n=0),n>255&&(n=255),r<0&&(r=0),r>255&&(r=255),o<0&&(o=0),o>255&&(o=255);let a=n.toString(16).toUpperCase();a.length<2&&(a="0".concat(a));let s=r.toString(16).toUpperCase();s.length<2&&(s="0".concat(s));let c=o.toString(16).toUpperCase();return c.length<2&&(c="0".concat(c)),"#".concat(a).concat(s).concat(c)}colorSectionBackground(t,e,i){if("0"==i)return!0;let n=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!n)return this.log.warn("PictDynamicFormsInformary: colorSection could not find section with hash [".concat(t,"].")),!1;let r=this.pict.ContentAssignment.getElement(this.getSectionSelector(n.formID));return r.length<1?(this.log.warn("PictDynamicFormsInformary: colorSection could not find section element with hash [".concat(t,"] selector [").concat(this.getSectionSelector(n.formID),"].")),!1):(r[0].style.backgroundColor=e,!0)}colorGroupBackground(t,e,i,n){if("0"==n)return!0;let r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!r)return this.log.warn("PictDynamicFormsInformary: colorGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;let o=this.pict.ContentAssignment.getElement(this.getGroupSelector(r.formID,e));return o.length<1?(this.log.warn("PictDynamicFormsInformary: colorGroup could not find group element with section hash [".concat(t,"] group [").concat(e,"] selector [").concat(this.getGroupSelector(r.formID,e),"].")),!1):(o[0].style.backgroundColor=i,!0)}colorInputBackground(t,e,i,n,r){if("0"==n)return!0;let o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!o)return this.log.warn("PictDynamicFormsInformary: colorInput could not find input with section hash [".concat(t,"] input [").concat(e,"].")),!1;let a=o.getInputFromHash(e);if(!a)return this.log.warn("PictDynamicFormsInformary: colorInput could not find input with section hash [".concat(t,"] input [").concat(e,"].")),!1;let s=this.pict.ContentAssignment.getElement(a.Macro.HTMLSelectorControl);return s.length<1&&(s=this.pict.ContentAssignment.getElement("#".concat(a.Macro.RawHTMLID))),s.length<1?(this.log.warn("PictDynamicFormsInformary: colorInput could not find input element with section hash [".concat(t,"] input [").concat(e,"] selector [#").concat(a.Macro.RawHTMLID,"].")),!1):this.colorElementBackground(s,i,r)}colorInputBackgroundTabular(t,e,i,n,r,o,a){let s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"TABULAR-DATA-";if("0"==o)return!0;let c=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!c)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"].")),!1;let l=c.getTabularRecordInputByHash(e,i);if(!l)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"].")),!1;if(!l.Macro)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"] is missing Macro data.")),!1;const p=l.Macro.HTMLSelectorControlTabular+'[data-i-index="'.concat(n,'"]');let d=this.pict.ContentAssignment.getElement(p);return d.length<1&&(d=this.pict.ContentAssignment.getElement("#".concat(s).concat(l.Macro.RawHTMLID,"-").concat(n))),d.length<1?(this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input element with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(i,"] row index [").concat(n,"] selector [#").concat(l.Macro.RawHTMLID,"-").concat(n,"].")),!1):this.colorElementBackground(d,r,a)}colorElementBackground(t,e,i){let n=t[0];if(i)for(let e=0;e<t.length;e++){const r=t[e].closest("".concat(i));if(r&&r instanceof HTMLElement){n=r;break}}return n.style.backgroundColor=e,!0}isSolverFlagEnabled(t){return null!=t&&!1!==t&&0!==t&&"0"!==t&&""!==t&&"false"!==t}getTabularGroupSelector(t,e){if(!this.pict.views.PictFormMetacontroller)return this.log.warn("PictDynamicFormsSolverBehaviors: getTabularGroupSelector has no PictFormMetacontroller."),null;let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return i?"#GROUP-".concat(i.formID,"-").concat(e):(this.log.warn("PictDynamicFormsSolverBehaviors: getTabularGroupSelector could not find section view with hash [".concat(t,"].")),null)}highlightTabularRow(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a="string"==typeof r&&r.length>0?r:this.cssTabularRowHighlightClass,s="".concat(o,' tr[data-tabular-row-index="').concat(i,'"]');return this.isSolverFlagEnabled(n)?this.pict.ContentAssignment.addClass(s,a):this.pict.ContentAssignment.removeClass(s,a),!0}highlightTabularColumn(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a="string"==typeof r&&r.length>0?r:this.cssTabularColumnHighlightClass,s="".concat(o,' [data-tabular-column-index="').concat(i,'"]');return this.isSolverFlagEnabled(n)?this.pict.ContentAssignment.addClass(s,a):this.pict.ContentAssignment.removeClass(s,a),!0}colorTabularRow(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a=this.isSolverFlagEnabled(r)&&"string"==typeof n&&n.length>0,s=this.pict.ContentAssignment.getElement("".concat(o,' tr[data-tabular-row-index="').concat(i,'"] td'));for(let t=0;t<s.length;t++)a?s[t].style.setProperty("background-color",n,"important"):s[t].style.removeProperty("background-color");return!0}colorTabularColumn(t,e,i,n,r){let o=this.getTabularGroupSelector(t,e);if(!o)return!1;let a=this.isSolverFlagEnabled(r)&&"string"==typeof n&&n.length>0,s=this.pict.ContentAssignment.getElement("".concat(o,' [data-tabular-column-index="').concat(i,'"]'));for(let t=0;t<s.length;t++)a?s[t].style.setProperty("background-color",n,"important"):s[t].style.removeProperty("background-color");return!0}getGlobalFormData(t){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("getGlobalFormData: No PictFormMetacontroller available.");let e=this.pict.views.PictFormMetacontroller.viewMarshalDestination,i=this.pict.resolveStateFromAddress(e);return"object"==typeof i&&null!==i||(i=this.pict.AppData),this.pict.manifest.getValueByHash(i,t)}resolveGlobalFormData(t){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("resolveGlobalFormData: No PictFormMetacontroller available.");let e=this.pict.views.PictFormMetacontroller.viewMarshalDestination,i=this.pict.resolveStateFromAddress(e);return"object"==typeof i&&null!==i||(i=this.pict.AppData),this.pict.manifest.getValueAtAddress(i,t)}getSectionFormData(t,e){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("getSectionFormData: No PictFormMetacontroller available.");let i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(i)return i.getValueByHash(e);this.log.warn("getSectionFormData: Could not find section view with hash [".concat(t,"]."))}getSectionTabularFormData(t,e,i,n){if(!this.pict.views.PictFormMetacontroller)return void this.log.warn("getSectionTabularFormData: No PictFormMetacontroller available.");let r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!r)return void this.log.warn("getSectionTabularFormData: Could not find section view with hash [".concat(t,"]."));let o=r.getGroupIndexFromHash(e);if(o<0)return void this.log.warn("getSectionTabularFormData: Could not find group with hash [".concat(e,"] in section [").concat(t,"]."));let a=r.getGroup(o);if(!a)return void this.log.warn("getSectionTabularFormData: Could not get group at index ".concat(o," in section [").concat(t,"]."));let s=r.getTabularRecordSet(o);if(!s)return void this.log.warn("getSectionTabularFormData: Could not find tabular record set for group [".concat(e,"] in section [").concat(t,"]."));let c=parseInt(i.toString());if(isNaN(c)||c<0)return void this.log.warn("getSectionTabularFormData: Invalid row index [".concat(i,"] for group [").concat(e,"] in section [").concat(t,"]."));if(c>=s.length)return void this.log.warn("getSectionTabularFormData: Row index [".concat(c,"] out of bounds for group [").concat(e,"] in section [").concat(t,"] (length ").concat(s.length,")."));let l=s[c];if(l&&"object"==typeof l)return a.supportingManifest?a.supportingManifest.getValueByHash(l,n):n in l?l[n]:void 0;this.log.warn("getSectionTabularFormData: No valid record at row index [".concat(c,"] for group [").concat(e,"] in section [").concat(t,"]."))}logValues(){let t=null,e="Solver logvalues call: ";for(let i=0;i<arguments.length;i++)t=arguments[i],e+=" [".concat(i,"]=[").concat(t,"]");return this.log.info(e),t}resolveComprehensionDestination(){let t="AppData.FormEntityComprehensions";this.pict.views.PictFormMetacontroller&&"string"==typeof this.pict.views.PictFormMetacontroller.comprehensionDestinationAddress&&this.pict.views.PictFormMetacontroller.comprehensionDestinationAddress.length>0&&(t=this.pict.views.PictFormMetacontroller.comprehensionDestinationAddress);let e=this.pict.resolveStateFromAddress(t);return e&&"object"==typeof e?e:null!=e&&"object"!=typeof e?(this.log.warn("addComprehensionEntity: comprehension destination [".concat(t,"] resolves to a non-object value; refusing to overwrite.")),null):(this.pict.setStateValueAtAddress(t,null,{}),this.pict.resolveStateFromAddress(t))}addComprehensionEntity(t,e,i,n,r){if(null==t||null==e||null==i||null==n)return void this.log.warn("addComprehensionEntity: ignoring call with null/undefined parts (Context=[".concat(t,"], Entity=[").concat(e,"], GUID=[").concat(i,"], Property=[").concat(n,"])."));let o=String(t),a=String(e),s=String(i),c=String(n);if(o.length<1||a.length<1||s.length<1||c.length<1)return void this.log.warn("addComprehensionEntity: ignoring call with empty parts (Context=[".concat(o,"], Entity=[").concat(a,"], GUID=[").concat(s,"], Property=[").concat(c,"])."));let l=this.resolveComprehensionDestination();if(!l)return;let p=o.split("."),d=l;for(let t=0;t<p.length;t++){let e=p[t];e.length<1||(d[e]&&"object"==typeof d[e]||(d[e]={}),d=d[e])}d[a]&&"object"==typeof d[a]||(d[a]={});let u=d[a];return u[s]&&"object"==typeof u[s]||(u[s]={}),u[s][c]=r,r}},e.exports.default_configuration=r},{"pict-provider":9}],43:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Input",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.templateProviderMap={},this.ignoredEventHashes={}}registerIgnoredEventHash(t){this.ignoredEventHashes[t]=!0}getInputTemplateHash(t,e){if(e.IsTabular){let i="-TabularTemplate-Begin-Input-InputType-".concat(e.PictForm.InputType),n="-TabularTemplate-End-Input-InputType-".concat(e.PictForm.InputType),r="-TabularTemplate-Begin-Input-DataType-".concat(e.DataType),o="-TabularTemplate-End-Input-DataType-".concat(e.DataType);if(t.checkViewSpecificTemplate(i)&&t.checkViewSpecificTemplate(n))return t.getViewSpecificTemplateHash(i);if(t.checkThemeSpecificTemplate(i)&&t.checkThemeSpecificTemplate(n))return t.getThemeSpecificTemplateHash(i);if(t.checkViewSpecificTemplate(r)&&t.checkViewSpecificTemplate(o))return t.getViewSpecificTemplateHash(r);if(t.checkThemeSpecificTemplate(r)&&t.checkThemeSpecificTemplate(o))return t.getThemeSpecificTemplateHash(r)}else{let i="-Template-Input-InputType-".concat(e.PictForm.InputType),n="-Template-Input-DataType-".concat(e.DataType);if(t.checkViewSpecificTemplate(i))return t.getViewSpecificTemplateHash(i);if(t.checkThemeSpecificTemplate(i))return t.getThemeSpecificTemplateHash(i);if(t.checkViewSpecificTemplate(n))return t.getViewSpecificTemplateHash(n);if(t.checkThemeSpecificTemplate(n))return t.getThemeSpecificTemplateHash(n)}return!1}addDefaultInputProvider(t,e){t in this.templateProviderMap||(this.templateProviderMap[t]=[]),this.templateProviderMap[t].indexOf(e)<0&&this.templateProviderMap[t].push(e)}getDefaultInputProviders(t,e){let i=this.getInputTemplateHash(t,e);return i&&this.templateProviderMap[i]?this.templateProviderMap[i]:[]}},e.exports.default_configuration=r},{"pict-provider":9}],44:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-InputEvents",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i)}inputDataRequest(t,e,i){if(e){let n=t.getInputFromHash(e);if(i){let t;if(t="string"==typeof i?i:i.namespace?"".concat(i.type,".").concat(i.namespace):i.type,this.pict.providers.DynamicInput.ignoredEventHashes[t])return}let r=t.sectionManifest.resolveHashAddress(e);try{let e=t.getMarshalDestinationObject(),i=t.sectionManifest.getValueByHash(e,r),o=t.getInputProviderList(n);for(let e=0;e<o.length;e++)t.pict.providers[o[e]]?t.pict.providers[o[e]].onDataRequest(t,n,i,n.Macro.HTMLSelector):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] inputDataRequest cannot find embedded provider [").concat(o[e],"] for input [").concat(n.Hash,"]."))}catch(i){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error running inputDataRequest specific (").concat(e,") data from view in dataChanged event: ").concat(i))}}else t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find input hash [").concat(e,"] for inputDataRequest event."))}inputEvent(t,e,i,n){const r=n&&"string"==typeof n?n:this.pict.getUUID();let o=t.getInputFromHash(e);if(e){let a=t.sectionManifest.resolveHashAddress(e);try{let e=t.getMarshalDestinationObject(),s=t.sectionManifest.getValueByHash(e,a),c=t.getInputProviderList(o);for(let e=0;e<c.length;e++)t.pict.providers[c[e]]?o.Macro&&(t.pict.providers[c[e]].onEvent(t,o,s,o.Macro.HTMLSelector,i,r),t.registerOnTransactionCompleteCallback(r,()=>{t.pict.providers[c[e]].onAfterEventCompletion(t,o,s,o.Macro.HTMLSelector,i,r)})):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] inputEvent ").concat(i," cannot find embedded provider [").concat(c[e],"] for input [").concat(o.Hash,"]."));n!==r&&t.finalizeTransaction(r)}catch(n){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error running inputEvent ").concat(i," specific (").concat(e,") data from view in dataChanged event: ").concat(n))}}else t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find input hash [").concat(e,"] for inputEvent ").concat(i," event."))}inputDataRequestTabular(t,e,i,n,r){let o=t.getTabularRecordInput(e,i);if(e&&i&&n&&o){if(r){let t;if(t="string"==typeof r?r:r.namespace?"".concat(r.type,".").concat(r.namespace):r.type,this.pict.providers.DynamicInput.ignoredEventHashes[t])return}try{let e=t.getMarshalDestinationObject(),i=t.pict.providers.Informary.getComposedContainerAddress(o.PictForm.InformaryContainerAddress,n,o.PictForm.InformaryDataAddress),r=t.sectionManifest.getValueByHash(e,i),a=o.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(n,'"]'),s=t.getInputProviderList(o);for(let e=0;e<s.length;e++)t.pict.providers[s[e]]?t.pict.providers[s[e]].onDataRequestTabular(t,o,r,a,n):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find embedded provider [").concat(s[e],"] for input [").concat(o.Hash,"] row ").concat(n,"."))}catch(r){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error marshaling specific (").concat(e," | ").concat(i," | ").concat(n,") tabular data for group ").concat(e," row ").concat(n," from view in dataChanged event: ").concat(r))}}else t.marshalFromView()}inputEventTabular(t,e,i,n,r,o){const a=o&&"string"==typeof o?o:this.pict.getUUID();let s=t.getTabularRecordInput(e,i);if(null!=e&&null!=i&&null!=n&&s)try{let e=t.getMarshalDestinationObject(),i=t.pict.providers.Informary.getComposedContainerAddress(s.PictForm.InformaryContainerAddress,n,s.PictForm.InformaryDataAddress),c=t.sectionManifest.getValueByHash(e,i),l=s.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(n,'"]'),p=t.getInputProviderList(s);for(let e=0;e<p.length;e++)t.pict.providers[p[e]]?(t.pict.providers[p[e]].onEventTabular(t,s,c,l,n,r,a),t.registerOnTransactionCompleteCallback(a,()=>{t.pict.providers[p[e]].onAfterEventTabularCompletion(t,s,c,l,n,r,a)})):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find embedded provider [").concat(p[e],"] for input [").concat(s.Hash,"] row ").concat(n," calling inputEvent ").concat(r,"."));o!==a&&t.finalizeTransaction(a)}catch(o){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error marshaling specific (").concat(e," | ").concat(i," | ").concat(n,") tabular data for group ").concat(e," row ").concat(n," from view in calling inputEvent ").concat(r,": ").concat(o))}}},e.exports.default_configuration=r},{"pict-provider":9}],45:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Layout",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i)}generateGroupLayoutTemplate(t,e){return""}onGroupLayoutInitialize(t,e){return!0}onDataMarshalToForm(t,e){return!0}},e.exports.default_configuration=r},{"pict-provider":9}],46:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-RecordSet",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.recordProviders={}}count(t,e){return e()}readRecordList(t,e){return e()}readRecord(t,e){return e()}writeRecord(t,e){return e()}deleteRecord(t,e){return e()}},e.exports.default_configuration=r},{"pict-provider":9}],47:[function(t,e,i){const n=t("pict-provider"),r=t("./Pict-Provider-DynamicFormSolverBehaviors.js"),o=t("./Pict-Provider-ListDistilling.js"),a=t("./Pict-Provider-MetaLists.js"),s=t("./inputs/Pict-Provider-Input-Select.js"),c=t("./inputs/Pict-Provider-Input-DateTime.js"),l=t("./inputs/Pict-Provider-Input-TabGroupSelector.js"),p=t("./inputs/Pict-Provider-Input-TabSectionSelector.js"),d=t("./inputs/Pict-Provider-Input-EntityBundleRequest.js"),u=t("./inputs/Pict-Provider-Input-AutofillTriggerGroup.js"),h=t("./inputs/Pict-Provider-Input-Markdown.js"),m=t("./inputs/Pict-Provider-Input-HTML.js"),g=t("./inputs/Pict-Provider-Input-Templated.js"),f=t("./inputs/Pict-Provider-Input-PreciseNumber.js"),D=t("./inputs/Pict-Provider-Input-Link.js"),y=t("./inputs/Pict-Provider-Input-TemplatedEntityLookup.js"),v=t("./inputs/Pict-Provider-Input-Chart.js"),b=t("./inputs/Pict-Provider-Input-TabularTriggerGroup.js"),T={ProviderIdentifier:"Pict-DynamicForms-Solver",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(T)),e),i),this.pict,this.fable,this.log,this.UUID,this.Hash,this._RunSolversRegex=/\brunsolvers\b/gi,this.fable.instantiateServiceProviderIfNotExists("ExpressionParser"),this.pict.addProviderSingleton("DynamicFormSolverBehaviors",r.default_configuration,r),this.pict.providers.DynamicFormSolverBehaviors.injectBehaviors(this.fable.ExpressionParser),this.pict.addProviderSingleton("DynamicMetaLists",a.default_configuration,a),this.pict.addProviderSingleton("ListDistilling",o.default_configuration,o),this.pict.addProviderSingleton("Pict-Input-Select",s.default_configuration,s),this.pict.addProviderSingleton("Pict-Input-DateTime",c.default_configuration,c),this.pict.addProviderSingleton("Pict-Input-TabGroupSelector",l.default_configuration,l),this.pict.addProviderSingleton("Pict-Input-TabSectionSelector",p.default_configuration,p),this.pict.addProviderSingleton("Pict-Input-EntityBundleRequest",d.default_configuration,d),this.pict.addProviderSingleton("Pict-Input-AutofillTriggerGroup",u.default_configuration,u),this.pict.addProviderSingleton("Pict-Input-Markdown",h.default_configuration,h),this.pict.addProviderSingleton("Pict-Input-HTML",m.default_configuration,m),this.pict.addProviderSingleton("Pict-Input-Templated",g.default_configuration,g),this.pict.addProviderSingleton("Pict-Input-PreciseNumber",f.default_configuration,f),this.pict.addProviderSingleton("Pict-Input-TemplatedEntityLookup",y.default_configuration,y),this.pict.addProviderSingleton("Pict-Input-Link",D.default_configuration,D),this.pict.addProviderSingleton("Pict-Input-Chart",v.default_configuration,v),this.pict.addProviderSingleton("Pict-Input-TabularTriggerGroup",b.default_configuration,b)}logSolveOutcome(t){let e=t;if("object"==typeof e&&null!==e||(e=this.lastSolveOutcome),"object"!=typeof e||null===e)return void this.log.error("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] No solve outcome available to log."));let i=e.SolverResultsMap.ExecutedSolvers.length;this.log.info("DynamicSolver completed solving ".concat(i," solvers in ").concat(e.EndTimeStamp-e.StartTimeStamp," ms."));for(let t=0;t<e.SolverResultsMap.ExecutedSolvers.length;t++){var n;let i=e.SolverResultsMap.ExecutedSolvers[t];this.log.info(" Solver [".concat(i.Hash,"] Ordinal ").concat(i.Ordinal," executed in ").concat(i.EndTimeStamp-i.StartTimeStamp,"ms solving for [").concat(null==i||null===(n=i.ResultsObject)||void 0===n?void 0:n.PostfixedAssignmentAddress,"] expression [").concat(i.Expression,"]"))}}prepareSolverResultsMap(t){let e=t;return"object"==typeof e&&null!==e||(e={}),"ExecutedSolvers"in e||(e.ExecutedSolvers=[]),"SolverResolutionMap"in e||(e.SolverResolutionMap={}),e}backfillSolverDependencies(t){let e=t;if("object"==typeof e&&null!==e||(e=this.lastSolveOutcome),"object"==typeof e&&null!==e){for(let t=0;t<e.SolverResultsMap.ExecutedSolvers.length;t++){let i=e.SolverResultsMap.ExecutedSolvers[t];if("ResultsObject"in i&&"object"==typeof i.ResultsObject&&null!==i.ResultsObject&&i.ResultsObject.PostfixedAssignmentAddress&&"Result"!=i.ResultsObject.PostfixedAssignmentAddress){"object"!=typeof e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress]&&(e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress]={});for(let t=0;t<i.ResultsObject.PostfixTokenObjects.length;t++){let n=i.ResultsObject.PostfixTokenObjects[t];"Token.Symbol"==n.Type&&(n.Token in e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress]||(e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress][n.Token]=0),e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress][n.Token]=e.SolverResultsMap.SolverResolutionMap[i.ResultsObject.PostfixedAssignmentAddress][n.Token]+1)}}}return e}this.log.error("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] No solve outcome available to backfill solver dependencies."))}runSolver(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.pict.resolveStateFromAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination);"object"==typeof i&&null!==i||(i=this.pict.AppData);let n={},r=this.fable.ExpressionParser.solve(t,i,n,this.pict.manifest);return n.fable&&delete n.fable,e||this.pict.log.trace("Manual solve executed for expression: ".concat(t),n),r}checkSolver(t,e,i){let n=t;if(void 0!==n)if("string"==typeof n&&(n={Expression:n,Ordinal:1}),"Expression"in n){if("Ordinal"in n||(n.Ordinal=1),!e||n.Ordinal==i)return n}else this.log.error("Dynamic View solver ".concat(i," is missing the Expression property."),{Solver:t})}executeSolvers(t,e,i){const n=Array.isArray(e)?e:[];let r={SolverResultsMap:{}};r.StartTimeStamp=+new Date;let o={};r.SolveOrdinals=o;for(let t=0;t<n.length;t++){const e=this.checkSolver(n[t]);if(e){this.checkAutoSolveOrdinal(e.Ordinal,o).AdhocSolvers.push(e)}}let a=Object.keys(o);a.sort((t,e)=>isNaN(Number(t))||isNaN(Number(e))?t.localeCompare(e):Number(t)-Number(e));for(let e=0;e<a.length;e++){this.pict.LogNoisiness>1&&this.log.trace("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] [").concat(i,"] Solving ordinal ").concat(a[e]));let n=o[a[e]];this.pict.providers.DynamicFormSolverBehaviors.checkSolverOrdinalEnabled(a[e])&&this.executeAdhocSolvers(t,n.AdhocSolvers,i,Number(a[e]),r.SolverResultsMap)}r.EndTimeStamp=+new Date,this.lastAdhocSolveOutcome=r}executeAdhocSolvers(t,e,i,n,r){let o=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=void 0!==n,s=this.prepareSolverResultsMap(r);for(let r=0;r<e.length;r++){let c=this.checkSolver(e[r],a,n);if(void 0===c)continue;if(o&&c.Expression.match(this._RunSolversRegex)){this.pict.LogNoisiness>0&&t.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] [").concat(i,"] skipping RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"] due to solver cycle prevention."));continue}c.StartTimeStamp=+new Date,c.Hash="AdhocSolver-".concat(r),this.pict.LogNoisiness>1&&this.pict.log.trace("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] [").concat(i,"] solving equation ").concat(r," ordinal ").concat(c.Ordinal," [").concat(t.options.Solvers[r],"]")),c.ResultsObject={};let l=this.fable.ExpressionParser.solve(c.Expression,t.getMarshalDestinationObject(),c.ResultsObject,this.pict.manifest,t.getMarshalDestinationObject());this.pict.LogNoisiness>1&&this.pict.log.trace("[".concat(c.Expression,"] [").concat(i,"] result was ").concat(l)),s.ExecutedSolvers.push(c),c.EndTimeStamp=+new Date}}executeGroupSolvers(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=void 0!==e,o=this.prepareSolverResultsMap(i);for(let i=0;i<t.length;i++){let a=this.pict.views[t[i].ViewHash],s=a.getGroup(t[i].GroupIndex),c=this.checkSolver(t[i].Solver,r,e);if(void 0===c)continue;if(n&&c.Expression.match(this._RunSolversRegex)){this.pict.LogNoisiness>0&&a.log.warn("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] skipping RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"] due to solver cycle prevention."));continue}c.StartTimeStamp=Date.now(),c.Hash="".concat(t[i].ViewHash,"-GroupSolver-").concat(i),this.pict.LogNoisiness>1&&a.log.trace("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] solving RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"]"));let l=a.getTabularRecordSet(s.GroupIndex);if(Array.isArray(l))for(let t=0;t<l.length;t++){let e=l[t];c.ResultsObject={};let i=a.fable.ExpressionParser.solve(c.Expression,e,c.ResultsObject,s.supportingManifest,e);this.pict.LogNoisiness>1&&a.log.trace("Group ".concat(s.Hash," [").concat(c.Expression,"] record ").concat(t," result was ").concat(i))}else if("object"==typeof l){let t=Object.keys(l);for(let e=0;e<t.length;e++){let i=l[t[e]];c.ResultsObject={};let n=a.fable.ExpressionParser.solve(c.Expression,i,c.ResultsObject,s.supportingManifest,i);this.pict.LogNoisiness>1&&a.log.trace("Group ".concat(s.Hash," [").concat(c.Expression,"] record ").concat(e," result was ").concat(n))}}o.ExecutedSolvers.push(c),c.EndTimeStamp=Date.now()}}executeSectionSolvers(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=void 0!==e,o=this.prepareSolverResultsMap(i);for(let i=0;i<t.length;i++){let a=this.pict.views[t[i].ViewHash],s=this.checkSolver(t[i].Solver,r,e);if(void 0===s)continue;if(n&&s.Expression.match(this._RunSolversRegex)){this.pict.LogNoisiness>0&&a.log.warn("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] skipping RecordSet ordinal ").concat(s.Ordinal," [").concat(s.Expression,"] due to solver cycle prevention."));continue}s.StartTimeStamp=+new Date,s.Hash="".concat(t[i].ViewHash,"-SectionSolver-").concat(i),this.pict.LogNoisiness>1&&a.log.trace("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] solving equation ").concat(i," ordinal ").concat(s.Ordinal," [").concat(a.options.Solvers[i],"]")),s.ResultsObject={};let c=a.fable.ExpressionParser.solve(s.Expression,a.getMarshalDestinationObject(),s.ResultsObject,this.pict.manifest,a.getMarshalDestinationObject());this.pict.LogNoisiness>1&&a.log.trace("[".concat(s.Expression,"] result was ").concat(c)),o.ExecutedSolvers.push(s),s.EndTimeStamp=+new Date}}executeViewSolvers(t,e,i){let n=void 0!==e,r=this.prepareSolverResultsMap(i);for(let i=0;i<t.length;i++){let o=this.checkSolver(t[i].Solver,n,e);if(void 0===o)continue;o.Hash="".concat(t[i].ViewHash,"-ViewSolve-").concat(i),o.StartTimeStamp=+new Date;let a=this.pict.views[t[i].ViewHash];this.pict.LogNoisiness>1&&a.log.trace("Dynamic View [".concat(a.UUID,"]::[").concat(a.Hash,"] running solve() on view [").concat(t[i].ViewHash)),a.solve(),r.ExecutedSolvers.push(o),o.EndTimeStamp=+new Date}}executeValidationSolvers(t){var e;let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=null===(e=this.pict.views.PictFormMetacontroller)||void 0===e||null===(e=e.manifestDescription)||void 0===e?void 0:e.ValidationSolvers;if(!Array.isArray(n))return;const r=this.pict.views.PictFormMetacontroller&&this.pict.resolveStateFromAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination)||this.pict.AppData;for(let e=0;e<n.length;e++){const o=this.checkSolver(n[e]);void 0!==o&&(i&&o.Expression.match(this._RunSolversRegex)?this.pict.LogNoisiness>0&&this.pict.log.warn("Skipping Validation Solver ordinal ".concat(o.Ordinal," [").concat(o.Expression,"] due to solver cycle prevention.")):(this.pict.LogNoisiness>1&&this.pict.log.trace("Running validation solver ordinal ".concat(o.Ordinal," [").concat(o.Expression,"]")),this.pict.ExpressionParser.solve(o.Expression,r,t,this.pict.manifest,this.pict.AppData)))}}checkAutoSolveOrdinal(t,e){return t.toString()in e||(e[t.toString()]={ViewSolvers:[],SectionSolvers:[],GroupSolvers:[],AdhocSolvers:[]}),e[t]}solveViews(t,e){let i=Array.isArray(t)?t:Object.keys(this.fable.views);const n=!0===e;let r={SolverResultsMap:{}};r.StartTimeStamp=+new Date,r.ViewHashes=i;let o={};r.SolveOrdinals=o;for(let t=0;t<i.length;t++){let e=this.fable.views[i[t]];if(!e.isPictView||e.isPictSectionForm||e.isPictMetacontroller){if(e.isPictSectionForm){for(let n=0;n<e.sectionDefinition.Groups.length;n++){let r=e.getGroup(n);if("RecordSetSolvers"in r)for(let e=0;e<r.RecordSetSolvers.length;e++){let a=this.checkSolver(r.RecordSetSolvers[e]);if(a){this.checkAutoSolveOrdinal(a.Ordinal,o).GroupSolvers.push({ViewHash:i[t],GroupIndex:n,Solver:a})}}}if(Array.isArray(e.options.Solvers))for(let n=0;n<e.options.Solvers.length;n++){let r=this.checkSolver(e.options.Solvers[n]);if(r){this.checkAutoSolveOrdinal(r.Ordinal,o).SectionSolvers.push({ViewHash:i[t],Solver:r})}}}}else{this.checkAutoSolveOrdinal(e.options.AutoSolveOrdinal,o).ViewSolvers.push({ViewHash:i[t]})}}let a=Object.keys(o);a.sort((t,e)=>isNaN(Number(t))||isNaN(Number(e))?t.localeCompare(e):Number(t)-Number(e));for(let t=0;t<a.length;t++){this.pict.LogNoisiness>1&&this.log.trace("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] Solving ordinal ").concat(a[t]));let e=o[a[t]];this.pict.providers.DynamicFormSolverBehaviors.checkSolverOrdinalEnabled(a[t])&&(this.executeGroupSolvers(e.GroupSolvers,Number(a[t]),r.SolverResultsMap,n),this.executeSectionSolvers(e.SectionSolvers,Number(a[t]),r.SolverResultsMap,n),this.executeViewSolvers(e.ViewSolvers,Number(a[t]),r.SolverResultsMap))}return this.executeValidationSolvers(r.SolverResultsMap,n),this.pict.providers.DynamicMetaLists.buildViewSpecificLists(i),r.EndTimeStamp=+new Date,this.lastSolveOutcome=r,i}},e.exports.default_configuration=T},{"./Pict-Provider-DynamicFormSolverBehaviors.js":42,"./Pict-Provider-ListDistilling.js":53,"./Pict-Provider-MetaLists.js":54,"./inputs/Pict-Provider-Input-AutofillTriggerGroup.js":59,"./inputs/Pict-Provider-Input-Chart.js":60,"./inputs/Pict-Provider-Input-DateTime.js":61,"./inputs/Pict-Provider-Input-EntityBundleRequest.js":64,"./inputs/Pict-Provider-Input-HTML.js":65,"./inputs/Pict-Provider-Input-Link.js":66,"./inputs/Pict-Provider-Input-Markdown.js":67,"./inputs/Pict-Provider-Input-PreciseNumber.js":68,"./inputs/Pict-Provider-Input-Select.js":71,"./inputs/Pict-Provider-Input-TabGroupSelector.js":72,"./inputs/Pict-Provider-Input-TabSectionSelector.js":73,"./inputs/Pict-Provider-Input-TabularTriggerGroup.js":74,"./inputs/Pict-Provider-Input-Templated.js":75,"./inputs/Pict-Provider-Input-TemplatedEntityLookup.js":76,"pict-provider":9}],48:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-DynamicTabularData",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log}getTabularRecordSet(t,e){let i=t.getGroup(e);return i&&null!=i&&i.RecordSetAddress?t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress):(this.log.warn("PICT View Metatemplate Helper getTabularRecordSet ".concat(e," was not a valid group or did not have a valid RecordSetAddress.")),!1)}getTabularRecordInput(t,e,i){let n=t.getGroup(e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInput ".concat(e," was not a valid group.")),!1;let r=n.supportingManifest.elementAddresses[i];return n.supportingManifest.elementDescriptors[r]}getTabularRecordInputByHash(t,e,i){let n=t.getGroups().find(t=>t.Hash===e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," was not a valid group.")),!1;if(!n.supportingManifest)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," s not a tabular group.")),!1;for(const t of Object.values(n.supportingManifest.elementDescriptors))if(t.Hash===i)return t;return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," could not find input ").concat(i,".")),!1}getTabularRecordData(t,e,i){let n=t.getGroup(e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," was not a valid group.")),!1;let r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(r||(r=t.sectionManifest.getValueAtAddress(t.getMarshalDestinationObject(),n.RecordSetAddress)),!r)return this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," could not find the record set for ").concat(n.RecordSetAddress,".")),!1;try{return Array.isArray(r)||"object"==typeof r?r[i]:(this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," could not determine the type of the record set for ").concat(n.RecordSetAddress,".")),!1)}catch(t){return this.log.error("PICT View Metatemplate Helper getTabularRecordData ".concat(e," encountered an error: ").concat(t)),!1}}createDynamicTableRow(t,e){let i=t.getGroup(e);if(i){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress);if(Array.isArray(e)){if(i.MaximumRowCount&&e.length>=i.MaximumRowCount)return void this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(i.Hash," attempting to add a row but the maximum rows ").concat(i.MaximumRowCount," has been reached."));let n={};i.DefaultRows&&e.length<i.DefaultRows.length&&(n=JSON.parse(JSON.stringify(i.DefaultRows[e.length]))),e.push(i.supportingManifest.populateDefaults(n));let r=this.pict.views.PictFormMetacontroller.filterViews(t=>{if(!t.isPictSectionForm)return!1;let e=t.getGroups();for(let t=0;t<e.length;t++)if(e[t].RecordSetAddress==i.RecordSetAddress)return!0;return!1});for(let t=0;t<r.length;t++)r[t].render();this._rebuildDependentDynamicColumnViews(i.RecordSetAddress),this.pict.providers.DynamicSolver.solveViews(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}createDynamicTableRowWithoutEvents(t,e){let i=t.getGroup(e);if(i){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress);if(Array.isArray(e)){if(i.MaximumRowCount&&e.length>=i.MaximumRowCount)return void this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(i.Hash," attempting to add a row but the maximum rows ").concat(i.MaximumRowCount," has been reached."));let n={};i.DefaultRows&&e.length<i.DefaultRows.length&&(n=JSON.parse(JSON.stringify(i.DefaultRows[e.length]))),e.push(i.supportingManifest.populateDefaults(n))}}}setDynamicTableRowIndex(t,e,i,n){let r=t.getGroup(e);if(r){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),r.RecordSetAddress);if(Array.isArray(e)){let o=parseInt(String(i),10),a=parseInt(String(n),10);if(e.length<=o||o<0)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(r.Hash," attempting to move row [").concat(i,"] to [").concat(n,"] but the index is out of bounds.")),!1;let s=e.splice(o,1);e.splice(a,0,s[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}moveDynamicTableRowDown(t,e,i){let n=t.getGroup(e);if(n){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(e)){let r=parseInt(String(i),10);if(e.length<=r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(i,"] down but it's already at the bottom.")),!1;let o=e.splice(r,1);e.splice(r+1,0,o[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}moveDynamicTableRowUp(t,e,i){let n=t.getGroup(e);if(n){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(e)){let r=parseInt(String(i),10);if(0==r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(i,"] up but it's already at the top.")),!1;if(e.length<=r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(i,"] but the index is out of bounds.")),!1;let o=e.splice(r,1);e.splice(r-1,0,o[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}deleteDynamicTableRow(t,e,i){let n=t.getGroup(e);if(n){let e=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(e)){if(n.MinimumRowCount&&e.length<=n.MinimumRowCount)return this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to delete a row but the minimum rows ").concat(n.MinimumRowCount," has been reached.")),!1;let r=parseInt(String(i),10);if(e.length<=r)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to delete row [").concat(i,"] but the index is out of bounds.")),!1;let o=e.length;e.splice(r,1),this._spliceDependentPositionalColumns(n.RecordSetAddress,r,o);let a=this.pict.views.PictFormMetacontroller.filterViews(t=>{if(!t.isPictSectionForm)return!1;let e=t.getGroups();for(let t=0;t<e.length;t++)if(e[t].RecordSetAddress==n.RecordSetAddress)return!0;return!1});for(let t=0;t<a.length;t++)a[t].render();this._rebuildDependentDynamicColumnViews(n.RecordSetAddress),this.pict.providers.DynamicSolver.solveViews(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}_rebuildDependentDynamicColumnViews(t){if("string"!=typeof t||t.length<1)return;if(!this.pict.views.PictFormMetacontroller)return;let e=this.pict.views.PictFormMetacontroller.filterViews(e=>{if(!e.isPictSectionForm)return!1;let i=e.getGroups();for(let e=0;e<i.length;e++){let n=i[e].DynamicColumns;if(Array.isArray(n))for(let e=0;e<n.length;e++)if(n[e]&&n[e].SourceAddress===t)return!0}return!1});for(let t=0;t<e.length;t++){let i=e[t],n=i.getGroups();for(let t=0;t<n.length;t++){let e=n[t];Array.isArray(e.DynamicColumns)&&e.DynamicColumns.length>0&&this.fable.ManifestFactory&&"function"==typeof this.fable.ManifestFactory._resolveDynamicColumns&&this.fable.ManifestFactory._resolveDynamicColumns(i,e)}i.rebuildCustomTemplate(),i.render()}}_spliceDependentPositionalColumns(t,e,i){if("string"!=typeof t||t.length<1)return;if(!this.pict.views.PictFormMetacontroller)return;let n=this.fable.ManifestFactory;if(!n||"function"!=typeof n._parseDynamicColumnTemplate)return;let r=this.pict.views.PictFormMetacontroller.filterViews(t=>t.isPictSectionForm);for(let o=0;o<r.length;o++){let a=r[o],s=a.getGroups();for(let r=0;r<s.length;r++){let o=s[r];if(!Array.isArray(o.DynamicColumns)||o.DynamicColumns.length<1)continue;let c=a.sectionManifest.getValueByHash(a.getMarshalDestinationObject(),o.RecordSetAddress);if(Array.isArray(c)&&!(c.length<1))for(let r=0;r<o.DynamicColumns.length;r++){let s=o.DynamicColumns[r];if(!s||s.SourceAddress!==t)continue;if("Position"!==s.KeyBy)continue;if("string"!=typeof s.InformaryDataAddressTemplate)continue;let l=[];for(let t=0;t<i;t++)l[t]=n._parseDynamicColumnTemplate(s.InformaryDataAddressTemplate,{__Index:t,__RowNumber:t+1});for(let t=0;t<c.length;t++){let n=c[t];if(!n||"object"!=typeof n)continue;for(let t=e;t<i-1;t++){if(!l[t]||!l[t+1])continue;let e=a.sectionManifest.getValueByHash(n,l[t+1]);a.sectionManifest.setValueByHash(n,l[t],e)}let r=l[i-1];r&&a.sectionManifest.setValueByHash(n,r,void 0)}}}}}},e.exports.default_configuration=r},{"pict-provider":9}],49:[function(t,e,i){const n=t("pict-provider"),r=t("../providers/Pict-Provider-DynamicInput.js"),o=t("./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates.js"),a=t("./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates-ReadOnly.js"),s=t("../templates/Pict-Template-Metacontroller-ValueSetWithGroup.js"),c=t("../templates/Pict-Template-Metatemplate-Input.js"),l=t("../templates/Pict-Template-Metatemplate-InputWithHashAddress.js"),p=t("../templates/Pict-Template-Metatemplate-InputWithView.js"),d=t("../templates/Pict-Template-Metatemplate-InputWithViewAndHashAddress.js"),u=t("../templates/Pict-Template-Metatemplate-InputWithViewAndDescriptorAddress.js"),h=t("../templates/Pict-Template-ControlFromDynamicManifest.js"),m=t("../templates/Pict-Template-ControlFromDynamicManifestForHash.js"),g=t("../templates/Pict-Template-DyanmicView-Value.js"),f=t("../templates/Pict-Template-DyanmicView-ValueByHash.js"),D=t("../templates/Pict-Template-TabularRowLabels.js"),y=t("../templates/Pict-Template-TabularEditingControls.js"),v=t("../templates/Pict-Template-Proxy-PluckJoinUnique.js"),b={ProviderIdentifier:"Pict-DynamicForms-MetaTemplates-Basic",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){var n;super(t,Object.assign({},JSON.parse(JSON.stringify(b)),e),i),this.options,this.pict,this.log,this.pict.addProviderSingleton("DynamicInput",r.default_configuration,r),this.pict.addTemplate(s),this.pict.addTemplate(c),this.pict.addTemplate(l),this.pict.addTemplate(p),this.pict.addTemplate(d),this.pict.addTemplate(u),this.pict.addTemplate(v),this.pict.addTemplate(h),this.pict.addTemplate(m),this.pict.addTemplate(g),this.pict.addTemplate(f),this.pict.addTemplate(D),this.pict.addTemplate(y),null!==(n=this.options)&&void 0!==n&&n.MetaTemplateSet&&"object"==typeof this.options.MetaTemplateSet?this.injectTemplateSet(this.options.MetaTemplateSet):this.injectTemplateSet(o),this.injectTemplateSet(a)}injectTemplateSet(t){var e,i,n,r,a,s;let c="PictFormsUnknown",l=[],p={};c=null!==(e=null===(i=this.options)||void 0===i?void 0:i.MetaTemplateSet)&&void 0!==e?e:c,l=null!==(n=null===(r=this.options)||void 0===r||null===(r=r.MetaTemplateSet)||void 0===r?void 0:r.Templates)&&void 0!==n?n:l,c=null!==(a=null==t?void 0:t.TemplatePrefix)&&void 0!==a?a:c,l=null!==(s=null==t?void 0:t.Templates)&&void 0!==s?s:l;for(let t=0;t<l.length;t++){let e=l[t],i="".concat(c).concat(e.HashPostfix);p[i]={Hash:i,Template:e.Template},e.hasOwnProperty("DefaultInputExtensions")&&(p[i].DefaultInputExtensions=JSON.parse(JSON.stringify(e.DefaultInputExtensions)))}for(let t=0;t<o.Templates.length;t++){let e=o.Templates[t],i="".concat(c).concat(e.HashPostfix);i in p||(p[i]={Hash:i,Template:e.Template},e.hasOwnProperty("DefaultInputExtensions")&&(p[i].DefaultInputExtensions=JSON.parse(JSON.stringify(e.DefaultInputExtensions))))}let d=Object.keys(p);this.log.info("Pict Form Section Provider for [".concat(c,"] Loaded ").concat(d.length," templates."));for(let t=0;t<d.length;t++){let e=p[d[t]];if(this.pict.TemplateProvider.addTemplate(e.Hash,e.Template),e.hasOwnProperty("DefaultInputExtensions"))for(let t=0;t<e.DefaultInputExtensions.length;t++)this.pict.providers.DynamicInput.addDefaultInputProvider(e.Hash,e.DefaultInputExtensions[t])}}},e.exports.default_configuration=b},{"../providers/Pict-Provider-DynamicInput.js":43,"../templates/Pict-Template-ControlFromDynamicManifest.js":89,"../templates/Pict-Template-ControlFromDynamicManifestForHash.js":90,"../templates/Pict-Template-DyanmicView-Value.js":91,"../templates/Pict-Template-DyanmicView-ValueByHash.js":92,"../templates/Pict-Template-Metacontroller-ValueSetWithGroup.js":93,"../templates/Pict-Template-Metatemplate-Input.js":94,"../templates/Pict-Template-Metatemplate-InputWithHashAddress.js":95,"../templates/Pict-Template-Metatemplate-InputWithView.js":96,"../templates/Pict-Template-Metatemplate-InputWithViewAndDescriptorAddress.js":97,"../templates/Pict-Template-Metatemplate-InputWithViewAndHashAddress.js":98,"../templates/Pict-Template-Proxy-PluckJoinUnique.js":99,"../templates/Pict-Template-TabularEditingControls.js":100,"../templates/Pict-Template-TabularRowLabels.js":101,"./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates-ReadOnly.js":57,"./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates.js":58,"pict-provider":9}],50:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Provider-FormPersistence",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1,AppIdentifier:!1,FormTypeIdentifier:!1,AutoPersistOnDataChange:!1,AutoPersistDebounceMs:2e3,AutoPersistBundleWithForm:!0,StorageKeyPrefix:"PSF",BundleSourceAddress:"Bundle",FormDataSourceAddress:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log,this._activeFormGUID=null,this._persistTimerHandle=null,this.storageAdapter=this.createLocalStorageAdapter()}createLocalStorageAdapter(){let t=this;return{setItem:function(e,i){try{return"undefined"!=typeof window&&window.localStorage?(window.localStorage.setItem(e,i),!0):(t.log.warn("FormPersistence: localStorage is not available."),!1)}catch(e){return t.log.error("FormPersistence: localStorage setItem error: ".concat(e.message)),!1}},getItem:function(e){try{return"undefined"!=typeof window&&window.localStorage?window.localStorage.getItem(e):(t.log.warn("FormPersistence: localStorage is not available."),null)}catch(e){return t.log.error("FormPersistence: localStorage getItem error: ".concat(e.message)),null}},removeItem:function(e){try{return"undefined"!=typeof window&&window.localStorage?(window.localStorage.removeItem(e),!0):(t.log.warn("FormPersistence: localStorage is not available."),!1)}catch(e){return t.log.error("FormPersistence: localStorage removeItem error: ".concat(e.message)),!1}},getKeysWithPrefix:function(e){let i=[];try{if("undefined"!=typeof window&&window.localStorage)for(let t=0;t<window.localStorage.length;t++){let n=window.localStorage.key(t);n&&n.startsWith(e)&&i.push(n)}}catch(e){t.log.error("FormPersistence: localStorage getKeysWithPrefix error: ".concat(e.message))}return i}}}setStorageAdapter(t){if("object"!=typeof t||null===t)return this.log.error("FormPersistence setStorageAdapter called with an invalid adapter."),!1;let e=["setItem","getItem","removeItem","getKeysWithPrefix"];for(let i=0;i<e.length;i++)if("function"!=typeof t[e[i]])return this.log.error("FormPersistence setStorageAdapter: adapter is missing required method [".concat(e[i],"].")),!1;return this.storageAdapter=t,!0}getAppIdentifier(){return this.options.AppIdentifier?this.options.AppIdentifier:this.pict&&this.pict.settings&&this.pict.settings.Product?this.pict.settings.Product:"DefaultApp"}getFormTypeIdentifier(){return this.options.FormTypeIdentifier?this.options.FormTypeIdentifier:"DefaultForm"}getStorageKey(t,e){let i="".concat(this.options.StorageKeyPrefix,":").concat(this.getAppIdentifier(),":").concat(this.getFormTypeIdentifier());return e?"".concat(i,":").concat(t,":").concat(e):"".concat(i,":").concat(t)}getIndexKey(){return this.getStorageKey("Index")}getFormIndex(){let t=this.getIndexKey(),e=this.storageAdapter.getItem(t);if(e)try{let t=JSON.parse(e);if("object"==typeof t&&null!==t&&"Records"in t)return t}catch(t){this.log.error("FormPersistence getFormIndex: failed to parse index: ".concat(t.message))}return{Records:{}}}_saveFormIndex(t){let e=this.getIndexKey();return this.storageAdapter.setItem(e,JSON.stringify(t))}newFormRecord(t,e){let i=this.fable.getUUID(),n=(new Date).toISOString(),r=this.getFormIndex();return r.Records[i]={GUID:i,Created:n,Modified:n,BundleContextIdentifier:t||null,Synced:!1,SyncedTimestamp:null,Label:e||null},this._saveFormIndex(r),this.log.info("FormPersistence: created new form record [".concat(i,"]").concat(e?' labeled "'.concat(e,'"'):"",".")),i}saveFormData(t){if(!t)return this.log.error("FormPersistence saveFormData called without an instance GUID."),!1;let e,i,n=this.getFormIndex();if(!(t in n.Records))return this.log.error("FormPersistence saveFormData called for unknown GUID [".concat(t,"].")),!1;try{e=this.options.FormDataSourceAddress?this.pict.resolveStateFromAddress(this.options.FormDataSourceAddress):this.pict.providers.DataBroker.marshalDestinationObject}catch(t){return this.log.error("FormPersistence saveFormData: failed to resolve form data source: ".concat(t.message)),!1}try{i=JSON.stringify(e)}catch(t){return this.log.error("FormPersistence saveFormData: failed to serialize form data: ".concat(t.message)),!1}let r=this.getStorageKey("Form",t),o=this.storageAdapter.setItem(r,i);return o&&(n.Records[t].Modified=(new Date).toISOString(),n.Records[t].Synced=!1,this._saveFormIndex(n)),o}getFormDataRaw(t){if(!t)return this.log.error("FormPersistence getFormDataRaw called without an instance GUID."),null;let e=this.getStorageKey("Form",t);return this.storageAdapter.getItem(e)}loadFormData(t){if(!t)return this.log.error("FormPersistence loadFormData called without an instance GUID."),!1;let e,i,n=this.getStorageKey("Form",t),r=this.storageAdapter.getItem(n);if(null===r)return this.log.warn("FormPersistence loadFormData: no data found for GUID [".concat(t,"].")),!1;try{e=JSON.parse(r)}catch(e){return this.log.error("FormPersistence loadFormData: failed to parse stored data for GUID [".concat(t,"]: ").concat(e.message)),!1}try{i=this.options.FormDataSourceAddress?this.pict.resolveStateFromAddress(this.options.FormDataSourceAddress):this.pict.providers.DataBroker.marshalDestinationObject}catch(t){return this.log.error("FormPersistence loadFormData: failed to resolve destination object: ".concat(t.message)),!1}let o=Object.keys(i);for(let t=0;t<o.length;t++)delete i[o[t]];return Object.assign(i,e),this.pict.views&&this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.marshalToView(),this.log.info("FormPersistence: loaded form data for GUID [".concat(t,"].")),!0}deleteFormRecord(t){if(!t)return this.log.error("FormPersistence deleteFormRecord called without an instance GUID."),!1;let e=this.getStorageKey("Form",t);this.storageAdapter.removeItem(e);let i=this.getFormIndex();return t in i.Records&&(delete i.Records[t],this._saveFormIndex(i)),this.log.info("FormPersistence: deleted form record [".concat(t,"].")),!0}saveBundleData(t){if(!t)return this.log.error("FormPersistence saveBundleData called without a context identifier."),!1;let e,i;try{e=this.pict.resolveStateFromAddress(this.options.BundleSourceAddress)}catch(t){return this.log.error("FormPersistence saveBundleData: failed to resolve bundle data source: ".concat(t.message)),!1}try{i=JSON.stringify(e)}catch(t){return this.log.error("FormPersistence saveBundleData: failed to serialize bundle data: ".concat(t.message)),!1}let n=this.getStorageKey("Bundle",t);return this.storageAdapter.setItem(n,i)}loadBundleData(t){if(!t)return this.log.error("FormPersistence loadBundleData called without a context identifier."),!1;let e,i,n=this.getStorageKey("Bundle",t),r=this.storageAdapter.getItem(n);if(null===r)return this.log.warn("FormPersistence loadBundleData: no data found for context [".concat(t,"].")),!1;try{e=JSON.parse(r)}catch(e){return this.log.error("FormPersistence loadBundleData: failed to parse stored data for context [".concat(t,"]: ").concat(e.message)),!1}try{i=this.pict.resolveStateFromAddress(this.options.BundleSourceAddress)}catch(t){return this.log.error("FormPersistence loadBundleData: failed to resolve bundle destination: ".concat(t.message)),!1}let o=Object.keys(i);for(let t=0;t<o.length;t++)delete i[o[t]];return Object.assign(i,e),this.log.info("FormPersistence: loaded bundle data for context [".concat(t,"].")),!0}deleteBundleData(t){if(!t)return this.log.error("FormPersistence deleteBundleData called without a context identifier."),!1;let e=this.getStorageKey("Bundle",t);return this.storageAdapter.removeItem(e),this.log.info("FormPersistence: deleted bundle data for context [".concat(t,"].")),!0}listFormRecords(){let t=this.getFormIndex();return Object.values(t.Records)}listUnsyncedFormRecords(){let t=this.listFormRecords(),e=[];for(let i=0;i<t.length;i++)t[i].Synced||e.push(t[i]);return e}listFormRecordsForContext(t){let e=this.listFormRecords(),i=[];for(let n=0;n<e.length;n++)e[n].BundleContextIdentifier===t&&i.push(e[n]);return i}markFormSynced(t){if(!t)return this.log.error("FormPersistence markFormSynced called without an instance GUID."),!1;let e=this.getFormIndex();return t in e.Records?(e.Records[t].Synced=!0,e.Records[t].SyncedTimestamp=(new Date).toISOString(),this._saveFormIndex(e),!0):(this.log.warn("FormPersistence markFormSynced: GUID [".concat(t,"] not found in index.")),!1)}markFormDirty(t){if(!t)return this.log.error("FormPersistence markFormDirty called without an instance GUID."),!1;let e=this.getFormIndex();return t in e.Records?(e.Records[t].Synced=!1,this._saveFormIndex(e),!0):(this.log.warn("FormPersistence markFormDirty: GUID [".concat(t,"] not found in index.")),!1)}getActiveFormGUID(){return this._activeFormGUID}setActiveFormGUID(t){this._activeFormGUID=t||null}persistActiveForm(){if(!this._activeFormGUID)return this.log.warn("FormPersistence persistActiveForm: no active form GUID set."),!1;let t=this.saveFormData(this._activeFormGUID);if(t&&this.options.AutoPersistBundleWithForm){let t=this.getFormIndex().Records[this._activeFormGUID];t&&t.BundleContextIdentifier&&this.saveBundleData(t.BundleContextIdentifier)}return t}triggerDebouncedPersist(){if(!this._activeFormGUID)return;this._persistTimerHandle&&clearTimeout(this._persistTimerHandle);let t=this;this._persistTimerHandle=setTimeout(function(){t.persistActiveForm(),t._persistTimerHandle=null},this.options.AutoPersistDebounceMs)}onFormDataChanged(){this.options.AutoPersistOnDataChange&&this.triggerDebouncedPersist()}},e.exports.default_configuration=r},{"pict-provider":9}],51:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Informary",AutoInitialize:!1,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.log,this.genericManifest=this.pict.newManyfest({Scope:"GenericInformary"})}getFormElements(t){let e='[data-i-form="'.concat(t,'"]');return this.pict.ContentAssignment.getElement(e)}getContentBrowserAddress(t,e,i,n){return i?'[data-i-form="'.concat(t,'"][data-i-datum="').concat(e,'"][data-i-container="').concat(i,'"][data-i-index="').concat(n,'"]'):'[data-i-form="'.concat(t,'"][data-i-datum="').concat(e,'"]')}getComposedContainerAddress(t,e,i){return"".concat(t,"[").concat(e,"].").concat(i)}marshalFormToData(t,e,i,n,r){const o="object"==typeof i?i:this.genericManifest,a=this.getFormElements(e),s=null==n&&n,c="number"==typeof r?String(r):r;for(const i of a)this.marshalSpecicificFormElementToData(e,i,o,t,s,c)}marshalSpecicificFormElementToData(t,e,i,n,r,o){const a=e.getAttribute("data-i-datum"),s=e.getAttribute("data-i-container"),c=e.getAttribute("data-i-index");if(r&&r!==a)return!1;if(o&&c&&o!==c)return!1;let l=this.pict.ContentAssignment.readContent(this.getContentBrowserAddress(t,a,s,c));if(this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling BrowserForm Data ".concat(l," from form element [").concat(a,"] in container [").concat(s,"] at index [").concat(c,"] to the datum address [").concat(a,"].")),null==l)return!1;s?i.setValueAtAddress(n,this.getComposedContainerAddress(s,c,a),l):i.setValueAtAddress(n,a,l)}marshalDataToForm(t,e,i){let n="object"==typeof i?i:this.genericManifest,r=this.getFormElements(e);for(let i=0;i<r.length;i++)this.marshalSpecificElementDataToForm(e,r[i],n,t)}marshalSpecificElementDataToForm(t,e,i,n){let r=e.getAttribute("data-i-datum"),o=e.getAttribute("data-i-container"),a=Number(e.getAttribute("data-i-index"));if(!r)return this.log.warn("Informary found a form element without a datum address. Skipping."),!1;if(o){let e=i.getValueAtAddress(n,this.getComposedContainerAddress(o,a,r));this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling App State data ".concat(e," to Browser Form element [").concat(r,"] in container [").concat(o,"] at index [").concat(a,"].")),null!=e&&this.pict.ContentAssignment.assignContent(this.getContentBrowserAddress(t,r,o,a),e)}else{let e=i.getValueAtAddress(n,r);this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling App State data ".concat(e," to Browser Form element [").concat(r,"].")),null!=e&&this.pict.ContentAssignment.assignContent(this.getContentBrowserAddress(t,r,o,a),e)}}manualMarshalDataToFormByInput(t){if("object"!=typeof t)return this.log.error("Informary failed to marshal data to form because the input is not an object."),!1;if(!("Hash"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a hash."),!1;if(!("PictForm"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a PictForm object."),!1;let e=this.pict.views[t.PictForm.ViewHash];return e?this.pict.ContentAssignment.assignContent(t.Macro.HTMLSelector,e.getValueByHash(t.Hash)):(this.log.error("Informary failed to marshal data to form because the input view is missing."),!1)}manualMarshalTabularDataToFormByInput(t,e){if("object"!=typeof t)return this.log.error("Informary failed to marshal data to form because the input is not an object."),!1;if(!("Hash"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a hash."),!1;if(!("PictForm"in t))return this.log.error("Informary failed to marshal data to form because the input is missing a PictForm object."),!1;let i=this.pict.views[t.PictForm.ViewHash];return i?this.pict.ContentAssignment.assignContent("".concat(t.Macro.HTMLSelectorTabular,'[data-i-index="').concat(e,'"]'),i.getTabularValueByHash(t.PictForm.GroupIndex,t.PictForm.InputIndex,e)):(this.log.error("Informary failed to marshal data to form because the input view is missing."),!1)}manualMarshalDataToForm(t,e){return this.pict.ContentAssignment.assignContent(t,e)}manualMarshalTabularDataToForm(t,e,i){return this.pict.ContentAssignment.assignContent("".concat(t,'[data-i-index="').concat(i,'"]'),e)}},e.exports.default_configuration=r},{"pict-provider":9}],52:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-InputExtension",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i)}getInputHTMLID(t){return"#INPUT-FOR-".concat(t)}getTabularInputHTMLID(t,e){return"#TABULAR-DATA-".concat(t,"-").concat(e)}onInputInitialize(t,e,i,n,r,o,a){return!0}onInputInitializeTabular(t,e,i,n,r,o,a){return!0}onDataChange(t,e,i,n,r){return!0}onDataChangeTabular(t,e,i,n,r,o){return!0}onDataMarshalToForm(t,e,i,n,r,o,a){return!0}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return!0}onDataRequest(t,e,i,n){return!0}onDataRequestTabular(t,e,i,n,r){return!0}onEvent(t,e,i,n,r,o){return!0}onAfterEventCompletion(t,e,i,n,r,o){return!0}onEventTabular(t,e,i,n,r,o,a){return!0}onAfterEventTabularCompletion(t,e,i,n,r,o,a){return!0}},e.exports.default_configuration=r},{"pict-provider":9}],53:[function(t,e,i){const n=t("pict-provider");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}filterList(t,e,i){if("object"!=typeof e)return this.log.warn("FilterList failed because the input is not an object."),i;if(!("PictForm"in e))return this.log.warn("FilterList failed because the input does not have a PictForm stanza object."),i;if(!Array.isArray(i))return this.log.warn("FilterList for input [".concat(e.Hash,"] failed because the list is not an array.")),[];let n=e.PictForm.ListFilterRules;if(!n||0==n.length||!Array.isArray(n))return i;let r=i.slice(0);for(let o=i.length-1;o>=0;o--){let a=i[o],s=!0;for(let r=0;r<n.length;r++){let o,c=n[r],l="FilteredRecordComparisonValue"in c&&c.FilteredRecordComparisonValueAddress;switch(o=l?t.getValueByHash(l):a.id,c.FilterType){case"Explicit":let n=c.FilterValueAddress,r="FilterValueComparison"in c?c.FilterValueComparison:"==",l="IgnoreEmptyValue"in c&&c.IgnoreEmptyValue,p=t.getValueByHash(n);if(l&&(!p||""==p))break;switch(r.toLowerCase()){case"=":case"==":case"eq":o!=p&&(this.fable.log.debug("FilterList: ".concat(o," != ").concat(p,"; distilling is removing from the outcome array.")),s=!1);break;case"!=":case"ne":case"~=":case"ae":o==p&&(this.fable.log.debug("FilterList: ".concat(o," == ").concat(p,"; distilling is removing from the outcome array.")),s=!1)}break;case"CrossMap":let d,u=c.JoinListAddress,h="JoinListAddressGlobal"in c&&c.JoinListAddressGlobal,m=c.JoinListValueAddress,g=c.ExternalValueAddress,f=c.FilterToValueAddress,D="IgnoreEmpty"in c&&c.IgnoreEmpty;if(h){const e={Fable:this.pict,Pict:this.pict,AppData:this.pict.AppData,Bundle:this.pict.Bundle,View:t};d=this.pict.manifest.getValueAtAddress(e,u)}else d=t.getValueByHash(u);let y=t.getValueByHash(f);if(D&&(!y||""==y))break;if(!Array.isArray(d)&&null!=d&&"object"==typeof d){let t=Object.keys(d),e=[];for(let i=0;i<t.length;i++)e.push(d[t[i]]);d=e}if(!Array.isArray(d)||0==d.length)break;let v=!1;for(let t=0;t<d.length;t++){let e=this.pict.manifest.getValueAtAddress(d[t],m),i=this.pict.manifest.getValueAtAddress(d[t],g);if((!D||e&&""!=e)&&(y==i&&e==o)){v=!0;break}}s=v&&s;break;default:let b=this.pict.providers[c.FilterType];b&&(s=b.filterList(t,e,i,a))}}s||r.splice(o,1)}return r}},e.exports.default_configuration={ProviderIdentifier:"Pict-DynamicForms-ListDistilling",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1}},{"pict-provider":9}],54:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-MetaList",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.fable,this.log,this.UUID,this.Hash,this.computedLists={},this.listDefinitions={}}getList(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.listDefinitions[t].Dynamic){const i=[],n=this.pict.getUUID(),r=n.substring(0,8),o="AppData._MetaLists.".concat(r);return this.pict.manifest.setValueByHash(this.pict,o,i),this.pict.TransactionTracking.registerTransaction(n),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("GetPickList:".concat(t,":").concat(o,":").concat(JSON.stringify(e)),n),this.pict.views.PictFormMetacontroller.finalizeTransaction(n),delete this.pict.AppData._MetaLists[r],i}return t in this.computedLists?this.computedLists[t]:[]}hasList(t){return t in this.computedLists}buildViewSpecificLists(t){let e=Array.isArray(t)?t:Object.keys(this.fable.views);for(let t=0;t<e.length;t++){let i=e[t],n=this.fable.views[i];if(n.isPictSectionForm){let t=n.sectionDefinition;if("PickLists"in t&&Array.isArray(t.PickLists))for(let e=0;e<t.PickLists.length;e++){let i=t.PickLists[e];this.buildList(i)}}}}rebuildListByHash(t){t in this.listDefinitions&&this.buildList(this.listDefinitions[t])}buildList(t){if("object"!=typeof t)return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList that is not an object. Skipping.")),!1;if(!("Hash"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a Hash. Skipping.")),!1;t.Hash in this.listDefinitions||(this.listDefinitions[t.Hash]=t,this.computedLists[t.Hash]=[]);let e=[];if(!("ListAddress"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a ListAddress. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!("ListSourceAddress"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a ListSourceAddress. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!("TextTemplate"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a TextTemplate. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!("IDTemplate"in t))return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] found a PickList without a IDTemplate. Skipping.")),this.computedLists[t.Hash]=[],!1;if(!this.pict.views.PictFormMetacontroller)return this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] requires PictFormMetacontroller but not found. Skipping.")),this.computedLists[t.Hash]=[],!1;let i=this.pict.providers.DataBroker.getValueByHash(t.ListSourceAddress);if(!i)return this.computedLists[t.Hash]=[],!1;let n={};if(Array.isArray(i))for(let r=0;r<i.length;r++){let o=i[r];if(o&&"object"==typeof o){let i=this.pict.parseTemplate(t.TextTemplate,o),r=this.pict.parseTemplate(t.IDTemplate,o);if(!i||!r){this.log.error("Dynamic MetaList Provider [".concat(this.UUID,"]::[").concat(this.Hash,"] failed to generate the Text or ID for PickList [").concat(t.Hash,"]. Skipping."));continue}if(t.Unique&&r in n)continue;n[r]=!0,e.push({id:r,text:i})}}t.Sorted&&e.sort((t,e)=>t.text.localeCompare(e.text)),this.computedLists[t.Hash]=e}},e.exports.default_configuration=r},{"pict-provider":9}],55:[function(t,e,i){const n=t("pict-provider"),r=t("../views/Pict-View-DynamicForm.js"),o={ProviderIdentifier:"Pict-DynamicForms-Provider-MetatemplateGenerator",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},a={Hash:"DynamicInputs",Name:"Dynamic Inputs",ViewHash:"PictFormMetacontroller-DynamicInputs",IncludeInMetatemplateSectionGeneration:!1,Manifests:{Section:{Scope:"MetaTemplate",Sections:[{Hash:"DynamicInputs",Name:"Dynamic Inputs"}],Descriptors:{"MetaTemplate.DynamicInputPlaceholder":{Name:"DynamicInputPlaceholder",Hash:"DynamicInputPlaceholder",DataType:"String",Macro:{HTMLSelector:""},PictForm:{Section:"DynamicInputs"}}}}}};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(o)),e),i),this.pict,this.log,this.dynamicInputView,this.baseTemplatePrefix="Pict-MT-Base"}onInitializeAsync(t){return this.createOnDemandMetatemplateView(),super.onInitializeAsync(t)}createOnDemandMetatemplateView(){const t=JSON.parse(JSON.stringify(a));t.ViewHash in this.pict.views?this.dynamicInputView=this.pict.views[t.ViewHash]:this.dynamicInputView=this.pict.addView(t.ViewHash,t,r)}getMetatemplateTemplateReferenceRaw(t,e,i){return t.checkViewSpecificTemplate(e)?"\n{~T:".concat(t.formsTemplateSetPrefix).concat(e,":").concat(i,"~}"):t.checkThemeSpecificTemplate(e)?"\n{~T:".concat(t.defaultTemplatePrefix).concat(e,":").concat(i,"~}"):""}getMetatemplateTemplateReference(t,e,i){return this.getMetatemplateTemplateReferenceRaw(t,e,'Pict.views["'.concat(t.Hash,'"].').concat(i))}getInputMetatemplateTemplateReference(t,e,i,n){let r="-Template-Input-InputType-".concat(i),o="-Template-Input-DataType-".concat(e);if(i){let e=this.getMetatemplateTemplateReference(t,r,n);if(e)return e}let a=this.getMetatemplateTemplateReference(t,o,n);return a||this.getMetatemplateTemplateReference(t,"-Template-Input",n)}getTabularInputMetatemplateTemplateReference(t,e,i,n,r,o){let a="-TabularTemplate-Begin-Input-InputType-".concat(i),s="-TabularTemplate-Mid-Input-InputType-".concat(i),c="-TabularTemplate-End-Input-InputType-".concat(i),l="-TabularTemplate-Begin-Input-DataType-".concat(e),p="-TabularTemplate-Mid-Input-DataType-".concat(e),d="-TabularTemplate-End-Input-DataType-".concat(e),u=this.getMetatemplateTemplateReference(t,"-TabularTemplate-Mid-Input",n),h=this.getMetatemplateTemplateReference(t,"-TabularTemplate-InformaryAddress-Input",n);if(i){let e=this.getMetatemplateTemplateReference(t,a,n),i=this.getMetatemplateTemplateReference(t,c,n),r=this.getMetatemplateTemplateReference(t,s,n);if(u=r||u,e&&i)return e+u+h+i}let m=this.getMetatemplateTemplateReference(t,l,n),g=this.getMetatemplateTemplateReference(t,d,n);if(m&&g){let e=this.getMetatemplateTemplateReference(t,p,n);return u=e||u,m+u+h+g}return m=this.getMetatemplateTemplateReference(t,"TabularTemplate-Begin-Input",n),g=this.getMetatemplateTemplateReference(t,"TabularTemplate-End-Input",n),m&&g?m+u+h+g:(this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] catastrophic error generating tabular metatemplate: missing input template for Data Type ").concat(e," and Input Type ").concat(i,", Data Address ").concat(n,", Group Index ").concat(r," and Record Subaddress ").concat(o,".")),"")}getVerticalInputMetatemplateTemplateReference(t,e,i,n){let r="-VerticalTemplate-Input-InputType-".concat(i),o="-VerticalTemplate-Input-DataType-".concat(e);if(i){let e=this.getMetatemplateTemplateReference(t,r,n);if(e)return e}let a=this.getMetatemplateTemplateReference(t,o,n);return a||this.getMetatemplateTemplateReference(t,"-Template-Input",n)}getGroupLayoutProvider(t,e){let i="string"==typeof e.Layout?e.Layout:"string"==typeof t.sectionDefinition.DefaultGroupLayout?t.sectionDefinition.DefaultGroupLayout:"Record";switch(i){case"Tabular":return this.pict.providers["Pict-Layout-Tabular"];case"Record":return this.pict.providers["Pict-Layout-Record"];case"Vertical":return this.pict.providers["Pict-Layout-VerticalRecord"];default:return"Pict-Layout-".concat(i)in this.pict.providers?this.pict.providers["Pict-Layout-".concat(i)]:this.pict.providers["Pict-Layout-Record"]}}rebuildCustomTemplate(t){let e="";this.pict.views.PictFormMetacontroller&&"formTemplatePrefix"in this.pict.views.PictFormMetacontroller&&!("defaultTemplatePrefix"in t)&&(t.defaultTemplatePrefix=this.pict.views.PictFormMetacontroller.formTemplatePrefix),e+=this.getMetatemplateTemplateReference(t,"-Template-Wrap-Prefix","sectionDefinition"),e+=this.getMetatemplateTemplateReference(t,"-Template-Section-Prefix","sectionDefinition");for(let i=0;i<t.sectionDefinition.Groups.length;i++){let n=t.sectionDefinition.Groups[i];n.GroupIndex=i,n.SectionTabularRowVirtualTemplateHash="Pict-Form-Template-TabularRow-Virtual-".concat(t.options.Hash,"-G").concat(n.GroupIndex),n.SectionTabularRowTemplateHash="Pict-Form-Template-TabularRow-".concat(t.options.Hash,"-G").concat(n.GroupIndex),e+=this.getGroupLayoutProvider(t,n).generateGroupLayoutTemplate(t,n)}e+=this.getMetatemplateTemplateReference(t,"-Template-Section-Postfix","sectionDefinition"),e+=this.getMetatemplateTemplateReference(t,"-Template-Wrap-Postfix","sectionDefinition"),this.pict.providers.MetatemplateMacros.rebuildMacros(t),this.pict.TemplateProvider.addTemplate(t.options.SectionTemplateHash,e)}},e.exports.default_configuration=o},{"../views/Pict-View-DynamicForm.js":103,"pict-provider":9}],56:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-MetatemplateMacros",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),this.options,this.pict,this.fable,this.log,this.UUID,this.Hash,this.additionalInputMacros={},"AdditionalInputMacros"in this.options&&(this.additionalInputMacros=Object.assign(this.additionalInputMacros,this.options.AdditionalInputMacros)),"CustomInputMacros"in this.pict.settings&&(this.AdditionalInputMacros=Object.assign(this.additionalInputMacros,this.pict.settings.CustomInputMacros)),this.additionalGroupMacros={},"AdditionalGroupMacros"in this.options&&(this.additionalGroupMacros=Object.assign(this.additionalGroupMacros,this.options.AdditionalGroupMacros)),"CustomGroupMacros"in this.pict.settings&&(this.additionalGroupMacros=Object.assign(this.additionalGroupMacros,this.pict.settings.CustomGroupMacros)),this.additionalSectionMacros={},"AdditionalSectionMacros"in this.options&&(this.additionalSectionMacros=Object.assign(this.additionalSectionMacros,this.options.AdditionalSectionMacros)),"CustomSectionMacros"in this.pict.settings&&(this.additionalSectionMacros=Object.assign(this.additionalSectionMacros,this.pict.settings.CustomSectionMacros))}buildInputMacros(t,e){let i=Object.keys(t.options.MacroTemplates.Input),n=Object.keys(this.additionalInputMacros);"Macro"in e||(e.Macro={});for(let n=0;n<i.length;n++)e.Macro[i[n]]=t.pict.parseTemplate(t.options.MacroTemplates.Input[i[n]],e,null,[t]);for(let i=0;i<n.length;i++)e.Macro[n[i]]=t.pict.parseTemplate(this.additionalInputMacros[n[i]],e,null,[t])}rebuildMacros(t){if(!("MacroTemplates"in t.options))return!1;let e=Object.keys(t.options.MacroTemplates.Section),i=Object.keys(this.additionalSectionMacros);"object"!=typeof t.sectionDefinition.Macro&&(t.sectionDefinition.Macro={});for(let i=0;i<e.length;i++)t.sectionDefinition.Macro[e[i]]=t.pict.parseTemplate(t.options.MacroTemplates.Section[e[i]],t.sectionDefinition,null,[t]);for(let e=0;e<i.length;e++)t.sectionDefinition.Macro[i[e]]=t.pict.parseTemplate(this.additionalSectionMacros[i[e]],t.sectionDefinition,null,[t]);for(let e=0;e<t.sectionDefinition.Groups.length;e++){let i=t.sectionDefinition.Groups[e],n=Object.keys(t.options.MacroTemplates.Group),r=Object.keys(this.additionalGroupMacros);"Macro"in i||(i.Macro={});for(let e=0;e<n.length;e++)i.Macro[n[e]]=t.pict.parseTemplate(t.options.MacroTemplates.Group[n[e]],i,null,[t]);for(let e=0;e<r.length;e++)i.Macro[r[e]]=t.pict.parseTemplate(this.additionalGroupMacros[r[e]],i,null,[t]);Array.isArray(i.Rows)||(i.Rows=[]);for(let e=0;e<i.Rows.length;e++){let n=i.Rows[e];for(let e=0;e<n.Inputs.length;e++)this.buildInputMacros(t,n.Inputs[e])}if(i.supportingManifest){let e=Object.keys(i.supportingManifest.elementDescriptors);for(let n=0;n<e.length;n++)this.buildInputMacros(t,i.supportingManifest.elementDescriptors[e[n]])}}}},e.exports.default_configuration=r},{"pict-provider":9}],57:[function(t,e,i){e.exports={TemplatePrefix:"Pict-Forms-ReadOnly",Templates:[{HashPostfix:"-Template-Form-Container-Header",Template:'\n\x3c!-- Pict Form Metacontroller container Header\n\n ;,//;, ,;/\n o:::::::;;///\n>::::::::;;\\ \'\'\\\\\'" \';\nGlug glug glug Oo... --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-FormContainer" class="pict-form">'},{HashPostfix:"-Template-Form-Container-Wrap-Prefix",Template:'\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-{~D:Record.options.Hash~}-Wrap" class="pict-form">'},{HashPostfix:"-Template-Form-Container",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="Pict-Form-Container-{~D:Record.options.Hash~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Custom",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="{~D:Record.options.CustomTargetID~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Wrap-Postfix",Template:"\n</div>\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Prefix",Template:"\n\t\x3c!-- Pict Form Wrap Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Postfix",Template:"\n\t\x3c!-- Pict Form Wrap Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Section-Prefix",Template:'\n\t\t\x3c!-- Form Section Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t<div class="pict-form-section">\n\t\t<h2>{~D:Record.Name~}</h2>\n'},{HashPostfix:"-Template-Section-Postfix",Template:"\n\t\t</div>\n\t\t\x3c!-- Form Section Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Prefix",Template:'\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<h3>Group: {~D:Record.Name~}</h3>\n'},{HashPostfix:"-Template-Row-Prefix",Template:"\n\t\t\t\t\x3c!-- Form Template Row Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t\t<div>\n"},{HashPostfix:"-Template-Row-Postfix",Template:"\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- Form Template Row Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Postfix",Template:"\n\t\t\t</div>\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <textarea disabled {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~}></textarea>\n"},{HashPostfix:"-Template-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <select disabled {~D:Record.Macro.ControlAttr~} id="SELECT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}"></select>\n'},{HashPostfix:"-Template-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input disabled {~D:Record.Macro.ControlAttr~} id="DATETIME-INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}" type="datetime-local" value="" />\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector",DefaultInputExtensions:["Pict-Input-TabGroupSelector"],Template:'\n\t\t\t\t\t\x3c!-- InputType TabGroupSelector {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t\x3c!-- the TabSelector Input provider deals with populating this from the manifest. --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t\x3c!-- <span>{~D:Record.Name~}:</span> --\x3e\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="TAB-SELECT-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-TabElement",Template:"\n\t\t\t\x3c!-- Sections have \"tab groups\" which are defined by the hash of the Descriptor that hosts the current TabGroup value. --\x3e\n\t\t\t<a href=\"#\" id=\"TAB-{~D:Context[1].TabGroupHash~}-{~D:Record.Macro.RawHTMLID~}\" onclick=\"{~P~}.providers['Pict-Input-TabGroupSelector'].selectTabByViewHash('{~D:Context[0].Hash~}','{~D:Record.Hash~}', '{~D:Context[1].TabGroupHash~}')\">{~D:Context[1].TabGroupHash~}</a>\n"},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-EmptyGroupContent",Template:"\n\t\t\t\x3c!-- This is the template for if the tmpInput.PictForm.TabGroupSet array is empty. --\x3e\n\t\t\t<p>Warning! No tabs to select from for {~D:Record.TabGroupSetRawHTMLID~}</p>\n"},{HashPostfix:"-TuiGrid-Container",Template:'\n\t\t\t<div {~D:Record.Macro.ControlAttr~} id="{~D:Record.TuiGridHTMLID~}"></div>\n'},{HashPostfix:"-TuiGrid-Controls",Template:"\n\t\t\t<div>[ <a href=\"#\" onclick=\"{~P~}.providers['Pict-Layout-TuiGrid'].addRow('{~D:Context[0].Hash~}', {~D:Record.GroupIndex~})\">create</a> ]</div>\n"},{HashPostfix:"-TabularTemplate-Group-Prefix",Template:'\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Group-Postfix",Template:'\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div><a href="#" onclick="{~D:Record.Macro.TabularCreateRowFunctionCall~}">create</a></div>\n\t\t\t</div>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPrefix",Template:"\x3c!-- TabularTemplateRowHeader-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPostfix",Template:'\x3c!-- TabularTemplateRowHeader-ExtraPostfix --\x3e\n\t\t\t\t\t\t<th style="min-width:100px;"></th>\n'},{HashPostfix:"-TabularTemplate-Row-ExtraPrefix",Template:"\x3c!-- TabularTemplateRow-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-Row-ExtraPostfix",Template:"\x3c!-- TabularTemplateRow-ExtraPostfix--\x3e\n\t\t\t\t\t<td><a href=\"#\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].deleteDynamicTableRow({~D:Record.Group~},'{~D:Record.Key~}')\">del</a>\n\t\t\t\t\t<a href=\"#\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowUp({~D:Record.Group~},'{~D:Record.Key~}')\">up</a>\n\t\t\t\t\t<a href=\"#\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowDown({~D:Record.Group~},'{~D:Record.Key~}')\">down</a></td>\n"},{HashPostfix:"-TabularTemplate-RowHeader-Prefix",Template:"\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n"},{HashPostfix:"-TabularTemplate-HeaderCell",Template:'\n\t\t\t\t\t\t\x3c!-- Descriptor {~D:Record.Name~} [{~D:Record.Hash~}] -> {~D:Record.Address~} --\x3e\n\t\t\t\t\t\t<th data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">{~D:Record.Name~}</th>\n'},{HashPostfix:"-TabularTemplate-RowHeader-Postfix",Template:"\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n"},{HashPostfix:"-TabularTemplate-Row-Prefix",Template:'\n\t\t\t\t\t<tr data-tabular-row-index="{~D:Record.Key~}" data-tabular-group-index="{~D:Record.Group~}">{~T:TabularTemplateRow-ExtraPrefix~}\n'},{HashPostfix:"-TabularTemplate-Cell-Prefix",Template:'\n\t\t\t\t\t\t<td data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">\x3c!-- {~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Cell-Postfix",Template:"\n\t\t\t\t\t\t</td>\n"},{HashPostfix:"-TabularTemplate-Row-Postfix",Template:"\n\t\t\t\t\t{~T:TabularTemplateRow-ExtraPostfix~}</tr>"},{HashPostfix:"-TabularTemplate-Begin-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input",Template:' value="">'},{HashPostfix:"-TabularTemplate-Mid-Input",Template:" "},{HashPostfix:"-TabularTemplate-InformaryAddress-Input",Template:" data-i-index=\"{~D:Context[2].Key~}\" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].dataChangedTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\" "},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-String",Template:' value="">'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-Number",Template:' value="">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<textarea disabled {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} "},{HashPostfix:"-TabularTemplate-End-Input-InputType-TextArea",Template:" ></textarea>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" id="SELECT-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Option",Template:" value=\"\">\n\t\t\t\t\t<select disabled {~D:Record.Macro.ControlAttr~} id=\"SELECT-TABULAR-DROPDOWN-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}\" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].inputDataRequestTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\"></select>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Boolean",Template:' value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" id="DATETIME-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-DateTime",Template:' value="">\n\t\t\t\t\t<input disabled {~D:Record.Macro.ControlAttr~} id="DATETIME-TABULAR-INPUT-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" onchange="{~P~}.views[\'{~D:Context[0].Hash~}\'].inputDataRequestTabular(\'{~D:Context[2].Group~}\', \'{~D:Record.PictForm.InputIndex~}\', \'{~D:Context[2].Key~}\')" type="datetime-local" value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Hidden",Template:'\n\t\t\t\t\t\x3c!-- InputType Hidden {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input disabled type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} {~D:Record.Macro.InformaryTabular~}\n'},{HashPostfix:"-TabularTemplate-End-Input-InputType-Hidden",Template:' value="">\n'}]}},{}],58:[function(t,e,i){e.exports={TemplatePrefix:"Pict-MT-Base",Templates:[{HashPostfix:"-Template-Form-Container-Header",Template:'\n\x3c!-- Pict Form Metacontroller container Header\n\n ;,//;, ,;/\n o:::::::;;///\n>::::::::;;\\ \'\'\\\\\'" \';\nGlug glug glug Oo... --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-FormContainer" class="pict-form">'},{HashPostfix:"-Template-Form-Container-Wrap-Prefix",Template:'\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n<div id="Pict-{~D:Context[0].UUID~}-{~D:Record.options.Hash~}-Wrap" class="pict-form">'},{HashPostfix:"-Template-Form-Container",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="Pict-Form-Container-{~D:Record.options.Hash~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Custom",Template:'\n\n\t\x3c!-- Pict Form View Container [{~D:Record.UUID~}]::[{~D:Record.Hash~}] --\x3e\n\t<div id="{~D:Record.options.CustomTargetID~}" class="pict-form-view"></div>'},{HashPostfix:"-Template-Form-Container-Wrap-Postfix",Template:"\n</div>\n\x3c!-- Pict Form Metacontroller container [{~D:Context[0].UUID~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Prefix",Template:"\n\t\x3c!-- Pict Form Wrap Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Wrap-Postfix",Template:"\n\t\x3c!-- Pict Form Wrap Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] --\x3e\n"},{HashPostfix:"-Template-Section-Prefix",Template:'\n\t\t\x3c!-- Form Section Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t<div id="SECTION-{~D:Context[0].formID~}" class="pict-form-section {~D:Record.CSSClass~}">\n\t\t<h2>{~D:Record.Name~}</h2>\n'},{HashPostfix:"-Template-Section-Postfix",Template:"\n\t\t</div>\n\t\t\x3c!-- Form Section Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Prefix",Template:'\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" class="{~D:Record.CSSClass~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<h3>Group: {~D:Record.Name~}</h3>\n'},{HashPostfix:"-Template-Row-Prefix",Template:"\n\t\t\t\t\x3c!-- Form Template Row Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t\t<div>\n"},{HashPostfix:"-Template-Row-Postfix",Template:"\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- Form Template Row Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-VerticalRow-Prefix",Template:'\n\t\t\t\t\x3c!-- Form Template Vertical Row Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-group">\n'},{HashPostfix:"-Template-VerticalRow-Postfix",Template:"\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- Form Template Vertical Row Postfix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Group-Postfix",Template:"\n\t\t\t</div>\n\t\t\t\x3c!-- Form Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-Template-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-PreciseNumber",Template:'\n\t\t\t\t\t\x3c!-- DataType PreciseNumber {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-InputType-PreciseNumberReadOnly",DefaultInputExtensions:["Pict-Input-PreciseNumber"],Template:'\n\t\t\t\t\t\x3c!-- InputType PreciseNumberReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} id="INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" value="" readonly="readonly">\n'},{HashPostfix:"-Template-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <textarea {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~}></textarea>\n"},{HashPostfix:"-Template-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <select {~D:Record.Macro.ControlAttr~} id="SELECT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}"></select>\n'},{HashPostfix:"-Template-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n'},{HashPostfix:"-Template-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input {~D:Record.Macro.ControlAttr~} id="DATETIME-INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}" type="datetime-local" value="" />\n'},{HashPostfix:"-Template-Input-InputType-Hidden",Template:"\n\t\t\t\t\t\x3c!-- InputType Hidden {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n"},{HashPostfix:"-Template-Input-InputType-Color",Template:'\n\t\t\t\t\t\x3c!-- InputType Color {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="color" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} />\n'},{HashPostfix:"-Template-Input-InputType-DisplayOnly",Template:"\n\t\t\t\t\t\x3c!-- InputType DisplayOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <span {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></span>\n"},{HashPostfix:"-Template-Input-InputType-ReadOnly",Template:'\n\t\t\t\t\t\x3c!-- InputType ReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="text" readonly {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></input>\n'},{HashPostfix:"-Template-Input-InputType-Link",DefaultInputExtensions:["Pict-Input-Link"],Template:'\n\t\t\t\t\t\x3c!-- InputType Link {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<a {~D:Record.Macro.ControlAttr~} id="INPUT-FOR-{~D:Record.Macro.RawHTMLID~}">{~D:Record.Name~}</a>\n'},{HashPostfix:"-Template-Input-InputType-Chart",DefaultInputExtensions:["Pict-Input-Chart"],Template:'\n\t\t\t\t\t\x3c!-- InputType Chart {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<div style="width:{~DWAF:Record.PictForm.QuantizedWidth:100~}%; display:inline-block;">\n\t\t\t\t\t\t<input type="hidden" id="CONFIG-FOR-{~D:Record.Macro.RawHTMLID~}" value="">\n\t\t\t\t\t\t<h3><span>{~D:Record.Name~}:</span></h3>\n\t\t\t\t\t\t<div style="width:100%;"><canvas id="CANVAS-FOR-{~D:Record.Macro.RawHTMLID~}" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></canvas></div>\n\t\t\t\t\t</div>\n'},{HashPostfix:"-Template-Input-InputType-Markdown",DefaultInputExtensions:["Pict-Input-Markdown"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-markdown"></div>\n'},{HashPostfix:"-Template-Input-InputType-HTML",DefaultInputExtensions:["Pict-Input-HTML"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-html"></div>\n'},{HashPostfix:"-Template-Input-InputType-Templated",DefaultInputExtensions:["Pict-Input-Templated"],Template:'\n\t\t\t\t\t\x3c!-- InputType Templated {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-templated"></div>\n'},{HashPostfix:"-Template-Input-InputType-TemplatedEntityLookup",DefaultInputExtensions:["Pict-Input-TemplatedEntityLookup"],Template:'\n\t\t\t\t\t\x3c!-- InputType TemplatedEntityLookup {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-RichText",DefaultInputExtensions:["Pict-Input-RichText"],Template:'\n\t\t\t\t\t\x3c!-- InputType RichText {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-richtext"></div>\n'},{HashPostfix:"-Template-Input-InputType-Diagram",DefaultInputExtensions:["Pict-Input-Diagram"],Template:'\n\t\t\t\t\t\x3c!-- InputType Diagram {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-diagram"></div>\n'},{HashPostfix:"-VerticalTemplate-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-PreciseNumber",Template:'\n\t\t\t\t\t\x3c!-- DataType PreciseNumber {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-PreciseNumberReadOnly",DefaultInputExtensions:["Pict-Input-PreciseNumber"],Template:'\n\t\t\t\t\t\x3c!-- InputType PreciseNumberReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} id="INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" value="" readonly="readonly">\n\t\t\t\t\t</div>\n\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-TextArea",Template:'\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<textarea {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~}></textarea>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<select {~D:Record.Macro.ControlAttr~} id="SELECT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}"></select>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input {~D:Record.Macro.ControlAttr~} id="DATETIME-INPUT-FOR-{~D:Record.Macro.RawHTMLID~}" onchange="{~D:Record.Macro.DataRequestFunction~}" type="datetime-local" value="" />\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Color",Template:'\n\t\t\t\t\t\x3c!-- InputType Color {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="color" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} />\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-DisplayOnly",Template:'\n\t\t\t\t\t\x3c!-- InputType DisplayOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<span {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></span>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-ReadOnly",Template:'\n\t\t\t\t\t\x3c!-- InputType ReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<input type="text" readonly {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}></input>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Link",DefaultInputExtensions:["Pict-Input-Link"],Template:'\n\t\t\t\t\t\x3c!-- InputType Link {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} value="">\n\t\t\t\t\t<a {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~}>{~D:Record.Name~}</a>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Markdown",DefaultInputExtensions:["Pict-Input-Markdown"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-markdown"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-HTML",DefaultInputExtensions:["Pict-Input-HTML"],Template:'\n\t\t\t\t\t\x3c!-- InputType Markdown {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-html"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Templated",DefaultInputExtensions:["Pict-Input-Templated"],Template:'\n\t\t\t\t\x3c!-- InputType Templated {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-templated"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-TemplatedEntityLookup",DefaultInputExtensions:["Pict-Input-TemplatedEntityLookup"],Template:'\n\t\t\t\t\t\x3c!-- InputType TemplatedEntityLookup {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<span>{~D:Record.Name~}:</span>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-RichText",DefaultInputExtensions:["Pict-Input-RichText"],Template:'\n\t\t\t\t\t\x3c!-- InputType RichText {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<label class="pict-form-label">{~D:Record.Name~}</label>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-richtext"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-VerticalTemplate-Input-InputType-Diagram",DefaultInputExtensions:["Pict-Input-Diagram"],Template:'\n\t\t\t\t\t\x3c!-- InputType Diagram {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t<div class="pict-form-vertical-input">\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t<label class="pict-form-label">{~D:Record.Name~}</label>\n\t\t\t\t\t<span>{~D:Record.PictForm.ExtraDescription~}</span>\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="DISPLAY-FOR-{~D:Record.Macro.RawHTMLID~}" class="pict-section-form-diagram"></div>\n\t\t\t\t</div>\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector",DefaultInputExtensions:["Pict-Input-TabGroupSelector"],Template:'\n\t\t\t\t\t\x3c!-- InputType TabGroupSelector {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t\x3c!-- the TabSelector Input provider deals with populating this from the manifest. --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t\x3c!-- <span>{~D:Record.Name~}:</span> --\x3e\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="TAB-SELECT-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-TabElement",Template:"\n\t\t\t\x3c!-- Sections have \"tab groups\" which are defined by the hash of the Descriptor that hosts the current TabGroup value. --\x3e\n\t\t\t<a href=\"#/\" id=\"TAB-{~D:Context[1].TabGroupHash~}-{~D:Record.Macro.RawHTMLID~}\" onclick=\"{~P~}.providers['Pict-Input-TabGroupSelector'].selectTabByViewHash('{~D:Context[0].Hash~}','{~D:Record.Hash~}', '{~D:Context[1].TabGroupHash~}')\">{~D:Context[1].TabGroupName~}</a>\n"},{HashPostfix:"-Template-Input-InputType-TabGroupSelector-EmptyGroupContent",Template:"\n\t\t\t\x3c!-- This is the template for if the tmpInput.PictForm.TabGroupSet array is empty. --\x3e\n\t\t\t<p>Warning! No tabs to select from for {~D:Record.TabGroupSetRawHTMLID~}</p>\n"},{HashPostfix:"-Template-Input-InputType-TabSectionSelector",DefaultInputExtensions:["Pict-Input-TabSectionSelector"],Template:'\n\t\t\t\t\t\x3c!-- InputType TabSectionSelector {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t\x3c!-- the TabSelector Input provider deals with populating this from the manifest. --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} value="">\n\t\t\t\t\t\x3c!-- <span>{~D:Record.Name~}:</span> --\x3e\n\t\t\t\t\t<div {~D:Record.Macro.ControlAttr~} id="TAB-SELECT-FOR-{~D:Record.Macro.RawHTMLID~}"></div>\n'},{HashPostfix:"-Template-Input-InputType-TabSectionSelector-TabElement",Template:"\n\t\t\t\x3c!-- Sections have \"tab groups\" which are defined by the hash of the Descriptor that hosts the current TabSection value. --\x3e\n\t\t\t<a href=\"#/\" id=\"TAB-{~D:Context[1].TabSectionHash~}-{~D:Record.Macro.RawHTMLID~}\" onclick=\"{~P~}.providers['Pict-Input-TabSectionSelector'].selectTabByViewHash('{~D:Context[0].Hash~}','{~D:Record.Hash~}', '{~D:Context[1].TabSectionHash~}')\">{~D:Context[1].TabSectionName~}</a>\n"},{HashPostfix:"-Template-Input-InputType-TabSectionSelector-EmptyGroupContent",Template:"\n\t\t\t\x3c!-- This is the template for if the tmpInput.PictForm.TabSectionSet array is empty. --\x3e\n\t\t\t<p>Warning! No tabs to select from for {~D:Record.TabSectionSetRawHTMLID~}</p>\n"},{HashPostfix:"-TuiGrid-Container",Template:'\n\t\t\t<div {~D:Record.Macro.ControlAttr~} id="{~D:Record.TuiGridHTMLID~}"></div>\n'},{HashPostfix:"-TuiGrid-Controls",Template:"\n\t\t\t<div>[ <a href=\"#/\" onclick=\"{~P~}.providers['Pict-Layout-TuiGrid'].addRow('{~D:Context[0].Hash~}', {~D:Record.GroupIndex~})\">create</a> ]</div>\n"},{HashPostfix:"-RecordSetTemplate-Group-Prefix",Template:"\n\t\t\t<div {~D:Record.Macro.PictFormLayout~}>\n\t\t\t\x3c!-- Form RecordSet Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n"},{HashPostfix:"-RecordSetTemplate-Group-Postfix",Template:'\n\t\t\t<div><a href="#/" onclick="{~D:Record.Macro.TabularCreateRowFunctionCall~}">create</a></div>\n\t\t\t</div>\n\t\t\t\x3c!-- Form RecordSet Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-RecordSetTemplate-Row-ExtraPrefix",Template:"\x3c!-- RecordSetTemplateRow-ExtraPrefix --\x3e"},{HashPostfix:"-RecordSetTemplate-Row-ExtraPostfix",Template:'\x3c!-- RecordSetTemplateRow-ExtraPostfix--\x3e\n\t\t\t\t\t<div class="PictSectionForm-RecordSet-Controls">\n\t\t\t\t\t\t<a href="#/" onClick="{~P~}.views[\'{~D:Context[0].Hash~}\'].deleteDynamicTableRow({~D:Record.Group~},\'{~D:Record.Key~}\')">del</a>\n\t\t\t\t\t\t<a href="#/" onClick="{~P~}.views[\'{~D:Context[0].Hash~}\'].moveDynamicTableRowUp({~D:Record.Group~},\'{~D:Record.Key~}\')">up</a>\n\t\t\t\t\t\t<a href="#/" onClick="{~P~}.views[\'{~D:Context[0].Hash~}\'].moveDynamicTableRowDown({~D:Record.Group~},\'{~D:Record.Key~}\')">down</a>\n\t\t\t\t\t</div>\n'},{HashPostfix:"-RecordSetTemplate-Row-Prefix",Template:'\n\t\t\t\t\t<div class="RecordSetEntry">\n\t\t\t\t\t\x3c!-- RecordSetTemplateRow-Prefix --\x3e\n'},{HashPostfix:"-RecordSetTemplate-Cell-Prefix",Template:'\n\t\t\t\t\t\t<div style="display:inline;">\n\t\t\t\t\t\t\t\x3c!-- RecordSetTemplateCell-Prefix --\x3e\n\t\t\t\t\t\t\t<span class="RecordSetInputLabel">{~D:Record.Name~}</span>\n'},{HashPostfix:"-RecordSetTemplate-Cell-Postfix",Template:"\n\t\t\t\t\t\t\t\x3c!-- RecordSetTemplateCell-Postfix --\x3e\n\t\t\t\t\t\t</div>\n"},{HashPostfix:"-RecordSetTemplate-Row-Postfix",Template:"\n\t\t\t\t\t\x3c!-- RecordSetTemplateRow-Postfix --\x3e\n\t\t\t\t\t</div>"},{HashPostfix:"-TabularTemplate-Group-Prefix",Template:'\n\t\t\t<div id="GROUP-{~D:Context[0].formID~}-{~D:Record.Hash~}" {~D:Record.Macro.PictFormLayout~}>\n\t\t\t<table>\n\t\t\t\t\t<tbody>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Group-Postfix",Template:'\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div><a href="#/" onclick="{~D:Record.Macro.TabularCreateRowFunctionCall~}">create</a></div>\n\t\t\t</div>\n\t\t\t\x3c!-- Form Tabular Template Group Prefix [{~D:Context[0].UUID~}]::[{~D:Context[0].Hash~}] {~D:Record.Hash~}::{~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPrefix",Template:"\x3c!-- TabularTemplateRowHeader-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-RowHeader-ExtraPostfix",Template:'\x3c!-- TabularTemplateRowHeader-ExtraPostfix --\x3e\n\t\t\t\t\t\t<th style="min-width:100px;"></th>\n'},{HashPostfix:"-TabularTemplate-Row-ExtraPrefix",Template:"\x3c!-- TabularTemplateRow-ExtraPrefix --\x3e"},{HashPostfix:"-TabularTemplate-Row-ExtraPostfix",Template:"\x3c!-- TabularTemplateRow-ExtraPostfix--\x3e\n\t\t\t\t\t<td><a href=\"#/\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].deleteDynamicTableRow({~D:Record.Group~},'{~D:Record.Key~}')\">del</a>\n\t\t\t\t\t<a href=\"#/\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowUp({~D:Record.Group~},'{~D:Record.Key~}')\">up</a>\n\t\t\t\t\t<a href=\"#/\" onClick=\"{~P~}.views['{~D:Context[0].Hash~}'].moveDynamicTableRowDown({~D:Record.Group~},'{~D:Record.Key~}')\">down</a></td>\n"},{HashPostfix:"-TabularTemplate-RowHeader-Prefix",Template:"\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n"},{HashPostfix:"-TabularTemplate-HeaderCell",Template:'\n\t\t\t\t\t\t\x3c!-- Descriptor {~D:Record.Name~} [{~D:Record.Hash~}] -> {~D:Record.Address~} --\x3e\n\t\t\t\t\t\t<th data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">{~D:Record.Name~}</th>\n'},{HashPostfix:"-TabularTemplate-RowHeader-Postfix",Template:"\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n"},{HashPostfix:"-TabularTemplate-ExtraHeaderRow-Prefix",Template:'\n\t\t\t\t\t<tr class="pict-tabular-extra-header-row">\n'},{HashPostfix:"-TabularTemplate-ExtraHeaderRow-Postfix",Template:"\n\t\t\t\t\t</tr>\n"},{HashPostfix:"-TabularTemplate-ExtraHeaderCell",Template:'<th colspan="{~D:Record.ColumnSpan~}" class="pict-tabular-extra-header-cell {~D:Record.CSSClass~}">{~D:Record.Label~}</th>'},{HashPostfix:"-TabularTemplate-RowLabel-HeaderCell",Template:'<th class="pict-row-label-header">{~D:Record.Name~}</th>'},{HashPostfix:"-TabularTemplate-RowLabel-Cell",Template:'<td rowspan="{~D:Record.RowSpan~}" class="pict-row-label">{~D:Record.RenderedLabel~}</td>'},{HashPostfix:"-TabularTemplate-RowLabel-Cell-Skipped",Template:""},{HashPostfix:"-TabularTemplate-Row-Prefix",Template:'\n\t\t\t\t\t<tr data-tabular-row-index="{~D:Record.Key~}" data-tabular-group-index="{~D:Record.Group~}">{~T:TabularTemplateRow-ExtraPrefix~}\n'},{HashPostfix:"-TabularTemplate-Cell-Prefix",Template:'\n\t\t\t\t\t\t<td data-tabular-column-index="{~D:Record.PictForm.InputIndex~}">\x3c!-- {~D:Record.Name~} --\x3e\n'},{HashPostfix:"-TabularTemplate-Cell-Postfix",Template:"\n\t\t\t\t\t\t</td>\n"},{HashPostfix:"-TabularTemplate-Row-Postfix",Template:"\n\t\t\t\t\t{~T:TabularTemplateRow-ExtraPostfix~}</tr>"},{HashPostfix:"-TabularTemplate-Begin-Input",Template:'\n\t\t\t\t\t\x3c!-- DEFAULT Input {~"D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input",Template:' value="">'},{HashPostfix:"-TabularTemplate-Mid-Input",Template:" "},{HashPostfix:"-TabularTemplate-InformaryAddress-Input",Template:" data-i-index=\"{~D:Context[2].Key~}\" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].dataChangedTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\" "},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-String",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-String",Template:' value="">'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-Number",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-Number",Template:' value="">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-PreciseNumber",Template:'\n\t\t\t\t\t\x3c!-- DataType PreciseNumber {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="Number" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} id="TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" '},{HashPostfix:"-TabularTemplate-End-Input-DataType-PreciseNumber",Template:' value="">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-PreciseNumberReadOnly",DefaultInputExtensions:["Pict-Input-PreciseNumber"],Template:'\n\t\t\t\t\t\x3c!-- InputType PreciseNumberReadOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" id="PRECISE-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.InformaryTabular~}\n'},{HashPostfix:"-TabularTemplate-End-Input-InputType-PreciseNumberReadOnly",Template:'\n\t\t\t\t\t\tvalue="">\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} id="TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~} value="" readonly="readonly">\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-TextArea",Template:"\n\t\t\t\t\t\x3c!-- InputType TextArea {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<textarea {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} "},{HashPostfix:"-TabularTemplate-End-Input-InputType-TextArea",Template:" ></textarea>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Option",DefaultInputExtensions:["Pict-Input-Select"],Template:'\n\t\t\t\t\t\x3c!-- InputType Option {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" id="SELECT-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Option",Template:" value=\"\">\n\t\t\t\t\t<select {~D:Record.Macro.ControlAttr~} id=\"SELECT-TABULAR-DROPDOWN-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}\" {~D:Record.Macro.HTMLName~} onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].inputDataRequestTabular('{~D:Context[2].Group~}', '{~D:Record.PictForm.InputIndex~}', '{~D:Context[2].Key~}')\"></select>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Boolean",Template:'\n\t\t\t\t\t\x3c!-- InputType Boolean {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="checkbox" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Boolean",Template:' value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-DataType-DateTime",DefaultInputExtensions:["Pict-Input-DateTime"],Template:'\n\t\t\t\t\t\x3c!-- DataType DateTime {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" id="DATETIME-TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-DataType-DateTime",Template:' value="">\n\t\t\t\t\t<input {~D:Record.Macro.ControlAttr~} id="DATETIME-TABULAR-INPUT-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~}\n\t\t\t\t\t\tonchange="{~P~}.views[\'{~D:Context[0].Hash~}\'].inputDataRequestTabular(\'{~D:Context[2].Group~}\', \'{~D:Record.PictForm.InputIndex~}\', \'{~D:Context[2].Key~}\')"\n\t\t\t\t\t\ttype="datetime-local" value="" />\n'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Hidden",Template:"\n\t\t\t\t\t\x3c!-- InputType Hidden {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span\n"},{HashPostfix:"-TabularTemplate-End-Input-InputType-Hidden",Template:"></span>"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Color",Template:'\n\t\t\t\t\t\x3c!-- InputType Color {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <input type="color" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InputChangeHandler~} {~D:Record.Macro.InformaryTabular~}'},{HashPostfix:"-TabularTemplate-End-Input-InputType-Color",Template:" />\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-DisplayOnly",Template:"\n\t\t\t\t\t\x3c!-- InputType DisplayOnly {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<span>{~D:Record.Name~}:</span> <span {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.InputFullProperties~} {~D:Record.Macro.InformaryTabular~}"},{HashPostfix:"-TabularTemplate-End-Input-InputType-DisplayOnly",Template:" ></span>\n"},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-ReadOnly",Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input readonly type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-ReadOnly",Template:' value="">'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-Link",DefaultInputExtensions:["Pict-Input-Link"],Template:'\n\t\t\t\t\t\x3c!-- DataType Number {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="hidden" {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-Link",Template:' value="">\n\t\t\t\t\t<a {~D:Record.Macro.ControlAttr~} id="TABULAR-DATA-{~D:Record.Macro.RawHTMLID~}-{~D:Context[2].Key~}" {~D:Record.Macro.HTMLName~}>{~D:Record.Name~}</a>'},{HashPostfix:"-TabularTemplate-Begin-Input-InputType-TemplatedEntityLookup",Template:'\n\t\t\t\t\t\x3c!-- InputType TemplatedEntityLookup {~D:Record.Hash~} {~D:Record.DataType~} --\x3e\n\t\t\t\t\t<input type="text" {~D:Record.Macro.ControlAttr~} {~D:Record.Macro.HTMLName~} {~D:Record.Macro.InformaryTabular~} '},{HashPostfix:"-TabularTemplate-End-Input-InputType-TemplatedEntityLookup",Template:' value="">'}]}},{}],59:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.log}getTriggerGroupConfigurationArray(t){let e=t.PictForm.AutofillTriggerGroup;return e?(Array.isArray(e)||(e=[e]),e):[]}autoFillFromAddressList(t,e,i,n){if(!("TriggerGroupHash"in i)||"string"!=typeof i.TriggerGroupHash)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerGroupHash string is not present."),!1;if(!("TriggerAddress"in i)||"string"!=typeof i.TriggerAddress)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerAddress string is not present."),!1;let r=this.pict.manifest.getValueByHash(this.pict,i.TriggerAddress);return!(!r&&!i.MarshalEmptyValues)&&(t.setDataByInput(e,r),t.manualMarshalDataToViewByInput(e),!0)}autoFillFromAddressListTabular(t,e,i,n,r){if(!("TriggerGroupHash"in i)||"string"!=typeof i.TriggerGroupHash)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerGroupHash string is not present."),!1;if(!("TriggerAddress"in i)||"string"!=typeof i.TriggerAddress)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerAddress string is not present."),!1;let o=this.pict.manifest.getValueByHash(this.pict,i.TriggerAddress);return!(!o&&!i.MarshalEmptyValues)&&(t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,r,o),t.manualMarshalTabularDataToViewByInput(e,r),!0)}onDataChange(t,e,i,n,r){let o=this.getTriggerGroupConfigurationArray(e);if(Array.isArray(o)&&this.pict.views.PictFormMetacontroller)for(let i=0;i<o.length;i++){const n=o[i];n.TriggerAllInputs&&(Array.isArray(n.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,n.PreSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," pre-trigger")),t.registerOnTransactionCompleteCallback(r,()=>{if(Array.isArray(n.PostSolvers)){this.pict.providers.DynamicSolver.executeSolvers(t,n.PostSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," post-trigger"));const e=n.MarshalOnComplete;!0===e?this.pict.views.PictFormMetacontroller.marshalToView():e&&(this.pict.views.PictFormMetacontroller.marshalSectionToView(e.Section),this.pict.views.PictFormMetacontroller.marshalInputToView(e.Input))}}),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(n.TriggerGroupHash,":DataChange:").concat(e.Hash||e.DataAddress,":").concat(this.pict.getUUID()),r))}return super.onDataChange(t,e,i,n,r)}onDataChangeTabular(t,e,i,n,r,o){let a=this.getTriggerGroupConfigurationArray(e);if(Array.isArray(a)&&this.pict.views.PictFormMetacontroller)for(let i=0;i<a.length;i++){const n=a[i];n.TriggerAllInputs&&(Array.isArray(n.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,n.PreSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," tabular pre-trigger")),t.registerOnTransactionCompleteCallback(o,()=>{if(Array.isArray(n.PostSolvers)){this.pict.providers.DynamicSolver.executeSolvers(t,n.PostSolvers,"AutofillTriggerGroup hash ".concat(n.TriggerGroupHash," tabular post-trigger"));const e=n.MarshalOnComplete;!0===e?this.pict.views.PictFormMetacontroller.marshalToView():e&&(this.pict.views.PictFormMetacontroller.marshalSectionToView(e.Section),this.pict.views.PictFormMetacontroller.marshalInputToView(e.Input))}}),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(n.TriggerGroupHash,":DataChange:").concat(e.Hash||e.DataAddress,":").concat(this.pict.getUUID()),o))}return super.onDataChangeTabular(t,e,i,n,r,o)}onAfterEventCompletion(t,e,i,n,r,o){let a=_slicedToArray(("string"==typeof r?r:"").split(":"),5),s=a[0],c=a[1],l=(a[2],a[3]),p=a[4];p||(p=this.pict.getUUID());let d=e.PictForm.AutofillTriggerGroup;if(!d||"TriggerGroup"!==s||(e.Hash||e.DataAddress)==l)return super.onAfterEventCompletion(t,e,i,n,r,o);Array.isArray(d)||(d=[d]);for(let r=0;r<d.length;r++){let o=d[r];if(o.TriggerGroupHash===c){if(Array.isArray(o.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,o.PreSolvers,"AutofillTriggerGroup hash ".concat(o.TriggerGroupHash," pre-autofill")),"TriggerAddress"in o&&this.autoFillFromAddressList(t,e,o,n),o.SelectOptionsRefresh){let t=this.pict.views[e.PictForm.ViewHash];this.pict.providers.DynamicMetaLists.rebuildListByHash(e.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectList(t,t.getGroup(e.PictForm.GroupIndex),t.getRow(e.PictForm.GroupIndex,e.PictForm.Row),e,i,n),t.manualMarshalDataToViewByInput(e,p)}if(Array.isArray(o.PostSolvers)){this.pict.providers.DynamicSolver.executeSolvers(t,o.PostSolvers,"AutofillTriggerGroup hash ".concat(o.TriggerGroupHash," post-autofill"));const e=o.MarshalOnComplete;!0===e?this.pict.views.PictFormMetacontroller.marshalToView():e&&(this.pict.views.PictFormMetacontroller.marshalSectionToView(e.Section),this.pict.views.PictFormMetacontroller.marshalInputToView(e.Input))}}}return super.onAfterEventCompletion(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){let s=_slicedToArray(("string"==typeof o?o:"").split(":"),5),c=s[0],l=s[1],p=(s[2],s[3]),d=s[4];if(d||(d=this.pict.getUUID()),!e.PictForm.AutofillTriggerGroup||"TriggerGroup"!==c||(e.Hash||e.DataAddress)==p)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);let u=e.PictForm.AutofillTriggerGroup;Array.isArray(u)||(u=[u]);for(const o of u)if(o.TriggerGroupHash===l)if(o.SelectOptionsRefresh)if(e.PictForm.SelectOptionsPickList){let t=this.pict.views[e.PictForm.ViewHash];this.pict.providers.DynamicMetaLists.rebuildListByHash(e.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectListTabular(t,t.getGroup(e.PictForm.GroupIndex),t.getRow(e.PictForm.GroupIndex,e.PictForm.Row),e,i,n,r),t.manualMarshalTabularDataToViewByInput(e,r,d)}else;else this.autoFillFromAddressListTabular(t,e,o,n,r);return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],60:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.options.DefaultCoreParsingConfiguration&&Array.isArray(this.options.DefaultCoreParsingConfiguration)||(this.options.DefaultCoreParsingConfiguration={AddressInObject:"",ObjectType:"object",MergeMethod:"Object",Steps:[{InputProperty:!1,Method:"Initialize",Merge:!1},{InputProperty:"PictForm.ChartConfigCorePrototypeRaw",Method:"Raw",Merge:!0},{InputProperty:"PictForm.ChartConfigCorePrototypeAddress",Method:"Address",Merge:!0},{InputProperty:"PictForm.ChartConfigCorePrototype",Method:"SingleSolver",Merge:!0}]}),this.defaultCoreParsingConfiguration=JSON.parse(JSON.stringify(this.options.DefaultCoreParsingConfiguration)),"object"==typeof this.options.DefaultLabelParsingConfiguration&&Array.isArray(this.options.DefaultLabelParsingConfiguration.Steps)||(this.options.DefaultLabelParsingConfiguration={AddressInObject:"data.labels",ObjectType:"array",MergeMethod:"Array",Steps:[{InputProperty:!1,Method:"Initialize",Merge:!1},{InputProperty:"PictForm.ChartLabelsRaw",Method:"Raw",Merge:!1},{InputProperty:"PictForm.ChartLabelsAddress",Method:"Address",Merge:!1},{InputProperty:"PictForm.ChartLabelsSolver",Method:"SingleSolver",Merge:!1}]}),this.defaultLabelParsingConfiguration=JSON.parse(JSON.stringify(this.options.DefaultLabelParsingConfiguration)),"object"==typeof this.options.DefaultDataParsingConfiguration&&Array.isArray(this.options.DefaultDataParsingConfiguration.Steps)||(this.options.DefaultDataParsingConfiguration={AddressInObject:"data.datasets",ObjectType:"array",MergeMethod:"Array",Steps:[{InputProperty:!1,Method:"Initialize",Merge:!1},{InputProperty:"PictForm.ChartDatasetsRaw",Method:"Raw",Merge:!1},{InputProperty:"PictForm.ChartDatasetsAddress",Method:"Address",Merge:!1},{InputProperty:"PictForm.ChartDatasetsSolvers",Method:"ArrayOfSolvers",Merge:!0}]}),this.defaultDataParsingConfiguration=JSON.parse(JSON.stringify(this.options.DefaultDataParsingConfiguration)),this.currentChartObjects={},this.currentChartDataObjects={}}applyInputParsingConfiguration(t,e,i,n){let r=t,o=n,a=e,s=i;if("object"!=typeof t)return!1;if("string"!=typeof n||n.length<1)return!1;if("object"!=typeof s)return!1;"object"!=typeof a&&(a={});let c,l=this.pict.manifest.getValueByHash(r,o);"object"==typeof l&&(s=Object.assign(s,l)),c=s.AddressInObject&&""!=s.AddressInObject?this.pict.manifest.getValueByHash(a,s.AddressInObject):a;for(let e=0;e<s.Steps.length;e++){let i=s.Steps[e];switch(i.Method){case"Initialize":if(s.AddressInObject&&"string"==typeof s.AddressInObject&&s.AddressInObject.length>0){let t=this.pict.manifest.getValueByHash(a,s.AddressInObject);"array"===s.ObjectType?t&&Array.isArray(t)||this.pict.manifest.setValueByHash(a,s.AddressInObject,[]):"object"===s.ObjectType?t&&"object"==typeof t||this.pict.manifest.setValueByHash(a,s.AddressInObject,{}):this.pict.log.warn("Unsupported ObjectType ".concat(s.ObjectType," parsing chart Initialize configuration for input ").concat(r.Macro.RawHTMLID))}break;case"Raw":if(!this.pict.manifest.checkAddressExists(r,i.InputProperty))break;let e=this.pict.manifest.getValueByHash(r,i.InputProperty);if("object"!==typeof e)break;if("array"===s.ObjectType){if(Array.isArray(e))if(i.Merge){Array.isArray(c)||(c=[]);let t=c.concat(e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e)}else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,e):e;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);break;case"Address":let n=this.pict.manifest.getValueByHash(r,i.InputProperty);if(!n)break;if("object"!=typeof this.pict.resolveStateFromAddress(n,t))break;if("array"===s.ObjectType){if(Array.isArray(e))if(i.Merge){Array.isArray(c)||(c=[]);let t=c.concat(e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e)}else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,e);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,e):e;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);break;case"SingleSolver":let o=this.pict.manifest.getValueByHash(r,i.InputProperty);if("string"!=typeof o)break;let l=this.pict.providers.DynamicSolver.runSolver(o,!0);if("array"===s.ObjectType){if(Array.isArray(l))if(i.Merge){Array.isArray(c)||(c=[]);let t=c.concat(l);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,l)}else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,l);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,l):l;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);break;case"ArrayOfSolvers":let p=this.pict.manifest.getValueByHash(r,i.InputProperty);if(!Array.isArray(p))break;for(let t=0;t<p.length;t++){let n=p[t];if("object"!=typeof n)continue;let r=n.Label,o=n.DataSolver,l=this.pict.providers.DynamicSolver.runSolver(o,!0),d={label:r,data:Array.isArray(l)?l:[]};if(n.ChartType&&(d.type=n.ChartType),n.CustomYAxisID&&(d.yAxisID=n.CustomYAxisID),n.CustomXAxisID&&(d.xAxisID=n.CustomXAxisID),n.Tension&&(d.tension=n.Tension),n.PointRadius&&(d.pointRadius=n.PointRadius),n.StackGroup&&(d.stack=n.StackGroup),"array"===s.ObjectType)Array.isArray(l)&&(i.Merge?(Array.isArray(c)||(c=[]),c.push(d),this.pict.manifest.setValueByHash(a,s.AddressInObject,c)):this.pict.manifest.setValueByHash(a,s.AddressInObject,[d]));else if("object"===s.ObjectType)if(i.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==typeof c&&null!=c||(c={}),i.Merge){let t=Object.assign(c,l);this.pict.manifest.setValueByHash(a,s.AddressInObject,t)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,e);else a=i.Merge?Object.assign(a,l):l;else this.pict.manifest.setValueByHash(a,s.AddressInObject,e)}}}}getInputChartConfiguration(t,e,i){if(!("PictForm"in e))return!1;let n=e.PictForm,r="object"==typeof n.ChartJSOptionsCorePrototype?n.ChartJSOptionsCorePrototype:{};return this.applyInputParsingConfiguration(e,r,this.defaultCoreParsingConfiguration,"PictForm.ChartConfigCoreParsingConfigurationOverride"),"type"in r||(r.type="string"==typeof n.ChartType?n.ChartType:"bar"),this.applyInputParsingConfiguration(e,r,this.defaultLabelParsingConfiguration,"PictForm.ChartLabelsParsingConfigurationOverride"),this.applyInputParsingConfiguration(e,r,this.defaultDataParsingConfiguration,"PictForm.ChartDataParsingConfigurationOverride"),r}initializeChartVisualization(t,e,i,n,r,o){let a="#CONFIG-FOR-".concat(n.Macro.RawHTMLID),s=this.getInputChartConfiguration(t,n,r);this.pict.ContentAssignment.assignContent(a,JSON.stringify(s));let c="#CANVAS-FOR-".concat(n.Macro.RawHTMLID),l=this.pict.ContentAssignment.getElement(c);if(!Array.isArray(l)||l.length<1)return this.log.warn("Chart canvas element not found for input ".concat(c)),!1;l=l[0],"function"!=typeof window.Chart?this.log.warn("Chart.js library not loaded for input ".concat(c)):(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)]=new window.Chart(l,s),this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]=JSON.stringify(s.data))}onInputInitialize(t,e,i,n,r,o,a){return this.initializeChartVisualization(t,e,i,n,r,o),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return super.onDataChange(t,e,i,n,r)}onDataChangeTabular(t,e,i,n,r,o){return super.onDataChangeTabular(t,e,i,n,r,o)}onDataMarshalToForm(t,e,i,n,r,o,a){if(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)]){let e=this.getInputChartConfiguration(t,n,r),i=JSON.stringify(e.data);this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]!==i&&(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)].data=e.data,this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)].update(),this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]=i)}else this.initializeChartVisualization(t,e,i,n,r,o);return super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onDataRequest(t,e,i,n){return super.onDataRequest(t,e,i,n)}onDataRequestTabular(t,e,i,n,r){return super.onDataRequestTabular(t,e,i,n,r)}}},{"../Pict-Provider-InputExtension.js":52}],61:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.log}getDateTimeInputHTMLID(t){return"#DATETIME-INPUT-FOR-".concat(t)}getTabularDateTimeHiddenInputHTMLID(t,e){return"#DATETIME-TABULAR-DATA-".concat(t,"-").concat(e)}getTabularDateTimeInputHTMLID(t,e){return"#DATETIME-TABULAR-INPUT-".concat(t,"-").concat(e)}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getDateTimeInputHTMLID(n.Macro.RawHTMLID),r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getTabularDateTimeInputHTMLID(i.Macro.RawHTMLID,o),n),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onDataRequest(t,e,i,n){let r;try{r=this.pict.ContentAssignment.readContent(this.getDateTimeInputHTMLID(e.Macro.RawHTMLID)),this.pict.ContentAssignment.assignContent(n,r),t.dataChanged(e.Hash)}catch(t){this.log.error("The value [".concat(r,"] is not a valid date; skipping parsing for [#").concat(e.Macro.RawHTMLID,"]."))}return super.onDataRequest(t,e,i,n)}onDataRequestTabular(t,e,i,n,r){let o;try{o=this.pict.ContentAssignment.readContent(this.getTabularDateTimeInputHTMLID(e.Macro.RawHTMLID,r)),this.pict.ContentAssignment.assignContent(this.getTabularDateTimeHiddenInputHTMLID(e.Macro.RawHTMLID,r),o),t.dataChangedTabular(e.PictForm.GroupIndex,e.PictForm.InputIndex,r)}catch(t){this.log.error("The value [".concat(o,"] is not a valid date; skipping parsing for [#").concat(e.Macro.RawHTMLID,"]."))}return super.onDataRequestTabular(t,e,i,n,r)}}},{"../Pict-Provider-InputExtension.js":52}],62:[function(t,e,i){e.exports="\n.pict-section-form-diagram\n{\n\tdisplay: block;\n\twidth: 100%;\n\tmin-height: 120px;\n\tborder: 1px solid var(--theme-color-border-primary, #D4C4A8);\n\tborder-radius: 4px;\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tbox-sizing: border-box;\n\tposition: relative;\n}\n\n.pict-section-form-diagram-view\n{\n\tpadding: 12px;\n\tmin-height: 96px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow: auto;\n}\n\n.pict-section-form-diagram-view.is-empty\n{\n\tcolor: var(--theme-color-text-muted, #8A7F72);\n\tfont-style: italic;\n\tfont-size: 0.9rem;\n}\n\n.pict-section-form-diagram-view svg\n{\n\tdisplay: block;\n\tmax-width: 100%;\n\theight: auto;\n}\n\n.pict-section-form-diagram-edit\n{\n\tpadding: 0;\n\tmin-height: 420px;\n\tdisplay: flex;\n}\n\n/* The Excalidraw view brings its own chrome inside the slot. Force the wrap\n * and the Excalidraw root to fill so the canvas doesn't collapse to 0\n * height inside the form slot. */\n.pict-section-form-diagram-edit > .pict-excalidraw-wrap,\n.pict-section-form-diagram-edit > .pict-excalidraw-wrap > .pict-excalidraw-mount\n{\n\tflex: 1 1 auto;\n\tmin-height: 420px;\n}\n\n.pict-section-form-diagram-edit .excalidraw\n{\n\twidth: 100%;\n\theight: 100%;\n\tmin-height: 420px;\n}\n\n.pict-section-form-diagram-toggle\n{\n\tposition: absolute;\n\ttop: 6px;\n\tright: 6px;\n\tz-index: 2;\n\tpadding: 3px 9px;\n\tfont-size: 0.72rem;\n\tfont-weight: 600;\n\tcolor: var(--theme-color-text-secondary, #5A4A3C);\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tborder: 1px solid var(--theme-color-border-secondary, #D4C4A8);\n\tborder-radius: 3px;\n\tcursor: pointer;\n\tuser-select: none;\n}\n\n.pict-section-form-diagram-toggle:hover\n{\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tborder-color: var(--theme-color-accent, #2E7D74);\n}\n\n.pict-section-form-diagram.mode-edit .pict-section-form-diagram-toggle::after { content: 'Done'; }\n.pict-section-form-diagram.mode-view .pict-section-form-diagram-toggle::after { content: 'Edit'; }\n"},{}],63:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js"),r=t("pict-section-excalidraw"),o=t("./Pict-Provider-Input-Diagram-CSS.js"),a=t("./util/Themeify-SVG.js"),s={ProviderIdentifier:"Pict-Input-Diagram",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(s)),e),i),this.pict,this.log,this._instances={},this.pict&&this.pict.CSSMap&&"function"==typeof this.pict.CSSMap.addCSS&&this.pict.CSSMap.addCSS("Pict-Input-Diagram-CSS",o,500)}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}_resolveValue(t,e){return"string"==typeof e&&e.length>0?e:t&&t.Content&&"string"==typeof t.Content?t.Content:t&&t.Default&&"string"==typeof t.Default?t.Default:""}_isLikelySvg(t){return"string"==typeof t&&/<svg[\s>]/i.test(t)}_assignSlotContent(t,e){return!(!this.pict||!this.pict.ContentAssignment||"function"!=typeof this.pict.ContentAssignment.assignContent)&&(this.pict.ContentAssignment.assignContent(t,e),!0)}_writeHiddenInputValue(t,e){let i="undefined"!=typeof document?document.getElementById(t):null;if(!i)return!1;i.value=null==e?"":String(e);try{i.dispatchEvent(new Event("change",{bubbles:!0}))}catch(t){}return!0}_resolveVendor(){return"undefined"==typeof window?null:window.PictSectionExcalidrawVendor||null}_buildViewHTML(t){return this._isLikelySvg(t)?'<div class="pict-section-form-diagram-view">'.concat(t,"</div>"):'<div class="pict-section-form-diagram-view is-empty">(empty diagram)</div>'}_setSlotModeClass(t,e){if("undefined"==typeof document)return;let i=t.Macro.RawHTMLID,n=document.getElementById(i)||document.querySelector(this.getContentDisplayHTMLID(i));n&&n.classList&&(n.classList.remove("mode-edit","mode-view","pict-section-form-diagram-edit"),"edit"===e?n.classList.add("mode-edit","pict-section-form-diagram-edit"):n.classList.add("mode-view"))}_mountView(t,e,i){let n=e.Macro.RawHTMLID,r=this.getContentDisplayHTMLID(n),o=this._resolveValue(e,i);this._assignSlotContent(r,this._buildViewHTML(o)),this._setSlotModeClass(e,"view");let a=this._instances[e.Hash]||{};a.mode="view",a.slotID=r,a.lastValue=o,a.input=e,a.viewInstance=null,this._instances[e.Hash]=a}_extractSceneFromSvg(t,e){if(!this._isLikelySvg(t))return e(null,null);let i=this._resolveVendor();if(!i||!i.loadFromBlob)return this.log&&this.log.warn("[Pict-Input-Diagram] vendor.loadFromBlob unavailable — falling back to empty scene"),e(null,null);try{let n=new window.Blob([t],{type:"image/svg+xml"}),r=i.loadFromBlob(n,null,null);Promise.resolve(r).then(t=>{e(null,t||null)},t=>{e(t,null)})}catch(t){e(t,null)}}_buildEditorOptions(t,e,i){let n=t.PictForm&&t.PictForm.Diagram||{},r=n.EditorOptions||{},o=t.Macro.RawHTMLID;this.pict.AppData._PictInputDiagram||(this.pict.AppData._PictInputDiagram={}),this.pict.AppData._PictInputDiagram[t.Hash]||(this.pict.AppData._PictInputDiagram[t.Hash]={Scene:null});let a="AppData._PictInputDiagram.".concat(t.Hash,".Scene");return Object.assign({},r,{ViewIdentifier:"Pict-Input-Diagram-Editor-".concat(t.Hash),TargetElementAddress:this.getContentDisplayHTMLID(o),DrawingDataAddress:a,EditorImplementation:n.EditorImplementation||"react"})}_mountEdit(t,e,i,n){let o=e.Macro.RawHTMLID,s=this.getContentDisplayHTMLID(o),c=this._resolveValue(e,i),l=this._instances[e.Hash]||{};l.input=e;let p=!1!==(e.PictForm&&e.PictForm.Diagram||{}).ThemeColors;this._assignSlotContent(s,""),this._extractSceneFromSvg(c,(t,i)=>{let d=this._buildEditorOptions(e,c,l),u=d.ViewIdentifier,h=this;i&&this.pict.AppData._PictInputDiagram&&this.pict.AppData._PictInputDiagram[e.Hash]&&(this.pict.AppData._PictInputDiagram[e.Hash].Scene={elements:i.elements||[],appState:i.appState||{},files:i.files||{}}),d.OnChange=(t,i)=>{try{let i=t.exportSvg({exportEmbedScene:!0,exportBackground:!1});Promise.resolve(i).then(t=>{let i=t&&"string"==typeof t.outerHTML?t.outerHTML:"string"==typeof t?t:null;if(!i)return;p&&(i=a.themeifySVG(i)),h._writeHiddenInputValue(o,i);let n=h._instances[e.Hash];n&&(n.lastValue=i)},t=>{h.log&&h.log.warn("[Pict-Input-Diagram] exportSvg failed in OnChange",{error:t.message,inputHash:e.Hash})})}catch(t){h.log&&h.log.warn("[Pict-Input-Diagram] OnChange handler threw",{error:t.message,inputHash:e.Hash})}},this.pict.addView(u,d,r);let m=this.pict.views[u];if(!m){let t=new Error("Failed to instantiate Diagram editor view "+u);return this.log&&this.log.error("[Pict-Input-Diagram] addView returned nothing",{viewHash:u}),void("function"==typeof n&&n(t))}this._setSlotModeClass(e,"edit"),l.mode="edit",l.slotID=s,l.lastValue=c,l.viewInstance=m,l.viewHash=u,l.themeColors=p,this._instances[e.Hash]=l;try{let t=m.render();t&&"function"==typeof t.then?t.then(()=>{"function"==typeof n&&n(null)},t=>{"function"==typeof n&&n(t)}):"function"==typeof n&&n(null)}catch(t){this.log&&this.log.error("[Pict-Input-Diagram] editor.render threw",{error:t.message}),"function"==typeof n&&n(t)}})}_destroyEdit(t){let e=this._instances[t.Hash];if(!e||!e.viewInstance)return;let i=e.viewInstance;try{"function"==typeof i.destroy&&i.destroy()}catch(t){this.log&&this.log.warn("[Pict-Input-Diagram] editor.destroy threw",{error:t.message})}if(this.pict.AppData._PictInputDiagram&&this.pict.AppData._PictInputDiagram[t.Hash]&&delete this.pict.AppData._PictInputDiagram[t.Hash],e.viewHash&&this.pict.views&&this.pict.views[e.viewHash])try{delete this.pict.views[e.viewHash]}catch(t){}e.viewInstance=null,e.viewHash=null}getMode(t){let e=this._instances[t];return e?e.mode:null}setMode(t,e,i){let n=this._instances[t];if(!n){let e=new Error("Cannot setMode — input is not mounted: "+t);return void("function"==typeof i&&i(e))}if("edit"!==e&&"view"!==e){let t=new Error('setMode: unknown mode "'+e+'" (use "edit" or "view")');return void("function"==typeof i&&i(t))}n.mode!==e?"edit"!==e?(this._destroyEdit(n.input),this._mountView(null,n.input,n.lastValue),"function"==typeof i&&i(null)):this._mountEdit(null,n.input,n.lastValue,i):"function"==typeof i&&i(null)}toggleMode(t,e){let i="edit"===this.getMode(t)?"view":"edit";this.setMode(t,i,e)}commit(t,e){let i=this._instances[t];if(!i||"edit"!==i.mode||!i.viewInstance)return void("function"==typeof e&&e(null));let n=!1!==i.themeColors,r=this,o=i.input.Macro.RawHTMLID;try{let t=i.viewInstance.exportSvg({exportEmbedScene:!0,exportBackground:!1});Promise.resolve(t).then(t=>{let s=t&&"string"==typeof t.outerHTML?t.outerHTML:null;s&&(n&&(s=a.themeifySVG(s)),r._writeHiddenInputValue(o,s),i.lastValue=s),"function"==typeof e&&e(null)},t=>{"function"==typeof e&&e(t)})}catch(t){"function"==typeof e&&e(t)}}onInputInitialize(t,e,i,n,r,o,a){return this._mountView(t,n,r),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){super.onInputInitializeTabular(t,e,i,n,r,o,a);let s=new Error("Diagram InputType is not supported inside Tabular rows in Phase 1.");throw this.log&&this.log.warn("[Pict-Input-Diagram] tabular not supported",{inputHash:i&&i.Hash}),s}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this._instances[n.Hash];return s?"view"===s.mode?this._mountView(t,n,r):(s.lastValue="string"==typeof r?r:s.lastValue,this._extractSceneFromSvg(s.lastValue,(t,e)=>{if(!t&&e&&s.viewInstance&&"function"==typeof s.viewInstance.setScene)try{s.viewInstance.setScene(e)}catch(t){this.log&&this.log.warn("[Pict-Input-Diagram] setScene threw after marshal",{error:t.message})}})):this._mountView(t,n,r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}},e.exports.default_configuration=s},{"../Pict-Provider-InputExtension.js":52,"./Pict-Provider-Input-Diagram-CSS.js":62,"./util/Themeify-SVG.js":77,"pict-section-excalidraw":19}],64:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.log}gatherEntitySet(t,e,i,n,r){if(!("Entity"in e)||"string"!=typeof e.Entity)return this.log.warn("EntityBundleRequest failed to parse entity request because the entity stanza did not contain an Entity string."),t();if(!("Filter"in e)||"string"!=typeof e.Filter)return this.log.warn("EntityBundleRequest failed to parse entity request because the entity stanza did not contain a Filter string."),t();if(!("Destination"in e)||"string"!=typeof e.Destination)return this.log.warn("EntityBundleRequest failed to parse entity request because the entity stanza did not contain a Destination string."),t();const o={Value:r,Input:n,View:i};let a=null,s=null;e.RecordCount&&(a=null!=e.RecordStartCursor?e.RecordStartCursor:0,s=null!=e.RecordCount?e.RecordCount:null);const c=this.pict.parseTemplate(e.Filter,o);""==c&&this.log.warn("EntityBundleRequest failed to parse entity request because the entity Filter did not return a string for FilterBy");const l=(i,n)=>i?(this.log.error("EntityBundleRequest request Error getting entity set for [".concat(e.Entity,"] with filter [").concat(c,"]: ").concat(i),i),t(i,"")):(this.log.trace("EntityBundleRequest found ".concat(n.length," records for ").concat(e.Entity," filtered to [").concat(c,"]")),e.SingleRecord?(n.length>1&&this.log.warn("EntityBundleRequest found more than one record for ".concat(e.Entity," filtered to [").concat(c,"] but SingleRecord is true; setting the first record.")),n.length<1&&this.pict.manifest.setValueByHash(this.pict,e.Destination,!1),this.pict.manifest.setValueByHash(this.pict,e.Destination,n[0])):this.pict.manifest.setValueByHash(this.pict,e.Destination,n),t());s?this.pict.EntityProvider.getEntitySetPage(e.Entity,c,a,s,l):this.pict.EntityProvider.getEntitySet(e.Entity,c,l)}gatherCustomDataSet(t,e,i,n,r){if(!("URL"in e)||"string"!=typeof e.URL)return this.log.warn("EntityBundleRequest failed to parse custom data request because the stanza did not contain a URL string."),t();const o={Value:r,Input:n,View:i},a=this.pict.parseTemplate(e.URL,o);""==a&&this.log.warn("EntityBundleRequest failed to parse custom data request because the entity Filter did not return a string for FilterBy");let s="";const c=!!e.Host&&e.Host,l=e.Protocol?e.Protocol:"https",p=!!e.Port&&e.Port;c?(s="".concat(l,"://").concat(c),p&&(s+=":".concat(p))):s=this.pict.EntityProvider.options.urlPrefix;let d={url:"".concat(s).concat(a)};return d=this.pict.EntityProvider.prepareRequestOptions(d),this.pict.EntityProvider.restClient.getJSON(d,(i,n,r)=>i?(this.log.error("EntityBundleRequest request Error getting data set for [".concat(e.Entity,"] with filter [").concat(a,"]: ").concat(i),i),t(i,"")):(this.log.trace("EntityBundleRequest completed request for ".concat(e.Entity," filtered to [").concat(a,"]")),e.Destination&&this.pict.manifest.setValueByHash(this.pict,e.Destination,r),t()))}async gatherDataFromServer(t,e,i,n,r){if("object"!=typeof e||!("PictForm"in e)||!("EntitiesBundle"in e.PictForm)||!Array.isArray(e.PictForm.EntitiesBundle))return this.log.warn("Input at ".concat(n," is set as an EntityBundleRequest input but no array of entity requests was found")),null;const o="BundleLoad-".concat(this.pict.getUUID());r&&t.registerEventTransactionAsyncOperation(r,o);let a=e,s=i,c=this.fable.newAnticipate();if(a.PictForm.EntitiesBundle.length>0&&a.PictForm.EntitiesBundle[0].PictMode)c.anticipate(t=>{this.pict.EntityProvider.gatherDataFromServer(a.PictForm.EntitiesBundle,e=>{setTimeout(()=>t(e),0)})});else{const e=[];let i={Value:s,Input:a,View:t};for(let n=0;n<a.PictForm.EntitiesBundle.length;n++){let r=a.PictForm.EntitiesBundle[n];c.anticipate(n=>{try{switch(r.Type){case"Custom":return this.gatherCustomDataSet(n,r,t,a,s);case"SetStateAddress":e.push(i),i=this.fable.manifest.getValueByHash(this.fable,r.StateAddress),void 0===i&&(i={},this.fable.manifest.setValueByHash(this.fable,r.StateAddress,i));break;case"PopState":e.length>0?i=e.pop():this.log.warn("EntityBundleRequest encountered a PopState without a matching SetStateAddress.");break;case"MapJoin":this.pict.EntityProvider.mapJoin(r,this.pict.EntityProvider.prepareState(i,r));break;case"ProjectDataset":this.pict.EntityProvider.projectDataset(r,this.pict.EntityProvider.prepareState(i,r));break;default:return this.gatherEntitySet(n,r,t,a,s)}}catch(t){this.log.error("EntityBundleRequest error gathering entity set: ".concat(t),t)}return n()})}c.anticipate(t=>setTimeout(t,0))}return c.anticipate(i=>{if(a.PictForm.EntityBundleTriggerGroup&&this.pict.views.PictFormMetacontroller){const i=this.getTriggerGroupConfigurationArray(a,a.PictForm.EntityBundleTriggerGroup)[0];let n;i&&Array.isArray(i.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,i.PreSolvers,"EntityBundleTriggerGroup hash ".concat(i.TriggerGroupHash," pre-trigger")),i&&Array.isArray(i.PostSolvers)&&(n=r||this.pict.getUUID(),n!==r&&this.pict.TransactionTracking.registerTransaction(n),t.registerOnTransactionCompleteCallback(n,()=>{if(Array.isArray(i.PostSolvers)){this.pict.providers.DynamicSolver.executeSolvers(t,i.PostSolvers,"EntityBundleTriggerGroup hash ".concat(i.TriggerGroupHash," post-trigger"));const e=i.MarshalOnComplete;!0===e?this.pict.views.PictFormMetacontroller.marshalToView():e&&(this.pict.views.PictFormMetacontroller.marshalSectionToView(e.Section),this.pict.views.PictFormMetacontroller.marshalInputToView(e.Input))}})),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(a.PictForm.EntityBundleTriggerGroup,":BundleLoad:").concat(e.Hash||e.DataAddress,":").concat(this.pict.getUUID()),r),n&&n!==r&&t.finalizeTransaction(n)}a.PictForm.EntityBundleTriggerMetacontrollerSolve&&this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.solve(),a.PictForm.EntityBundleTriggerMetacontrollerRender&&this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.render(),i()}),new Promise((e,i)=>{c.wait(i=>(i&&this.log.error("EntityBundleRequest error gathering entity set: ".concat(i),i),r&&t.eventTransactionAsyncOperationComplete(r,o),e(i)))})}getTriggerGroupConfigurationArray(t,e){let i=t.PictForm.AutofillTriggerGroup;return i?(Array.isArray(i)||(i=[i]),null==e?i:i.filter(t=>t.TriggerGroupHash===e)):[]}onInputInitialize(t,e,i,n,r,o,a){return n.PictForm&&(r||n.PictForm.EntityBundleTriggerWithoutValue)&&n.PictForm.EntityBundleTriggerOnInitialize&&this.gatherDataFromServer(t,n,r,o,a),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this.log.error("EntityBundleRequest for input [".concat(i.Hash,"] Tabular support is intentionally not supported.")),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return e.PictForm&&(i||e.PictForm.EntityBundleTriggerWithoutValue)&&!1!==e.PictForm.EntityBundleTriggerOnDataChange&&this.gatherDataFromServer(t,e,i,n,r),super.onDataChange(t,e,i,n,r)}onAfterEventCompletion(t,e,i,n,r,o){const a=_slicedToArray(("string"==typeof r?r:"").split(":"),2),s=a[0],c=a[1];return"TriggerGroup"===s&&c&&e.PictForm.TriggerGroupHash===c?(this.gatherDataFromServer(t,e,i,n,o),super.onAfterEventCompletion(t,e,i,n,r,o)):super.onAfterEventCompletion(t,e,i,n,r,o)}}},{"../Pict-Provider-InputExtension.js":52}],65:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}getInputContent(t,e){let i=null;return e&&"string"==typeof e&&(i=e),t.Content&&"string"==typeof t.Content&&(i=t.Content),t.Default&&"string"==typeof t.Default&&(i=t.Default),i}onInputInitialize(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onInputInitialize(t,e,i,n,s,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],66:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.setAttribute(this.getInputHTMLID(n.Macro.RawHTMLID),"href",r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.setAttribute(this.getTabularInputHTMLID(i.Macro.RawHTMLID,o),"href",n),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],67:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js"),r=t("marked");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}getInputContent(t,e){let i=null;return e&&"string"==typeof e&&(i=e),t.Content&&"string"==typeof t.Content&&(i=t.Content),t.Default&&"string"==typeof t.Default&&(i=t.Default),i&&(i=r.parse(i)),i}onInputInitialize(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onInputInitialize(t,e,i,n,s,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this.getInputContent(n,r);return s&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),s),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){let s=this.getInputContent(i,n);return s&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),s),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52,marked:4}],68:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}roundValue(t,e){let i=e;if("DecimalPrecision"in t.PictForm){let e=this.fable.Math.roundHalfUp;if("RoundingMethod"in t.PictForm)try{e=parseInt(t.PictForm.RoundingMethod)}catch(e){this.log.error("Error parsing rounding method onDataMarshalToForm for input ".concat(t.Hash),e)}i=this.fable.Math.toFixedPrecise(i,t.PictForm.DecimalPrecision,e)}return"AddCommas"in t.PictForm&&t.PictForm.AddCommas&&(i=this.fable.DataFormat.formatterAddCommasToNumber(i)),"DigitsPrefix"in t.PictForm&&(i=t.PictForm.DigitsPrefix+i),"DigitsPostfix"in t.PictForm&&(i+=t.PictForm.DigitsPostfix),i}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getInputHTMLID(n.Macro.RawHTMLID),this.roundValue(n,r)),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent("#PRECISE-"+this.getTabularInputHTMLID(i.Macro.RawHTMLID,o).substring(1),n),this.pict.ContentAssignment.assignContent(this.getTabularInputHTMLID(i.Macro.RawHTMLID,o),this.roundValue(i,n)),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],69:[function(t,e,i){e.exports="\n.pict-section-form-richtext\n{\n\tdisplay: block;\n\twidth: 100%;\n\tmin-height: 64px;\n\tborder: 1px solid var(--theme-color-border-primary, #D4C4A8);\n\tborder-radius: 4px;\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tfont-family: var(--theme-font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);\n\tfont-size: 0.95rem;\n\tline-height: 1.55;\n\tbox-sizing: border-box;\n}\n\n.pict-section-form-richtext-view\n{\n\tpadding: 10px 14px;\n\tmin-height: 48px;\n}\n\n.pict-section-form-richtext-view.is-empty\n{\n\tcolor: var(--theme-color-text-muted, #8A7F72);\n\tfont-style: italic;\n}\n\n.pict-section-form-richtext-view :first-child { margin-top: 0; }\n.pict-section-form-richtext-view :last-child { margin-bottom: 0; }\n\n.pict-section-form-richtext-view h1,\n.pict-section-form-richtext-view h2,\n.pict-section-form-richtext-view h3,\n.pict-section-form-richtext-view h4\n{\n\tcolor: var(--theme-color-text-heading, var(--theme-color-text-primary, #2A2520));\n\tmargin: 0.6em 0 0.3em 0;\n\tline-height: 1.25;\n}\n\n.pict-section-form-richtext-view code\n{\n\tfont-family: var(--theme-font-mono, 'SFMono-Regular', Menlo, monospace);\n\tfont-size: 0.9em;\n\tpadding: 1px 5px;\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tborder-radius: 3px;\n}\n\n.pict-section-form-richtext-view pre\n{\n\tfont-family: var(--theme-font-mono, 'SFMono-Regular', Menlo, monospace);\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tpadding: 10px 12px;\n\tborder-radius: 4px;\n\toverflow: auto;\n}\n\n.pict-section-form-richtext-view blockquote\n{\n\tmargin: 0.5em 0;\n\tpadding: 4px 12px;\n\tborder-left: 3px solid var(--theme-color-accent, #2E7D74);\n\tcolor: var(--theme-color-text-secondary, #5A4A3C);\n\tbackground: var(--theme-color-background-secondary, #FBF7EE);\n}\n\n.pict-section-form-richtext-view img\n{\n\tmax-width: 100%;\n\theight: auto;\n\tborder-radius: 3px;\n}\n\n.pict-section-form-richtext-edit\n{\n\tpadding: 0;\n\tmin-height: 220px;\n}\n\n/*\n * The editor (pict-section-markdowneditor) brings its own chrome inside the\n * slot. We just provide a container border + sane min-height; CodeMirror takes\n * over from there.\n */\n\n/* Optional mode-toggle affordance — render inside the slot from the host UI\n * via _Pict.providers['Pict-Input-RichText'].toggleMode('<hash>'). The chip is\n * absolutely positioned in the top-right corner so it doesn't take a column\n * from the form layout. */\n.pict-section-form-richtext { position: relative; }\n\n.pict-section-form-richtext-toggle\n{\n\tposition: absolute;\n\ttop: 6px;\n\tright: 6px;\n\tz-index: 2;\n\tpadding: 3px 9px;\n\tfont-size: 0.72rem;\n\tfont-weight: 600;\n\tcolor: var(--theme-color-text-secondary, #5A4A3C);\n\tbackground: var(--theme-color-background-tertiary, #F4EEE2);\n\tborder: 1px solid var(--theme-color-border-secondary, #D4C4A8);\n\tborder-radius: 3px;\n\tcursor: pointer;\n\tuser-select: none;\n}\n\n.pict-section-form-richtext-toggle:hover\n{\n\tcolor: var(--theme-color-text-primary, #2A2520);\n\tbackground: var(--theme-color-background-primary, #FFFFFF);\n\tborder-color: var(--theme-color-accent, #2E7D74);\n}\n\n.pict-section-form-richtext.mode-edit .pict-section-form-richtext-toggle::after { content: 'Done'; }\n.pict-section-form-richtext.mode-view .pict-section-form-richtext-toggle::after { content: 'Edit'; }\n"},{}],70:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js"),r=t("marked"),o=t("pict-section-markdowneditor"),a=t("./Pict-Provider-Input-RichText-CSS.js"),s={ProviderIdentifier:"Pict-Input-RichText",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(s)),e),i),this.pict,this.log,this._instances={},this.pict&&this.pict.CSSMap&&"function"==typeof this.pict.CSSMap.addCSS&&this.pict.CSSMap.addCSS("Pict-Input-RichText-CSS",a,500)}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}_resolveContent(t,e){return"string"==typeof e&&e.length>0?e:t&&t.Content&&"string"==typeof t.Content?t.Content:t&&t.Default&&"string"==typeof t.Default?t.Default:""}_renderMarkdown(t){try{return r.parse(t||"")}catch(e){this.log&&this.log.warn("[Pict-Input-RichText] marked.parse failed",{error:e.message});let i=String(t||"").replace(/[&<>"]/g,t=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[t]));return"<pre>".concat(i,"</pre>")}}_writeHiddenInputValue(t,e){let i="undefined"!=typeof document?document.getElementById(t):null;if(!i)return!1;i.value=null==e?"":String(e);try{i.dispatchEvent(new Event("change",{bubbles:!0}))}catch(t){}return!0}_assignSlotContent(t,e){return!(!this.pict||!this.pict.ContentAssignment||"function"!=typeof this.pict.ContentAssignment.assignContent)&&(this.pict.ContentAssignment.assignContent(t,e),!0)}_mountView(t,e,i){let n,r=e.Macro.RawHTMLID,o=this.getContentDisplayHTMLID(r),a=this._resolveContent(e,i);if(n=a&&a.length>0?'<div class="pict-section-form-richtext-view">'.concat(this._renderMarkdown(a),"</div>"):'<div class="pict-section-form-richtext-view is-empty">(empty)</div>',this._assignSlotContent(o,n),"undefined"!=typeof document){let t=document.getElementById(r+"-CONTAINER")||document.querySelector(o);t&&t.classList&&(t.classList.remove("mode-edit"),t.classList.add("mode-view"))}let s=this._instances[e.Hash]||{};s.mode="view",s.slotID=o,s.lastValue=a,s.input=e,s.viewInstance=null,this._instances[e.Hash]=s}_buildEditorOptions(t,e,i){let n=(t.PictForm&&t.PictForm.RichText||{}).EditorOptions||{},r=t.Macro.RawHTMLID,o="AppData._PictInputRichText.".concat(t.Hash,".Segments");return this.pict.AppData._PictInputRichText||(this.pict.AppData._PictInputRichText={}),this.pict.AppData._PictInputRichText[t.Hash]={Segments:[{Content:e||""}]},Object.assign({},n,{ViewIdentifier:"Pict-Input-RichText-Editor-".concat(t.Hash),TargetElementAddress:this.getContentDisplayHTMLID(r),ContentDataAddress:o,ReadOnly:!1})}_mountEdit(t,e,i,n){let r=e.Macro.RawHTMLID,a=this.getContentDisplayHTMLID(r),s=this._resolveContent(e,i),c=this._instances[e.Hash]||{};c.input=e,this._assignSlotContent(a,"");let l=this._buildEditorOptions(e,s,c),p=l.ViewIdentifier,d=e.PictForm&&e.PictForm.RichText||{},u=this;this.pict.addView(p,l,class extends o{constructor(t,e,i){super(t,e,i)}onContentChange(t,i){try{u._writeHiddenInputValue(r,i);let t=u._instances[e.Hash];t&&(t.lastValue=i)}catch(t){u.log&&u.log.warn("[Pict-Input-RichText] onContentChange handler failed",{error:t.message,inputHash:e.Hash})}super.onContentChange&&super.onContentChange(t,i)}onImageUpload(t,i,n){if(!d.AllowImages)return u.log&&u.log.info("[Pict-Input-RichText] image upload rejected (AllowImages=false)",{inputHash:e.Hash,fileName:t&&t.name}),n("Image uploads are disabled for this field."),!0;let r=d.ImageUploader;if(r&&u.pict&&u.pict.PictApplication&&"function"==typeof u.pict.PictApplication[r])try{return u.pict.PictApplication[r](t,e,n)}catch(t){return u.log&&u.log.warn("[Pict-Input-RichText] ImageUploader threw",{error:t.message,inputHash:e.Hash}),n(t.message),!0}return!1}customConfigureExtensions(t,e){if(!1!==d.WordWrap){let e=this._codeMirrorModules;e&&e.EditorView&&e.EditorView.lineWrapping&&t.push(e.EditorView.lineWrapping)}return t}});let h=this.pict.views[p];if(!h){let t=new Error("Failed to instantiate RichText editor view "+p);return this.log&&this.log.error("[Pict-Input-RichText] addView returned nothing",{viewHash:p}),void("function"==typeof n&&n(t))}if("undefined"!=typeof document){let t=document.querySelector(a);t&&t.classList&&(t.classList.remove("mode-view"),t.classList.add("mode-edit","pict-section-form-richtext-edit"))}c.mode="edit",c.slotID=a,c.lastValue=s,c.viewInstance=h,c.viewHash=p,this._instances[e.Hash]=c;try{let t=h.render();t&&"function"==typeof t.then?t.then(()=>{"function"==typeof n&&n(null)},t=>{"function"==typeof n&&n(t)}):"function"==typeof n&&n(null)}catch(t){this.log&&this.log.error("[Pict-Input-RichText] editor.render threw",{error:t.message}),"function"==typeof n&&n(t)}}_destroyEdit(t){let e=this._instances[t.Hash];if(!e||!e.viewInstance)return;let i=e.viewInstance;try{"function"==typeof i.destroy&&i.destroy()}catch(t){this.log&&this.log.warn("[Pict-Input-RichText] editor.destroy threw",{error:t.message})}if(this.pict.AppData._PictInputRichText&&this.pict.AppData._PictInputRichText[t.Hash]&&delete this.pict.AppData._PictInputRichText[t.Hash],e.viewHash&&this.pict.views&&this.pict.views[e.viewHash])try{delete this.pict.views[e.viewHash]}catch(t){}e.viewInstance=null,e.viewHash=null}getMode(t){let e=this._instances[t];return e?e.mode:null}setMode(t,e,i){let n=this._instances[t];if(!n){let e=new Error("Cannot setMode — input is not mounted: "+t);return void("function"==typeof i&&i(e))}if("edit"!==e&&"view"!==e){let t=new Error('setMode: unknown mode "'+e+'" (use "edit" or "view")');return void("function"==typeof i&&i(t))}n.mode!==e?"edit"!==e?(this._destroyEdit(n.input),this._mountView(null,n.input,n.lastValue),"function"==typeof i&&i(null)):this._mountEdit(null,n.input,n.lastValue,i):"function"==typeof i&&i(null)}toggleMode(t,e){let i="edit"===this.getMode(t)?"view":"edit";this.setMode(t,i,e)}commit(t,e){let i=this._instances[t];i&&"edit"===i.mode&&i.viewInstance,"function"==typeof e&&e(null)}onInputInitialize(t,e,i,n,r,o,a){return this._mountView(t,n,r),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){let s=new Error("RichText InputType is not supported inside Tabular rows in Phase 1.");throw this.log&&this.log.warn("[Pict-Input-RichText] tabular not supported",{inputHash:i&&i.Hash}),s}onDataMarshalToForm(t,e,i,n,r,o,a){let s=this._instances[n.Hash];if(s){if("view"===s.mode)this._mountView(t,n,r);else if(s.lastValue="string"==typeof r?r:s.lastValue,this.pict.AppData._PictInputRichText&&this.pict.AppData._PictInputRichText[n.Hash]&&(this.pict.AppData._PictInputRichText[n.Hash].Segments=[{Content:s.lastValue}],s.viewInstance&&"function"==typeof s.viewInstance.render))try{s.viewInstance.render()}catch(t){this.log&&this.log.warn("[Pict-Input-RichText] re-render after marshal threw",{error:t.message})}}else this._mountView(t,n,r);return super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}},e.exports.default_configuration=s},{"../Pict-Provider-InputExtension.js":52,"./Pict-Provider-Input-RichText-CSS.js":69,marked:4,"pict-section-markdowneditor":28}],71:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getSelectInputHTMLID(t){return"#SELECT-FOR-".concat(t)}getTabularSelectInputID(t,e){return"#SELECT-TABULAR-DATA-".concat(t,"-").concat(e)}getTabularSelectDropdownID(t,e){return"#SELECT-TABULAR-DROPDOWN-".concat(t,"-").concat(e)}refreshSelectList(t,e,i,n,r,o){var a;let s=this.pict.ContentAssignment.getElement(this.getSelectInputHTMLID(n.Macro.RawHTMLID)),c=null===(a=n.PictForm)||void 0===a?void 0:a.SelectOptions;if(n.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(n.PictForm.SelectOptionsPickList)&&(c=this.pict.providers.DynamicMetaLists.getList(n.PictForm.SelectOptionsPickList)),!s||s.length<1)return!1;if(c=this.pict.providers.ListDistilling.filterList(t,n,c),s=s[0],s.innerHTML="",s&&c&&Array.isArray(c))for(let t=0;t<c.length;t++){let e=document.createElement("option");e.value=c[t].id,e.text=c[t].text,s.appendChild(e)}}refreshSelectListTabular(t,e,i,n,r,o,a){var s;let c=this.pict.ContentAssignment.getElement(this.getTabularSelectDropdownID(n.Macro.RawHTMLID,a)),l=null===(s=n.PictForm)||void 0===s?void 0:s.SelectOptions;if(n.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(n.PictForm.SelectOptionsPickList)&&(l=this.pict.providers.DynamicMetaLists.getList(n.PictForm.SelectOptionsPickList)),l=this.pict.providers.ListDistilling.filterList(t,n,l),Array.isArray(c)&&!(c.length<1)&&(c=c[0],c.innerHTML="",c&&l&&Array.isArray(l)))for(let t=0;t<l.length;t++){let e=document.createElement("option");e.value=l[t].id,e.text=l[t].text,c.appendChild(e)}}onInputInitialize(t,e,i,n,r,o,a){return this.refreshSelectList(t,e,i,n,r,o),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this.refreshSelectListTabular(t,e,t.getRow(i.PictForm.GroupIndex,o),i,n,r,o),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return super.onDataChange(t,e,i,n,r)}onDataChangeTabular(t,e,i,n,r,o){return super.onDataChangeTabular(t,e,i,n,r,o)}onDataMarshalToForm(t,e,i,n,r,o,a){const s=this.pict.ContentAssignment.getElement(this.getSelectInputHTMLID(n.Macro.RawHTMLID));if(!s||s.length<1)return!1;const c=s[0];if(!(c instanceof HTMLSelectElement))return!1;let l=!1;for(let t=0;t<c.options.length;t++)if(c.options[t].value===r){c.selectedIndex=t,l=!0;break}return l||(c.selectedIndex=-1),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){const s=this.pict.ContentAssignment.getElement(this.getTabularSelectDropdownID(i.Macro.RawHTMLID,o));if(!s||s.length<1)return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a);const c=s[0];if(!(c instanceof HTMLSelectElement))return super.onDataMarshalToFormTabular(t,e,i,n,r,o,a);let l=!1;for(let t=0;t<c.options.length;t++)if(c.options[t].value===n){c.selectedIndex=t,l=!0;break}return l||(c.selectedIndex=-1),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onDataRequest(t,e,i,n){let r=this.pict.ContentAssignment.readContent(this.getSelectInputHTMLID(e.Macro.RawHTMLID));return this.pict.ContentAssignment.assignContent(n,r),t.dataChanged(e.Hash),super.onDataRequest(t,e,r,n)}onDataRequestTabular(t,e,i,n,r){let o=this.pict.ContentAssignment.readContent(this.getTabularSelectDropdownID(e.Macro.RawHTMLID,r));return this.pict.ContentAssignment.assignContent(this.getTabularSelectInputID(e.Macro.RawHTMLID,r),o),t.dataChangedTabular(e.PictForm.GroupIndex,e.PictForm.InputIndex,r),super.onDataRequestTabular(t,e,i,n,r)}}},{"../Pict-Provider-InputExtension.js":52}],72:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.cssHideClass="pict-tab-group-hidden",this.cssSelectedTabClass="pict-tab-group-selectedtab",this.cssSnippet=".pict-tab-group-hidden { display: none; } .pict-tab-group-selectedtab { font-weight: bold; }",this.setCSSSnippets()}setCSSSnippets(t,e){this.cssHideClass=t||this.cssHideClass,this.cssSnippet=e||this.cssSnippet,this.pict.CSSMap.addCSS("Pict-Section-Form-Input-Group-TabSelector",this.cssSnippet,1001,"Pict-Input-TabSelector"),this.pict.CSSMap.injectCSS()}getTabSelector(t,e,i){return"#TAB-".concat(i,"-").concat(e.Macro.RawHTMLID)}getGroupSelector(t,e){return"#GROUP-".concat(t.formID,"-").concat(e)}selectTabByViewHash(t,e,i){var n;let r=this.pict.views[t];if(!r)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the view did not exist!")),!1;let o=r.getInputFromHash(e);if(!o)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not exist!")),!1;if(null==o||null===(n=o.PictForm)||void 0===n||!n.TabGroupSet||!Array.isArray(o.PictForm.TabGroupSet))return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not have a valid TabGroupSet array in the PictForm object!")),!1;for(let t=0;t<o.PictForm.TabGroupSet.length;t++){let e=o.PictForm.TabGroupSet[t];e!=i?(this.pict.ContentAssignment.addClass(this.getGroupSelector(r,e),this.cssHideClass),this.pict.ContentAssignment.removeClass(this.getTabSelector(r,o,e),this.cssSelectedTabClass)):(this.pict.ContentAssignment.removeClass(this.getGroupSelector(r,e),this.cssHideClass),this.pict.ContentAssignment.addClass(this.getTabSelector(r,o,e),this.cssSelectedTabClass))}return r.setDataByInput(o,i),!0}getTabSelectorInputHTMLID(t){return"#TAB-SELECT-FOR-".concat(t)}onInputInitialize(t,e,i,n,r,o,a){var s,c,l,p;let d=null===(s=n.PictForm)||void 0===s?void 0:s.TabGroupSet;if(!d||!Array.isArray(d)||d.length<1)return this.pict.log.error("TabSelector input provider tried to initialize Tab Group Set for HTML ID [".concat(n.Macro.RawHTMLID,"] but there were no valid entries in the tmpInput.PictForm.TabGroupSet array!")),!1;let u=this.pict.providers.DynamicInput.getInputTemplateHash(t,{PictForm:{InputType:"TabGroupSelector-TabElement",DataType:"String"}}),h="",m=(null===(c=n.PictForm)||void 0===c?void 0:c.TabGroupNames)||[];for(let e=0;e<d.length;e++)h+=this.pict.parseTemplateByHash(u,n,null,[t,{TabGroupHash:d[e],TabGroupName:m[e]||d[e]}]);this.pict.ContentAssignment.projectContent("replace",this.getTabSelectorInputHTMLID(n.Macro.RawHTMLID),h,"FixTheTypescriptTypes");const g=!1!==(null===(l=n.PictForm)||void 0===l?void 0:l.DefaultFromData)&&r||(null===(p=n.PictForm)||void 0===p?void 0:p.DefaultTabGroupHash)||d[0];return this.selectTabByViewHash(t.Hash,n.Hash,g),super.onInputInitialize(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],73:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.cssHideClass="pict-tab-section-hidden",this.cssSelectedTabClass="pict-tab-section-selectedtab",this.cssSnippet=".pict-tab-section-hidden { display: none; } .pict-tab-section-selectedtab { font-weight: bold; }",this.setCSSSnippets()}setCSSSnippets(t,e){this.cssHideClass=t||this.cssHideClass,this.cssSnippet=e||this.cssSnippet,this.pict.CSSMap.addCSS("Pict-Section-Form-Input-Section-TabSelector",this.cssSnippet,1001,"Pict-Input-TabSelector")}getViewHash(t){return"PictSectionForm-".concat(t)}getTabSelector(t,e){return"#TAB-".concat(t,"-").concat(e.Macro.RawHTMLID)}getSectionSelector(t){const e=this.pict.views.PictFormMetacontroller;return"#Pict-".concat(e?e.UUID:this.UUID,"-").concat(t,"-Wrap")}selectTabByViewHash(t,e,i){var n;let r=this.pict.views[t];if(!r)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the view did not exist!")),!1;let o=r.getInputFromHash(e);if(!o)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not exist!")),!1;if(null==o||null===(n=o.PictForm)||void 0===n||!n.TabSectionSet||!Array.isArray(o.PictForm.TabSectionSet))return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the input did not have a valid TabSectionSet array in the PictForm object!")),!1;if(!this.pict.views[this.getViewHash(i)])return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(i,"] but the tab view did not exist!")),!1;for(let t=0;t<o.PictForm.TabSectionSet.length;t++){let e=o.PictForm.TabSectionSet[t];e!=i?(this.pict.ContentAssignment.addClass(this.getSectionSelector(e),this.cssHideClass),this.pict.ContentAssignment.removeClass(this.getTabSelector(e,o),this.cssSelectedTabClass)):(this.pict.ContentAssignment.removeClass(this.getSectionSelector(e),this.cssHideClass),this.pict.ContentAssignment.addClass(this.getTabSelector(e,o),this.cssSelectedTabClass))}return r.setDataByInput(o,i),!0}getTabSelectorInputHTMLID(t){return"#TAB-SELECT-FOR-".concat(t)}onInputInitialize(t,e,i,n,r,o,a){var s,c,l,p;let d=null===(s=n.PictForm)||void 0===s?void 0:s.TabSectionSet;if(!d||!Array.isArray(d)||d.length<1)return this.pict.log.error("TabSelector input provider tried to initialize Tab Group Set for HTML ID [".concat(n.Macro.RawHTMLID,"] but there were no valid entries in the tmpInput.PictForm.TabSectionSet array!")),!1;let u=this.pict.providers.DynamicInput.getInputTemplateHash(t,{PictForm:{InputType:"TabSectionSelector-TabElement",DataType:"String"}}),h="",m=(null===(c=n.PictForm)||void 0===c?void 0:c.TabSectionNames)||[];for(let e=0;e<d.length;e++)h+=this.pict.parseTemplateByHash(u,n,null,[t,{TabSectionHash:d[e],TabSectionName:m[e]||d[e]}]);this.pict.ContentAssignment.projectContent("replace",this.getTabSelectorInputHTMLID(n.Macro.RawHTMLID),h,"FixTheTypescriptTypes");const g=!1!==(null===(l=n.PictForm)||void 0===l?void 0:l.DefaultFromData)&&r||(null===(p=n.PictForm)||void 0===p?void 0:p.DefaultTabSectionHash)||d[0];return this.selectTabByViewHash(t.Hash,n.Hash,g),super.onInputInitialize(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],74:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.pict,this.log}getTriggerGroupConfigurationArray(t){let e=t.PictForm.TabularTriggerGroup;return e?(Array.isArray(e)||(e=[e]),e):[]}ensureRowCache(t,e){return this.pict.AppData._TabularTriggerCache||(this.pict.AppData._TabularTriggerCache={}),this.pict.AppData._TabularTriggerCache[t]||(this.pict.AppData._TabularTriggerCache[t]={}),this.pict.AppData._TabularTriggerCache[t][e]||(this.pict.AppData._TabularTriggerCache[t][e]={}),this.pict.AppData._TabularTriggerCache[t][e]}gatherEntitySet(t,e,i,n,r,o,a){if(!e.Entity||"string"!=typeof e.Entity)return this.log.warn("TabularTriggerGroup failed to parse entity request: missing Entity string."),t();if(!e.Filter||"string"!=typeof e.Filter)return this.log.warn("TabularTriggerGroup failed to parse entity request: missing Filter string."),t();if(!e.Destination||"string"!=typeof e.Destination)return this.log.warn("TabularTriggerGroup failed to parse entity request: missing Destination string."),t();let s={Value:r,Input:n,View:i},c=this.pict.parseTemplate(e.Filter,s);""===c&&this.log.warn("TabularTriggerGroup: entity Filter did not return a string for FilterBy");let l=null,p=null;e.RecordCount&&(l=null!=e.RecordStartCursor?e.RecordStartCursor:0,p=null!=e.RecordCount?e.RecordCount:null);let d=(i,n)=>{if(i)return this.log.error("TabularTriggerGroup error getting entity set for [".concat(e.Entity,"] row ").concat(o,": ").concat(i),i),t(i);this.log.trace("TabularTriggerGroup found ".concat(n.length," records for ").concat(e.Entity," row ").concat(o));let r=this.ensureRowCache(a,o);return e.SingleRecord?n.length<1?this.pict.manifest.setValueByHash(r,e.Destination,!1):this.pict.manifest.setValueByHash(r,e.Destination,n[0]):this.pict.manifest.setValueByHash(r,e.Destination,n),t()};p?this.pict.EntityProvider.getEntitySetPage(e.Entity,c,l,p,d):this.pict.EntityProvider.getEntitySet(e.Entity,c,d)}gatherCustomDataSet(t,e,i,n,r,o,a){if(!e.URL||"string"!=typeof e.URL)return this.log.warn("TabularTriggerGroup failed to parse custom request: missing URL string."),t();let s={Value:r,Input:n,View:i},c=this.pict.parseTemplate(e.URL,s),l="",p=!!e.Host&&e.Host,d=e.Protocol?e.Protocol:"https",u=!!e.Port&&e.Port;p?(l="".concat(d,"://").concat(p),u&&(l+=":".concat(u))):l=this.pict.EntityProvider.options.urlPrefix;let h={url:"".concat(l).concat(c)};return h=this.pict.EntityProvider.prepareRequestOptions(h),this.pict.EntityProvider.restClient.getJSON(h,(i,n,r)=>{if(i)return this.log.error("TabularTriggerGroup error getting custom data for row ".concat(o,": ").concat(i),i),t(i);if(e.Destination){let t=this.ensureRowCache(a,o);this.pict.manifest.setValueByHash(t,e.Destination,r)}return t()})}async gatherDataForRow(t,e,i,n,r,o,a){if(!Array.isArray(o.EntitiesBundle)||o.EntitiesBundle.length<1)return this.log.warn("TabularTriggerGroup: no EntitiesBundle array found for triggering input [".concat(e.Hash,"] row ").concat(r)),null;let s=o.TriggerGroupHash,c="TabularBundleLoad-".concat(this.pict.getUUID());a&&t.registerEventTransactionAsyncOperation(a,c);let l=this.fable.newAnticipate();for(let n=0;n<o.EntitiesBundle.length;n++){let a=o.EntitiesBundle[n];l.anticipate(n=>{try{return"Custom"===a.Type?this.gatherCustomDataSet(n,a,t,e,i,r,s):this.gatherEntitySet(n,a,t,e,i,r,s)}catch(t){this.log.error("TabularTriggerGroup error gathering entity set for row ".concat(r,": ").concat(t),t)}return n()})}return l.anticipate(t=>setTimeout(t,0)),l.anticipate(i=>{this.pict.views.PictFormMetacontroller&&this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TabularTriggerGroup:".concat(s,":DataChange:").concat(e.Hash||e.DataAddress,":").concat(r,":").concat(this.pict.getUUID()),a),o.PostSolvers&&Array.isArray(o.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,o.PostSolvers,"TabularTriggerGroup hash ".concat(s," row ").concat(r," post-trigger")),i()}),new Promise((e,i)=>{l.wait(i=>(i&&this.log.error("TabularTriggerGroup error gathering data for row ".concat(r,": ").concat(i),i),a&&t.eventTransactionAsyncOperationComplete(a,c),e(i)))})}autoFillFromRowCache(t,e,i,n,r){if(!i.TriggerGroupHash||"string"!=typeof i.TriggerGroupHash)return this.log.warn("TabularTriggerGroup failed to autofill: missing TriggerGroupHash string."),!1;if(!i.TriggerAddress||"string"!=typeof i.TriggerAddress)return this.log.warn("TabularTriggerGroup failed to autofill: missing TriggerAddress string."),!1;let o=this.ensureRowCache(i.TriggerGroupHash,r),a=this.pict.manifest.getValueByHash(o,i.TriggerAddress);return!(!a&&!i.MarshalEmptyValues)&&(t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,r,a),t.manualMarshalTabularDataToViewByInput(e,r),!0)}onDataChangeTabular(t,e,i,n,r,o){let a=this.getTriggerGroupConfigurationArray(e);for(let s=0;s<a.length;s++){let c=a[s];c.TriggerAllInputs&&(c.PreSolvers&&Array.isArray(c.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,c.PreSolvers,"TabularTriggerGroup hash ".concat(c.TriggerGroupHash," row ").concat(r," pre-trigger")),this.gatherDataForRow(t,e,i,n,r,c,o))}return super.onDataChangeTabular(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){let s=("string"==typeof o?o:"").split(":"),c=s[0],l=s[1],p=(s[2],s[3]),d=parseInt(s[4],10);if("TabularTriggerGroup"!==c)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);if((e.Hash||e.DataAddress)===p)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);if(r!==d)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);let u=this.getTriggerGroupConfigurationArray(e);for(let o=0;o<u.length;o++){let a=u[o];if(a.TriggerGroupHash===l&&(a.TriggerAddress&&this.autoFillFromRowCache(t,e,a,n,r),a.SelectOptionsRefresh)){let t=this.pict.views[e.PictForm.ViewHash];t&&e.PictForm.SelectOptionsPickList&&(this.pict.providers.DynamicMetaLists.rebuildListByHash(e.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectListTabular(t,t.getGroup(e.PictForm.GroupIndex),t.getRow(e.PictForm.GroupIndex,e.PictForm.Row),e,i,n,r),t.manualMarshalTabularDataToViewByInput(e,r))}}return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}onDataChange(t,e,i,n,r){return super.onDataChange(t,e,i,n,r)}onAfterEventCompletion(t,e,i,n,r,o){return super.onAfterEventCompletion(t,e,i,n,r,o)}},e.exports.default_configuration={ProviderIdentifier:"Pict-Input-TabularTriggerGroup",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1}},{"../Pict-Provider-InputExtension.js":52}],75:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}handleContentUpdate(t,e,i,n){let r="";i&&"string"==typeof i&&(r=i);e.PictForm&&e.PictForm.Template&&"string"==typeof e.PictForm.Template&&(r=this.pict.parseTemplate(e.PictForm.Template,Object.assign({},this.pict,{Data:t.getMarshalDestinationObject()}),null,[this],this)),!r&&e.Default&&"string"==typeof e.Default&&(r=e.Default),null!=n?t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,n,r):t.setDataByInput(e,r)}onInputInitialize(t,e,i,n,r,o,a){return this._handleInitialize(t,e,i,n,r,o,null,a),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this._handleInitialize(t,e,null,i,n,r,o,a),super.onInputInitializeTabular(t,e,i,n,r,o,a)}_handleInitialize(t,e,i,n,r,o,a,s){if(n.PictForm&&n.PictForm.Templates&&"object"==typeof n.PictForm.Templates&&!Array.isArray(n.PictForm.Templates))for(const t of Object.entries(n.PictForm.Templates)){var c=_slicedToArray(t,2);const e=c[0],i=c[1];this.pict.TemplateProvider.templates[e]?this.pict.log.error("[Pict-Input-Templated] Attempt to override template with hash: ".concat(e,"; skipping.")):this.pict.TemplateProvider.addTemplate(e,i,"Templated Input hash: ".concat(n.Hash))}this.handleContentUpdate(t,n,r)}onDataMarshalToForm(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),r),super.onDataMarshalToForm(t,e,i,n,r,o,a)}onDataMarshalToFormTabular(t,e,i,n,r,o,a){return this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),n),super.onDataMarshalToFormTabular(t,e,i,n,r,o,a)}onAfterEventCompletion(t,e,i,n,r,o){var a,s;let c=_slicedToArray(("string"==typeof r?r:"").split(":"),2),l=c[0],p=c[1];if("TriggerGroup"!==l)return super.onAfterEventCompletion(t,e,i,n,r,o);const d=Array.isArray(null===(a=e.PictForm)||void 0===a?void 0:a.TriggerGroupHash)?e.PictForm.TriggerGroupHash:[null===(s=e.PictForm)||void 0===s?void 0:s.TriggerGroupHash];return e.PictForm&&e.PictForm.TriggerGroupHash&&d.includes(p)?(this.handleContentUpdate(t,e,i),t.manualMarshalDataToViewByInput(e,o),super.onAfterEventCompletion(t,e,i,n,r,o)):super.onAfterEventCompletion(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){var s,c;let l=_slicedToArray(("string"==typeof o?o:"").split(":"),2),p=l[0],d=l[1];if("TriggerGroup"!==p)return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);const u=Array.isArray(null===(s=e.PictForm)||void 0===s?void 0:s.TriggerGroupHash)?e.PictForm.TriggerGroupHash:[null===(c=e.PictForm)||void 0===c?void 0:c.TriggerGroupHash];return e.PictForm&&e.PictForm.TriggerGroupHash&&u.includes(d)?(this.handleContentUpdate(t,e,i,r),t.manualMarshalTabularDataToViewByInput(e,r,a),super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)):super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52}],76:[function(t,e,i){const n=t("../Pict-Provider-InputExtension.js");t("marked");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}getContentDisplayHTMLID(t){return"#DISPLAY-FOR-".concat(t)}getTabularContentDisplayInputID(t,e){return"#".concat(t,"-").concat(e)}assignDisplayEntityData(t,e,i){let n="string"==typeof e.PictForm.TemplatedEntityLookup.Template?e.PictForm.TemplatedEntityLookup.Template:"",r="";if("object"!=typeof e)return void this.log.error("Error in assignDisplayEntityData: pInput is not an object");if(!("PictForm"in e))return void this.log.error("Error in assignDisplayEntityData: pInput.PictForm is not an object");if(!("TemplatedEntityLookup"in e.PictForm))return void this.log.error("Error in assignDisplayEntityData: pInput.PictForm.TemplatedEntityLookup is not in the PictForm object");if(!Array.isArray(e.PictForm.TemplatedEntityLookup.EntitiesBundle))return void this.log.error("Error in assignDisplayEntityData: pInput.PictForm.TemplatedEntityLookup.EntitiesBundle is not an array");const o=this.fable.newAnticipate();o.anticipate(function(t){this.pict.EntityProvider.gatherDataFromServer(e.PictForm.TemplatedEntityLookup.EntitiesBundle,e=>{setTimeout(()=>t(e),0)})}.bind(this)),o.anticipate(function(t){this.pict.parseTemplate(n,{Value:i},function(e,i){if(!e)return r=i,t();this.log.error("Error rendering template in assignDisplayEntityData",e)}.bind(this))}.bind(this)),o.wait(function(e){e?this.log.error("Error in assignDisplayEntityData",e):this.pict.ContentAssignment.assignContent(t,r)}.bind(this))}onInputInitialize(t,e,i,n,r,o,a){return this.assignDisplayEntityData(this.getContentDisplayHTMLID(n.Macro.RawHTMLID),n,r),super.onInputInitialize(t,e,i,n,r,o,a)}onInputInitializeTabular(t,e,i,n,r,o,a){return this.assignDisplayEntityData(this.getTabularContentDisplayInputID(i.Macro.RawHTMLID,o),i,n),super.onInputInitializeTabular(t,e,i,n,r,o,a)}onAfterEventCompletion(t,e,i,n,r,o){let a=_slicedToArray(("string"==typeof r?r:"").split(":"),5),s=(a[0],a[1]),c=(a[2],a[3],a[4]);if(c||(c=this.pict.getUUID()),!e.PictForm.TemplatedEntityLookup||!("TriggerGroupHash"in e.PictForm.TemplatedEntityLookup))return super.onAfterEventCompletion(t,e,i,n,r,o);let l=[e.PictForm.TemplatedEntityLookup];for(let t=0;t<l.length;t++){l[t].TriggerGroupHash===s&&this.assignDisplayEntityData(this.getContentDisplayHTMLID(e.Macro.RawHTMLID),e,i)}return super.onAfterEventCompletion(t,e,i,n,r,o)}onAfterEventTabularCompletion(t,e,i,n,r,o,a){let s=_slicedToArray(("string"==typeof o?o:"").split(":"),5),c=(s[0],s[1]),l=(s[2],s[3],s[4]);if(l||(l=this.pict.getUUID()),!e.PictForm.TemplatedEntityLookup||!("TriggerGroupHash"in e.PictForm.TemplatedEntityLookup))return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a);let p=[e.PictForm.TemplatedEntityLookup];for(const t of p)t.TriggerGroupHash===c&&this.assignDisplayEntityData(this.getTabularContentDisplayInputID(e.Macro.RawHTMLID,r),e,i);return super.onAfterEventTabularCompletion(t,e,i,n,r,o,a)}}},{"../Pict-Provider-InputExtension.js":52,marked:4}],77:[function(t,e,i){const n=["ink","paper","accent","highlight","deemphasis","link"],r={ink:"#1B1F23",paper:"#FDFCF7",accent:"#E66C2C",highlight:"#FFD966",deemphasis:"#A0A0A0",link:"#2E7D74"};function o(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}e.exports={themeifySVG:function(t,e){if("string"!=typeof t)return t;let i=r;e&&"object"==typeof e&&(i=e.Palette||e);let a=t.match(/<metadata[\s\S]*?<\/metadata>/i),s=a?a[0]:"",c=" PICT-SECTION-EXCALIDRAW-METADATA ",l=s?t.replace(s,c):t;for(let t=0;t<n.length;t++){let e=n[t],r=i[e];if("string"!=typeof r||!/^#[0-9a-fA-F]{6}$/.test(r))continue;let a=new RegExp('(stroke|fill)(="|:\\s*)('+o(r)+')(?=["\\s;)])',"gi");l=l.replace(a,(t,i,n,r)=>i+n+"var(--diagram-"+e+", "+r+")")}return s?l.replace(c,s):l},paletteTokens:n,defaultPalette:r}},{}],78:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){let i=this.pict.providers.MetatemplateGenerator,n="";return n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+="No really... this is a chart.",n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}}},{"../Pict-Provider-DynamicLayout.js":45}],79:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){for(let t=0;t<e.Rows.length;t++){let i=e.Rows[t];for(let n=0;n<i.Inputs.length;n++){let r=i.Inputs[n];r.PictForm.InputIndex=n,r.PictForm.GroupIndex=e.GroupIndex,r.PictForm.RowIndex=t}}const i=e.CustomLayoutTemplateHash;if(i){const t=this.pict.TemplateProvider.getTemplate(i);if(t)return t;this.log.warn("Custom layout template not found for hash: ".concat(i))}return e.CustomLayoutTemplate||""}}},{"../Pict-Provider-DynamicLayout.js":45}],80:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){let i=this.pict.providers.MetatemplateGenerator,n="";"Rows"in e||(e.Rows=[]),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let r=0;r<e.Rows.length;r++){let o=e.Rows[r];o.WidthTotalRaw=0,n+=i.getMetatemplateTemplateReference(t,"-Template-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let t=0;t<o.Inputs.length;t++){let i=o.Inputs[t];i.PictForm.InputIndex=t,i.PictForm.GroupIndex=e.GroupIndex,i.PictForm.RowIndex=r;let n=1;try{n=Math.abs(parseFloat(i.PictForm.Width))}catch(t){n=1}(!n||isNaN(n)||n<=0)&&(n=1),i.PictForm.RawWidth=n,o.WidthTotalRaw+=n}let a=95;if("WidthQuantization"in e)try{a=Math.abs(parseInt(e.WidthQuantization)),(!a||isNaN(a)||a<=0)&&(a=95)}catch(t){a=95}else"WidthQuantization"in this.pict.PictApplication.options&&(a=this.pict.PictApplication.options.WidthQuantization);for(let s=0;s<o.Inputs.length;s++){let c=o.Inputs[s];c.PictForm.QuantizedWidth=Math.round(c.PictForm.RawWidth/o.WidthTotalRaw*a),n+=i.getInputMetatemplateTemplateReference(t,c.DataType,c.PictForm.InputType,'getInput("'.concat(e.GroupIndex,'","').concat(r,'","').concat(s,'")'))}n+=i.getMetatemplateTemplateReference(t,"-Template-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}return n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}}},{"../Pict-Provider-DynamicLayout.js":45}],81:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){if(!e.supportingManifest)return this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] error generating tabular metatemplate: missing group manifest ").concat(e.RecordManifest," from supportingManifests.")),"";let i=this.pict.providers.MetatemplateGenerator,n="",r="";n+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));let o=0;for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementAddresses[t],n=e.supportingManifest.elementDescriptors[i];"PictForm"in n||(n.PictForm={}),n.PictForm.TabularHidden||(n.PictForm.InputIndex=t,n.PictForm.GroupIndex=e.GroupIndex,n.PictForm.Row&&(n.PictForm.RowIndex=n.PictForm.Row,n.PictForm.RowIndex>o&&(o=n.PictForm.RowIndex)))}for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementAddresses[t],n=e.supportingManifest.elementDescriptors[i];"PictForm"in n||(n.PictForm={}),n.PictForm.TabularHidden||(n.PictForm.RowIndex||(n.PictForm.RowIndex=o+1))}for(let n=0;n<o+1;n++){r+=i.getMetatemplateTemplateReference(t,"-Template-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let o=0;o<e.supportingManifest.elementAddresses.length;o++){let a=e.supportingManifest.elementAddresses[o],s=e.supportingManifest.elementDescriptors[a];if(!s.PictForm.TabularHidden&&s.PictForm.RowIndex==n){r+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Cell-Prefix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'));let n="PictForm"in s&&s.PictForm.InputType?s.PictForm.InputType:"Default";r+=i.getTabularInputMetatemplateTemplateReference(t,s.DataType,n,'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'),e.GroupIndex,o),r+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Cell-Postfix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'))}}r+=i.getMetatemplateTemplateReference(t,"-Template-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}let a="";return a+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),a+=i.getMetatemplateTemplateReferenceRaw(t,"-RecordSetTemplate-Row-ExtraPrefix","Record"),a+="\n\n{~T:".concat(e.SectionTabularRowTemplateHash,":Record~}\n"),a+=i.getMetatemplateTemplateReferenceRaw(t,"-RecordSetTemplate-Row-ExtraPostfix","Record"),a+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+="\n\n{~MTVS:".concat(e.SectionTabularRowVirtualTemplateHash,":").concat(e.GroupIndex,":").concat(t.getMarshalDestinationAddress(),".").concat(e.RecordSetAddress,"~}\n"),n+=i.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowVirtualTemplateHash,a),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowTemplateHash,r),n}}},{"../Pict-Provider-DynamicLayout.js":45}],82:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.pict&&this.pict.providers&&this.pict.providers.Icon&&"function"==typeof this.pict.providers.Icon.registerSet&&this.pict.providers.Icon.registerSet({Outline:{Sort:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 20V5"/><path d="M5.5 8.5L9 5L12.5 8.5"/><path d="M15 4V19"/><path d="M11.5 15.5L15 19L18.5 15.5"/></svg>',SortAscending:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20V5"/><path d="M6 11L12 5L18 11"/></svg>',SortDescending:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4V19"/><path d="M6 13L12 19L18 13"/></svg>'}}),this.pict&&this.pict.CSSMap&&"function"==typeof this.pict.CSSMap.addCSS&&(this.pict.CSSMap.addCSS("Pict-Layout-Tabular-Sort-CSS",".pict-tabular-sort-control { cursor: pointer; display: inline-flex; vertical-align: middle; margin-left: 0.3em; opacity: 0.4; } .pict-tabular-sort-control:hover { opacity: 0.75; } .pict-tabular-sort-control.pict-tabular-sort-asc, .pict-tabular-sort-control.pict-tabular-sort-desc { opacity: 1; }",500),this.pict.CSSMap.addCSS("Pict-Layout-Tabular-ColumnChooser-CSS","\n\t.pict-tabular-colchooser-bar { display: flex; justify-content: flex-end; margin: 0 0 0.35rem; }\n\t.pict-tabular-colchooser-trigger { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; font: inherit; font-size: 0.88rem;\n\t\tpadding: 0.3rem 0.65rem; border: 1px solid var(--theme-color-border-default, #d7dce3); border-radius: 7px;\n\t\tbackground: var(--theme-color-background-panel, #fff); color: var(--theme-color-text-secondary, #45505f); }\n\t.pict-tabular-colchooser-trigger:hover { background: var(--theme-color-background-tertiary, #eceef2); color: var(--theme-color-text-primary, #1f2733); }\n\t.pict-tabular-colchooser-count { font-size: 0.8em; color: var(--theme-color-text-muted, #6b7686); }\n\t.pict-tabular-colchooser-pop { position: fixed; z-index: 30; min-width: 220px; max-width: 320px; display: none; }\n\t.pict-tabular-colchooser-pop.open { display: block; }\n\t.pict-tabular-colchooser-backdrop { position: fixed; inset: 0; z-index: 0; }\n\t.pict-tabular-colchooser-panel { position: relative; z-index: 1; display: flex; flex-direction: column; max-height: min(70vh, 420px);\n\t\tbackground: var(--theme-color-background-panel, #fff); border: 1px solid var(--theme-color-border-default, #d7dce3);\n\t\tborder-radius: 10px; box-shadow: 0 10px 28px rgba(17, 24, 39, 0.14); overflow: hidden; }\n\t.pict-tabular-colchooser-list { flex: 1 1 auto; overflow-y: auto; padding: 0.25rem 0; }\n\t.pict-tabular-colchooser-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; cursor: pointer;\n\t\tpadding: 0.32rem 0.8rem; color: var(--theme-color-text-primary, #1f2733); }\n\t.pict-tabular-colchooser-row:hover { background: var(--theme-color-background-tertiary, #eceef2); }\n\t.pict-tabular-colchooser-row input { flex: 0 0 auto; margin: 0; cursor: pointer; }\n\t.pict-tabular-colchooser-footer { flex: 0 0 auto; display: flex; justify-content: flex-end; padding: 0.45rem 0.7rem; border-top: 1px solid var(--theme-color-border-light, #e8ebf0); }\n\t.pict-tabular-colchooser-reset { font: inherit; font-size: 0.84rem; cursor: pointer; border: none; background: transparent; color: var(--theme-color-text-muted, #6b7686); padding: 0.15rem 0.3rem; border-radius: 5px; }\n\t.pict-tabular-colchooser-reset:hover { color: var(--theme-color-text-primary, #1f2733); background: var(--theme-color-background-tertiary, #eceef2); }\n",500))}_buildSortableHeaderCell(t,e,i,n){let r=e._SortState||{ColumnIndex:-1,Direction:"none"},o=r.ColumnIndex===n&&"none"!==r.Direction,a="Sort",s="pict-tabular-sort-none";o&&"asc"===r.Direction?(a="SortAscending",s="pict-tabular-sort-asc"):o&&"desc"===r.Direction&&(a="SortDescending",s="pict-tabular-sort-desc");let c="function"==typeof this.pict.icon?this.pict.icon(a):"",l=this._escapeHTML(i&&null!=i.Name?String(i.Name):"");return'\n\t\t\t\t\t\t<th data-tabular-column-index="'.concat(n,'">').concat(l," ")+'<span class="pict-tabular-sort-control '.concat(s,'" ')+"onclick=\"_Pict.providers['Pict-Layout-Tabular'].sortTabularColumn('".concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(n,')">')+"".concat(c,"</span></th>\n")}_getTabularCellValue(t,e,i){if(!e||!i||!t.supportingManifest)return;let n=e.PictForm&&"string"==typeof e.PictForm.InformaryDataAddress&&e.PictForm.InformaryDataAddress.length>0?e.PictForm.InformaryDataAddress:e.Hash;try{return t.supportingManifest.getValueByHash(i,n)}catch(t){return}}_compareTabularValues(t,e){let i=null==t?"":t,n=null==e?"":e,r=Number(i),o=Number(n);return""===i||""===n||isNaN(r)||isNaN(o)?String(i).localeCompare(String(n)):r<o?-1:r>o?1:0}sortTabularColumn(t,e,i){let n=this.pict.views[t];if(!n||!n.sectionDefinition||!Array.isArray(n.sectionDefinition.Groups))return!1;let r=n.sectionDefinition.Groups[Number(e)];if(!r||!0!==r.ColumnSorting)return!1;let o=Number(i);if(isNaN(o)||o<0)return!1;r._SortState||(r._SortState={ColumnIndex:-1,Direction:"none"}),r._SortState.ColumnIndex===o&&"asc"===r._SortState.Direction?r._SortState.Direction="desc":(r._SortState.ColumnIndex=o,r._SortState.Direction="asc");let a=null;if(r.supportingManifest&&Array.isArray(r.supportingManifest.elementAddresses)){let t=r.supportingManifest.elementAddresses[o];a=r.supportingManifest.elementDescriptors[t]}let s=n.sectionManifest.getValueByHash(n.getMarshalDestinationObject(),r.RecordSetAddress);if(a&&Array.isArray(s)){let t="desc"===r._SortState.Direction?-1:1;s.sort((e,i)=>this._compareTabularValues(this._getTabularCellValue(r,a,e),this._getTabularCellValue(r,a,i))*t)}return n.rebuildCustomTemplate(),n.render(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():n.marshalToView(),!0}_parseTabularTemplate(t,e){if("string"!=typeof t)return"";if(-1===t.indexOf("{"))return t;try{let i=this.pict.parseTemplate(t,e,null);return"string"==typeof i?i:""}catch(t){return this.log.warn("PICT Form Tabular template parse failed: ".concat(t&&t.message)),""}}_buildExpandedHeadersConfig(t,e){let i=[],n=this._getTabularColumnChooserHiddenSet(t,e),r=[];if(n&&e.supportingManifest&&Array.isArray(e.supportingManifest.elementAddresses))for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[t]];!i||i.PictForm&&i.PictForm.TabularHidden||r.push(!n.has(String(e.supportingManifest.elementAddresses[t])))}if(Array.isArray(e.Headers))for(let t=0;t<e.Headers.length;t++){let o=e.Headers[t];if(!Array.isArray(o))continue;let a=[],s=0;for(let t=0;t<o.length;t++){let e=o[t];if(!e||"object"!=typeof e)continue;let i=Number(e.ColumnSpan)>0?Number(e.ColumnSpan):1;if(n){let t=0;for(let e=0;e<i;e++)(s>=r.length||r[s])&&t++,s++;if(0===t)continue;i=t}a.push({Label:"string"==typeof e.Label?e.Label:"",ColumnSpan:i,CSSClass:"string"==typeof e.CSSClass?e.CSSClass:""})}i.push(a)}let o=!1;if(Array.isArray(e.DynamicColumns))for(let t=0;t<e.DynamicColumns.length;t++)if(e.DynamicColumns[t]&&e.DynamicColumns[t].HeaderGroupTemplate){o=!0;break}if(o&&e.supportingManifest){let t=[],r=null,o=e.supportingManifest.elementAddresses;for(let i=0;i<o.length;i++){let a=e.supportingManifest.elementDescriptors[o[i]];if(!a)continue;if(a.PictForm&&a.PictForm.TabularHidden)continue;if(n&&n.has(String(o[i])))continue;let s="number"==typeof a._DynamicColumnGeneratorIndex,c=s&&"string"==typeof a._DynamicColumnHeaderGroup?a._DynamicColumnHeaderGroup:"",l=s?"D".concat(a._DynamicColumnGeneratorIndex,"|").concat(c):"S|".concat(i);r&&r.RunKey===l?r.Cell.ColumnSpan+=1:(r={RunKey:l,Cell:{Label:s?c:"",ColumnSpan:1,CSSClass:s?"pict-tabular-dynamic-header-group":"pict-tabular-static-header-spacer"}},t.push(r.Cell))}i.push(t)}return i}_computeRowLabelMetadata(t,e){if(!Array.isArray(e.RowLabels)||0===e.RowLabels.length)return void(e.RowLabelMetadata=[]);let i=[];if("string"==typeof e.RecordSetAddress&&e.RecordSetAddress.length>0){let n=t.getMarshalDestinationObject(),r=t.sectionManifest.getValueByHash(n,e.RecordSetAddress);Array.isArray(r)&&(i=r)}let n=[];for(let t=0;t<i.length;t++){let r=i[t],o=[];for(let i=0;i<e.RowLabels.length;i++){let n=e.RowLabels[i],a="";if(!0===n.RowNumber)a=String(t+1);else if("string"==typeof n.SourceAddress&&n.SourceAddress.length>0){let e=this.pict.resolveStateFromAddress(n.SourceAddress,null);if(Array.isArray(e)&&t<e.length){let i=e[t];a="string"==typeof i?i:null==i?"":String(i)}}else"string"==typeof n.Template&&(a=this._parseTabularTemplate(n.Template,{Value:r,Key:t}));o.push({Label:n.Name||"",RenderedLabel:a,RowSpan:1,Skip:!1,Cluster:!0===n.Cluster,CSSClass:"string"==typeof n.CSSClass?n.CSSClass:""})}n.push({Cells:o})}for(let t=0;t<e.RowLabels.length;t++){if(!e.RowLabels[t].Cluster)continue;let i=0;for(let e=1;e<=n.length;e++){if(!(e===n.length)&&n[e].Cells[t].RenderedLabel===n[i].Cells[t].RenderedLabel)n[e].Cells[t].Skip=!0;else{let r=e-i;n[i].Cells[t].RowSpan=r,i=e}}}e.RowLabelMetadata=n}_renderTabularRowLabelsHTML(t,e,i){if(!t||!t.sectionDefinition||!Array.isArray(t.sectionDefinition.Groups))return"";let n=Number(e);if(isNaN(n)||n<0||n>=t.sectionDefinition.Groups.length)return"";let r=t.sectionDefinition.Groups[n],o=Number(i);0===o&&this._computeRowLabelMetadata(t,r);let a="";if(r._RowSelectionConfig&&!isNaN(o)&&o>=0){let e=this._getTabularSelectionArray(t,r._RowSelectionConfig)[o]?' checked="checked"':"";a+='<td class="pict-tabular-row-select">'+'<input type="checkbox"'.concat(e," onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularRowSelection('").concat(t.Hash,"', ").concat(n,", '").concat(o,"', this.checked)\">")+"</td>"}if(Array.isArray(r.RowLabelMetadata)&&!isNaN(o)&&o>=0&&o<r.RowLabelMetadata.length){let t=r.RowLabelMetadata[o].Cells;for(let e=0;e<t.length;e++){let i=t[e];if(i.Skip)continue;let n=i.RowSpan>1?' rowspan="'.concat(i.RowSpan,'"'):"",r="pict-row-label".concat(i.Cluster?" pict-row-label-clustered":"").concat(i.CSSClass?" "+i.CSSClass:"");a+="<td".concat(n,' class="').concat(r,'">').concat(this._escapeHTML(i.RenderedLabel),"</td>")}}return a}_renderTabularEditingControlsHTML(t,e,i){if(!t)return"";let n=t.Hash;return'<td class="pict-tabular-editing-controls"><a href="#/" onClick="_Pict.views[\''.concat(n,"'].deleteDynamicTableRow(").concat(e,",'").concat(i,'\')">del</a> <a href="#/" onClick="_Pict.views[\'').concat(n,"'].moveDynamicTableRowUp(").concat(e,",'").concat(i,'\')">up</a> <a href="#/" onClick="_Pict.views[\'').concat(n,"'].moveDynamicTableRowDown(").concat(e,",'").concat(i,"')\">down</a></td>")}_escapeHTML(t){return"string"!=typeof t?"":t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}_normalizeSelectionConfig(t,e,i){if(!0!==t&&("object"!=typeof t||null===t))return null;let n="object"==typeof t?t:{};return!1===n.Enabled?null:{DataAddress:"string"==typeof n.DataAddress&&n.DataAddress.length>0?n.DataAddress:e,HighlightClass:"HighlightClass"in n?n.HighlightClass||"":i,HeaderLabel:"string"==typeof n.HeaderLabel?n.HeaderLabel:""}}_getTabularSelectionAddress(t,e){return"".concat(t.getMarshalDestinationAddress(),".").concat(e.DataAddress)}_getTabularSelectionArray(t,e){let i=this.pict.resolveStateFromAddress(this._getTabularSelectionAddress(t,e));return Array.isArray(i)?i:[]}_setTabularSelectionFlag(t,e,i,n){let r=this._getTabularSelectionArray(t,e),o=Number(i);return!isNaN(o)&&o>=0&&(r[o]=!!n),this.pict.setStateValueAtAddress(this._getTabularSelectionAddress(t,e),null,r),r}toggleTabularRowSelection(t,e,i,n){let r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;let o=r.sectionDefinition.Groups[Number(e)];return!(!o||!o._RowSelectionConfig)&&(this._setTabularSelectionFlag(r,o._RowSelectionConfig,i,n),o._RowSelectionConfig.HighlightClass&&this.pict.providers.DynamicFormSolverBehaviors&&this.pict.providers.DynamicFormSolverBehaviors.highlightTabularRow(r.sectionDefinition.Hash,o.Hash,i,n?1:0,o._RowSelectionConfig.HighlightClass),this.pict.PictApplication.solve(),!0)}toggleTabularColumnSelection(t,e,i,n){let r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;let o=r.sectionDefinition.Groups[Number(e)];return!(!o||!o._ColumnSelectionConfig)&&(this._setTabularSelectionFlag(r,o._ColumnSelectionConfig,i,n),o._ColumnSelectionConfig.HighlightClass&&this.pict.providers.DynamicFormSolverBehaviors&&this.pict.providers.DynamicFormSolverBehaviors.highlightTabularColumn(r.sectionDefinition.Hash,o.Hash,i,n?1:0,o._ColumnSelectionConfig.HighlightClass),this.pict.PictApplication.solve(),!0)}_reapplyTabularSelectionHighlights(t,e){let i=this.pict.providers.DynamicFormSolverBehaviors;if(!i||!t.sectionDefinition)return;let n=t.sectionDefinition.Hash;if(e._RowSelectionConfig&&e._RowSelectionConfig.HighlightClass){let r=this._getTabularSelectionArray(t,e._RowSelectionConfig);for(let t=0;t<r.length;t++)i.highlightTabularRow(n,e.Hash,t,r[t]?1:0,e._RowSelectionConfig.HighlightClass)}if(e._ColumnSelectionConfig&&e._ColumnSelectionConfig.HighlightClass){let r=this._getTabularSelectionArray(t,e._ColumnSelectionConfig);for(let t=0;t<r.length;t++)i.highlightTabularColumn(n,e.Hash,t,r[t]?1:0,e._ColumnSelectionConfig.HighlightClass)}}_normalizeColumnChooserConfig(t,e){if(!0!==t&&("object"!=typeof t||null===t))return null;let i="object"==typeof t?t:{};return!1===i.Enabled?null:{DataAddress:"string"==typeof i.DataAddress&&i.DataAddress.length>0?i.DataAddress:e,ButtonLabel:"string"==typeof i.ButtonLabel&&i.ButtonLabel.length>0?i.ButtonLabel:"Columns",DefaultHiddenColumns:Array.isArray(i.DefaultHiddenColumns)?i.DefaultHiddenColumns.map(t=>String(t)):[]}}_ensureTabularColumnChooserConfig(t){return void 0===t._ColumnChooserConfig&&(t._ColumnChooserConfig=this._normalizeColumnChooserConfig(t.ColumnChooser,"".concat(t.Hash,"_HiddenColumns"))),t._ColumnChooserConfig}_getTabularHiddenColumnsAddress(t,e){return"".concat(t.getMarshalDestinationAddress(),".").concat(e.DataAddress)}_getTabularColumnChooserDefaultHidden(t){let e=t._ColumnChooserConfig;if(!e)return[];let i={};for(let t=0;t<e.DefaultHiddenColumns.length;t++)i[e.DefaultHiddenColumns[t]]=!0;if(t.supportingManifest&&Array.isArray(t.supportingManifest.elementAddresses))for(let e=0;e<t.supportingManifest.elementAddresses.length;e++){let n=t.supportingManifest.elementAddresses[e],r=t.supportingManifest.elementDescriptors[n];r&&r.PictForm&&!r.PictForm.TabularHidden&&!0===r.PictForm.TabularDefaultHidden&&(i[String(n)]=!0)}return Object.keys(i)}_getTabularColumnChooserHiddenSet(t,e){let i=this._ensureTabularColumnChooserConfig(e);if(!i)return null;let n=this.pict.resolveStateFromAddress(this._getTabularHiddenColumnsAddress(t,i)),r=Array.isArray(n)?n:this._getTabularColumnChooserDefaultHidden(e),o=new Set;for(let t=0;t<r.length;t++)o.add(String(r[t]));return o}_getTabularColumnChooserStateKey(t,e){let i=this._getTabularColumnChooserHiddenSet(t,e);return i?Array.from(i).sort().join("|"):""}_getTabularChoosableColumns(t,e){let i=[];if(!e.supportingManifest||!Array.isArray(e.supportingManifest.elementAddresses))return i;let n=this._getTabularColumnChooserHiddenSet(t,e);for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let r=String(e.supportingManifest.elementAddresses[t]),o=e.supportingManifest.elementDescriptors[r];!o||o.PictForm&&o.PictForm.TabularHidden||i.push({Key:r,Name:null!=o.Name&&String(o.Name).length>0?String(o.Name):r,ColumnIndex:t,Visible:!(n&&n.has(r))})}return i}_getTabularColumnChooserElementId(t,e,i){return"PICTFORM-COLCHOOSER-".concat(i,"-").concat(t.formID,"-").concat(e.Hash)}_buildTabularColumnChooserBarHTML(t,e){let i=this._getTabularChoosableColumns(t,e).filter(t=>!t.Visible).length,n="function"==typeof this.pict.icon?this.pict.icon("Settings"):"",r=i>0?' <span class="pict-tabular-colchooser-count">('.concat(i," hidden)</span>"):"";return'<div class="pict-tabular-colchooser-bar">'+'<button type="button" class="pict-tabular-colchooser-trigger" id="'.concat(this._getTabularColumnChooserElementId(t,e,"TRIGGER"),'" ')+'title="Choose which columns to show" '+"onclick=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularColumnChooser('".concat(t.Hash,"', ").concat(e.GroupIndex,')">')+"".concat(n," ").concat(this._escapeHTML(e._ColumnChooserConfig.ButtonLabel)).concat(r,"</button>")+'<div class="pict-tabular-colchooser-pop" id="'.concat(this._getTabularColumnChooserElementId(t,e,"POPOVER"),'"></div>')+"</div>"}_renderTabularColumnChooserPopover(t,e){let i=this._getTabularChoosableColumns(t,e),n="";for(let r=0;r<i.length;r++){let o=i[r];n+='<label class="pict-tabular-colchooser-row">'+'<input type="checkbox"'.concat(o.Visible?' checked="checked"':""," ")+"onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularColumnVisibility('".concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(o.ColumnIndex,', this.checked)">')+"<span>".concat(this._escapeHTML(o.Name),"</span>")+"</label>"}let r="<div class=\"pict-tabular-colchooser-backdrop\" onclick=\"_Pict.providers['Pict-Layout-Tabular'].closeTabularColumnChooser('".concat(t.Hash,"', ").concat(e.GroupIndex,')"></div>')+'<div class="pict-tabular-colchooser-panel">'+'<div class="pict-tabular-colchooser-list">'.concat(n,"</div>")+'<div class="pict-tabular-colchooser-footer">'+'<button type="button" class="pict-tabular-colchooser-reset" onclick="_Pict.providers[\'Pict-Layout-Tabular\'].resetTabularColumnVisibility(\''.concat(t.Hash,"', ").concat(e.GroupIndex,')">Reset to defaults</button>')+"</div></div>";this.pict.ContentAssignment.assignContent("#".concat(this._getTabularColumnChooserElementId(t,e,"POPOVER")),r)}_paintTabularColumnChooserOpenState(t,e,i){let n=this.pict.ContentAssignment.getElement("#".concat(this._getTabularColumnChooserElementId(t,e,"POPOVER")));n.length&&(n[0].classList.toggle("open",!!i),i&&this._positionTabularColumnChooserPopover(t,e,n[0]))}_positionTabularColumnChooserPopover(t,e,i){let n=this.pict.ContentAssignment.getElement("#".concat(this._getTabularColumnChooserElementId(t,e,"TRIGGER")));if(!n.length||"undefined"==typeof window)return;let r=i.querySelector(".pict-tabular-colchooser-panel"),o=n[0].getBoundingClientRect(),a=window.innerHeight,s=window.innerWidth,c=i.offsetWidth||240;i.style.left="".concat(Math.round(Math.max(8,Math.min(o.right-c,s-c-8))),"px"),i.style.right="auto";let l=a-o.bottom-6-8,p=o.top-6-8;l>=220||l>=p?(i.style.top="".concat(Math.round(o.bottom+6),"px"),i.style.bottom="auto",r&&(r.style.maxHeight="".concat(Math.max(160,Math.min(l,420)),"px"))):(i.style.top="auto",i.style.bottom="".concat(Math.round(a-o.top+6),"px"),r&&(r.style.maxHeight="".concat(Math.max(160,Math.min(p,420)),"px")))}_rebuildTabularGroupView(t){t.rebuildCustomTemplate(),t.render(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():t.marshalToView()}toggleTabularColumnChooser(t,e){let i=this.pict.views[t];if(!i||!i.sectionDefinition||!Array.isArray(i.sectionDefinition.Groups))return!1;let n=i.sectionDefinition.Groups[Number(e)];if(!n||!this._ensureTabularColumnChooserConfig(n))return!1;let r=this.pict.ContentAssignment.getElement("#".concat(this._getTabularColumnChooserElementId(i,n,"POPOVER")));return r.length&&r[0].classList.contains("open")?(this._paintTabularColumnChooserOpenState(i,n,!1),!0):(this._renderTabularColumnChooserPopover(i,n),this._paintTabularColumnChooserOpenState(i,n,!0),!0)}closeTabularColumnChooser(t,e){let i=this.pict.views[t];if(!i||!i.sectionDefinition||!Array.isArray(i.sectionDefinition.Groups))return!1;let n=i.sectionDefinition.Groups[Number(e)];return!!n&&(this._paintTabularColumnChooserOpenState(i,n,!1),!0)}toggleTabularColumnVisibility(t,e,i,n){let r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;let o=r.sectionDefinition.Groups[Number(e)];if(!o)return!1;let a=this._ensureTabularColumnChooserConfig(o);if(!a)return!1;let s=this._getTabularChoosableColumns(r,o),c=s.find(t=>t.ColumnIndex===Number(i));if(!c)return!1;let l=this._getTabularColumnChooserHiddenSet(r,o);if(n)l.delete(c.Key);else{if(s.filter(t=>t.Visible).length<=1&&c.Visible)return this.log.warn("PICT Form Tabular column chooser on group [".concat(o.Hash,"] refused to hide the last visible column [").concat(c.Key,"].")),this._renderTabularColumnChooserPopover(r,o),this._paintTabularColumnChooserOpenState(r,o,!0),!1;l.add(c.Key)}return this.pict.setStateValueAtAddress(this._getTabularHiddenColumnsAddress(r,a),null,Array.from(l)),this._rebuildTabularGroupView(r),this._renderTabularColumnChooserPopover(r,o),this._paintTabularColumnChooserOpenState(r,o,!0),!0}resetTabularColumnVisibility(t,e){let i=this.pict.views[t];if(!i||!i.sectionDefinition||!Array.isArray(i.sectionDefinition.Groups))return!1;let n=i.sectionDefinition.Groups[Number(e)];if(!n)return!1;let r=this._ensureTabularColumnChooserConfig(n);return!!r&&(this.pict.setStateValueAtAddress(this._getTabularHiddenColumnsAddress(i,r),null,this._getTabularColumnChooserDefaultHidden(n)),this._rebuildTabularGroupView(i),this._renderTabularColumnChooserPopover(i,n),this._paintTabularColumnChooserOpenState(i,n,!0),!0)}generateGroupLayoutTemplate(t,e){if(!e.supportingManifest)return this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] error generating tabular metatemplate: missing group manifest ").concat(e.RecordManifest," from supportingManifests.")),"";let i=this.pict.providers.MetatemplateGenerator,n="",r="",o="string"==typeof e.EditingControlsPosition?e.EditingControlsPosition:"right",a=Array.isArray(e.RowLabels)?e.RowLabels:[],s=!0===e.SuppressDefaultColumnHeaderRow,c=!0===e.ColumnSorting;c&&!e._SortState&&(e._SortState={ColumnIndex:-1,Direction:"none"}),e._ColumnChooserConfig=this._normalizeColumnChooserConfig(e.ColumnChooser,"".concat(e.Hash,"_HiddenColumns"));let l=this._getTabularColumnChooserHiddenSet(t,e);e._ColumnChooserBakedStateKey=l?Array.from(l).sort().join("|"):"";let p=this._buildExpandedHeadersConfig(t,e);e.ExpandedHeaders=p,e.RowLabelHeaderCells=a.map(t=>({Name:t.Name||"",CSSClass:"string"==typeof t.CSSClass?t.CSSClass:""})),e._RowSelectionConfig=this._normalizeSelectionConfig(e.RowSelection,"".concat(e.Hash,"_RowSelection"),"pict-tabular-row-highlight"),e._ColumnSelectionConfig=this._normalizeSelectionConfig(e.ColumnSelection,"".concat(e.Hash,"_ColumnSelection"),"pict-tabular-column-highlight");let d=null!=e._RowSelectionConfig,u=null!=e._ColumnSelectionConfig,h="left"===o,m="right"===o,g=(d?1:0)+a.length+(h?1:0);"left"!==o&&"hidden"!==o||(this.pict.TemplateProvider.addTemplate(t.getViewSpecificTemplateHash("-TabularTemplate-Row-ExtraPostfix"),""),this.pict.TemplateProvider.addTemplate(t.getViewSpecificTemplateHash("-TabularTemplate-RowHeader-ExtraPostfix"),"")),e._ColumnChooserConfig&&(n+=this._buildTabularColumnChooserBarHTML(t,e)),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let r=0;r<p.length;r++){let o=p[r];n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderRow-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let t=0;t<g;t++)n+='<th class="pict-row-label-spacer"></th>';for(let a=0;a<o.length;a++){let o='getGroup("'.concat(e.GroupIndex,'").ExpandedHeaders.').concat(r,".").concat(a);n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderCell",o)}m&&(n+='<th class="pict-row-label-spacer"></th>'),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderRow-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}if(u){let i=this._getTabularSelectionArray(t,e._ColumnSelectionConfig),r='<tr class="pict-tabular-column-select-row">';for(let t=0;t<g;t++)r+='<th class="pict-row-label-spacer"></th>';for(let n=0;n<e.supportingManifest.elementAddresses.length;n++){let o=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[n]];if(!o||o.PictForm&&o.PictForm.TabularHidden)continue;if(l&&l.has(String(e.supportingManifest.elementAddresses[n])))continue;let a=i[n]?' checked="checked"':"";r+='<th class="pict-tabular-column-select">'+'<input type="checkbox"'.concat(a," onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularColumnSelection('").concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(n,', this.checked)">')+"</th>"}m&&(r+='<th class="pict-row-label-spacer"></th>'),r+="</tr>",n+=r}n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-ExtraPrefix",'getGroup("'.concat(e.GroupIndex,'")')),d&&(n+='<th class="pict-row-label-header pict-tabular-row-select-header">'.concat(this._escapeHTML(e._RowSelectionConfig.HeaderLabel),"</th>"));for(let r=0;r<a.length;r++){let o='getGroup("'.concat(e.GroupIndex,'").RowLabelHeaderCells.').concat(r);n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowLabel-HeaderCell",o)}h&&(n+='<th class="pict-row-label-header pict-tabular-editing-controls-header"></th>');let f=0;for(let o=0;o<e.supportingManifest.elementAddresses.length;o++){let a=e.supportingManifest.elementAddresses[o],p=e.supportingManifest.elementDescriptors[a];if("PictForm"in p||(p.PictForm={}),p.PictForm.TabularHidden)continue;if(l&&l.has(String(a)))continue;p.PictForm.InputIndex=o,p.PictForm.GroupIndex=e.GroupIndex,p.PictForm.RowIndex=0,s||(n+=c?this._buildSortableHeaderCell(t,e,p,o):i.getMetatemplateTemplateReference(t,"-TabularTemplate-HeaderCell",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'))),r+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Cell-Prefix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'));let d="PictForm"in p&&p.PictForm.InputType?p.PictForm.InputType:"Default";r+=i.getTabularInputMetatemplateTemplateReference(t,p.DataType,d,'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")'),e.GroupIndex,o),r+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Cell-Postfix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(o,'")')),f++}n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-ExtraPostfix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-Postfix",'getGroup("'.concat(e.GroupIndex,'")'));for(let i=0;i<p.length;i++){let n=0;for(let t=0;t<p[i].length;t++)n+=p[i][t].ColumnSpan||1;n!==f&&this.log.warn("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] tabular group [").concat(e.Hash,"] header row ").concat(i," total ColumnSpan (").concat(n,") does not match data column count (").concat(f,"). Header will visually misalign."))}this._computeRowLabelMetadata(t,e);let D="";return D+=i.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-Prefix","Record"),D+=i.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-ExtraPrefix","Record"),(a.length>0||d)&&(D+="{~TRL:".concat(t.Hash,"~}")),h&&(D+="{~TEC:".concat(t.Hash,"~}")),D+="\n\n{~T:".concat(e.SectionTabularRowTemplateHash,":Record~}\n"),D+=i.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-ExtraPostfix","Record"),D+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+="\n\n{~MTVS:".concat(e.SectionTabularRowVirtualTemplateHash,":").concat(e.GroupIndex,":").concat(t.getMarshalDestinationAddress(),".").concat(e.RecordSetAddress,"~}\n"),n+=i.getMetatemplateTemplateReference(t,"-TabularTemplate-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowVirtualTemplateHash,D),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowTemplateHash,r),n}onGroupLayoutInitialize(t,e){return!e||(this._reapplyTabularSelectionHighlights(t,e),!0)}onDataMarshalToForm(t,e){if(!e)return!0;if(e._RebuildInProgress)return!0;if(Array.isArray(e.DynamicColumns)&&e.DynamicColumns.length>0&&this.fable.ManifestFactory&&"function"==typeof this.fable.ManifestFactory._resolveDynamicColumns){let i=this.fable.ManifestFactory._resolveDynamicColumns(t,e);if(i&&i.changed){e._RebuildInProgress=!0;try{t.rebuildCustomTemplate(),t.render()}finally{e._RebuildInProgress=!1}return this._reapplyTabularSelectionHighlights(t,e),!0}}if(this._ensureTabularColumnChooserConfig(e)){if(this._getTabularColumnChooserStateKey(t,e)!==e._ColumnChooserBakedStateKey){e._RebuildInProgress=!0;try{t.rebuildCustomTemplate(),t.render()}finally{e._RebuildInProgress=!1}return this._reapplyTabularSelectionHighlights(t,e),!0}}return this._computeRowLabelMetadata(t,e),this._reapplyTabularSelectionHighlights(t,e),!0}}},{"../Pict-Provider-DynamicLayout.js":45}],83:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js"),r=t("./Pict-Layout-TuiGrid/Pict-Section-TuiGrid.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.options,this.pict,this.log,this.viewGridConfigurations={},this.viewTuiGrids={},this.viewGridState={}}getGridHtmlID(t,e){return"View-".concat(t.UUID,"-GroupTuiGrid-").concat(e.GroupIndex)}getViewTuiHtmlID(t,e){return"#".concat(this.getGridHtmlID(t,e))}getViewGrid(t,e){let i=this.getGridHtmlID(t,e);return this.viewTuiGrids.hasOwnProperty(i)?this.viewTuiGrids[i]:null}createViewTuiGrid(t,e){let i=this.getGridHtmlID(t,e);this.viewTuiGrids.hasOwnProperty(i)&&this.log.info("Dynamic TuiGrid view [".concat(t.UUID,"]::[").concat(t.Hash,"] is reinitializing a TuiGrid in group ").concat(e.GroupIndex," TuiGrid UUID [").concat(i,"]."));let n=this.getViewTuiConfiguration(t,e),o=this.pict.addView(i,n,r);return o.cachedGridData=this.generateDataRepresentation(t,e),o.initialize(),this.viewTuiGrids[i]=o,o}getViewTuiConfiguration(t,e){var i,n;let o=this.getGridHtmlID(t,e);if(!this.viewGridConfigurations.hasOwnProperty(o)){let a=JSON.parse(JSON.stringify(r.default_configuration));this.viewGridConfigurations[o]=a,a.DefaultDestinationAddress=this.getViewTuiHtmlID(t,e),a.TargetElementAddress=this.getViewTuiHtmlID(t,e),a.TuiColumnSchema=[];for(let r=0;r<e.supportingManifest.elementAddresses.length;r++){let o=e.supportingManifest.elementAddresses[r],s=e.supportingManifest.elementDescriptors[o];"PictForm"in s||(s.PictForm={}),s.PictForm.InputIndex=r,s.PictForm.GroupIndex=e.GroupIndex,s.PictForm.RowIndex=0;let c={header:s.Name,name:s.Hash,PictTriggerSolveOnChange:!0,PictSectionFormInput:s};switch(s.DataType){case"Number":case"PreciseNumber":c.editor={type:"EditorNumber",options:{}},c.editor.options.decimalPrecision=null!==(i=null==s||null===(n=s.PictForm)||void 0===n?void 0:n.DecimalPrecision)&&void 0!==i?i:10;break;case"String":c.editor="text";break;case"DateTime":c.editor={type:"datePicker",options:{format:"yyyy-MM-dd"}}}switch(s.PictForm.InputType){case"Option":{c.editor={type:"select",options:{listItems:[]}};let e=s.PictForm.SelectOptions;if(s.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(t.Hash,s.PictForm.SelectOptionsPickList)&&(e=this.pict.providers.DynamicMetaLists.getList(t.Hash,s.PictForm.SelectOptionsPickList)),e&&Array.isArray(e))for(let t=0;t<e.length;t++){let i={value:e[t].id,text:e[t].text};c.editor.options.listItems.push(i)}break}}a.TuiColumnSchema.push(c)}}return this.viewGridConfigurations[o]}generateGroupLayoutTemplate(t,e){if(!e.supportingManifest)return this.log.error("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] error generating tabular metatemplate: missing group manifest ").concat(e.RecordManifest," from supportingManifests.")),"";let i=this.pict.providers.MetatemplateGenerator,n="";return n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),e.TuiGridHTMLID=this.getGridHtmlID(t,e),n+=i.getMetatemplateTemplateReference(t,"-TuiGrid-Container",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-TuiGrid-Controls",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}generateDataRepresentation(t,e){let i=[];this.viewGridState[this.getGridHtmlID(t,e)]=i;let n=t.getTabularRecordSet(e.GroupIndex);if(Array.isArray(n))for(let t=0;t<n.length;t++){let r={RecordIndex:t},o=n[t];for(let t=0;t<e.supportingManifest.elementAddresses.length;t++){let i=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[t]];i&&e.supportingManifest.setValueAtAddress(r,i.Hash,e.supportingManifest.getValueByHash(o,i.Hash))}i.push(r)}return i}onGroupLayoutInitialize(t,e){let i=this.createViewTuiGrid(t,e);if(i.render(),i.tuiGrid){const n=i.tuiGrid;n.View=t,n.Group=e}return!0}onDataMarshalToForm(t,e){let i=this.getViewGrid(t,e);if(!i)return this.log.error("PICT Form TuiGrid [".concat(t.UUID,"]::[").concat(t.Hash,"] error marshalling data to form: missing TuiGrid for group ").concat(e.GroupIndex,"; skipping marshal.")),!1;let n=t.getTabularRecordSet(e.GroupIndex),r=i.tuiGrid.getData();if(Array.isArray(n))for(let o=0;o<n.length;o++)try{let a=n[o],s=r[o];for(let n=0;n<e.supportingManifest.elementAddresses.length;n++){let r=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[n]];if(r){let n=e.supportingManifest.getValueAtAddress(s,r.Hash),c=e.supportingManifest.getValueByHash(a,r.Hash);n!==c&&(this.log.trace("PICT Form TuiGrid Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] updating tabular record ").concat(o," element ").concat(r.Hash," from [").concat(n,"] to [").concat(c,"].")),i.tuiGrid.setValue(o,r.Hash,c))}}}catch(e){this.log.error("PICT Form TuiGrid [".concat(t.UUID,"]::[").concat(t.Hash,"] gross error marshalling data to form: ").concat(e))}return!0}addRow(t,e){if(!(t in this.pict.views))return this.log.error("PICT Form View [".concat(t,"] error adding row: no matching view found in pict.")),!1;let i=this.pict.views[t],n=i.getGroup(e);if(!n)return this.log.error("PICT Form View [".concat(t,"] error adding row: no matching group index ").concat(e," found in view.")),!1;let r=i.sectionManifest.getValueByHash(i.getMarshalDestinationObject(),n.RecordSetAddress),o=n.supportingManifest.populateDefaults({});if(Array.isArray(r))r.push(o);else if("object"==typeof r){r[i.fable.getUUID()]=o}let a=this.getViewGrid(i,n);a&&a.tuiGrid.appendRow(JSON.parse(JSON.stringify(o)))}}},{"../Pict-Provider-DynamicLayout.js":45,"./Pict-Layout-TuiGrid/Pict-Section-TuiGrid.js":84}],84:[function(t,e,i){const n=t("pict-section-tuigrid");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.viewGridConfigurations={},this.cachedGridData=[]}customConfigureGridSettings(){return this.gridSettings.data=this.cachedGridData,super.customConfigureGridSettings()}changeHandler(t){for(let e=0;e<t.changes.length;e++){let i=t.changes[e],n=t.instance.getValue(i.rowKey,"RecordIndex");t.instance.View.setDataTabularByHash(t.instance.Group.GroupIndex,i.columnName,n,i.value)}return super.changeHandler(t)}}},{"pict-section-tuigrid":30}],85:[function(t,e,i){const n=t("../Pict-Provider-DynamicLayout.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log}generateGroupLayoutTemplate(t,e){let i=this.pict.providers.MetatemplateGenerator,n="";"Rows"in e||(e.Rows=[]),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-Template-VerticalRow-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(let r=0;r<e.Rows.length;r++){let o=e.Rows[r];for(let a=0;a<o.Inputs.length;a++){let s=o.Inputs[a];s.PictForm.InputIndex=a,s.PictForm.GroupIndex=e.GroupIndex,s.PictForm.RowIndex=r,n+=i.getVerticalInputMetatemplateTemplateReference(t,s.DataType,s.PictForm.InputType,'getInput("'.concat(e.GroupIndex,'","').concat(r,'","').concat(a,'")'))}}return n+=i.getMetatemplateTemplateReference(t,"-Template-VerticalRow-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+=i.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n}}},{"../Pict-Provider-DynamicLayout.js":45}],86:[function(t,e,i){const n=t("fable-serviceproviderbase");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.fable,this.log,this.UUID,this.CSV_HEADER=["Form","Form Name","SubManifest","HideTabularEditingControls","GroupRecordSetAddress","DataOnly","Section Name","Section Hash","Group Name","Group Hash","Group Layout","Group CSS","Group Show Title","Row","Width","Minimum Row Count","Maximum Row Count","Input Address","Input Name","Input Hash","Input Extra","Units","DataType","Decimal Precision","InputType","Equation","Equation Ordinal","Default","Description","Tooltip","Input Notes","Entity","EntityColumnFilter","EntityDestination","EntitySingleRecord","TriggerGroup","TriggerAddress","TriggerAllInputs","MarshalEmptyValues","ChartType","ChartLabelsAddress","ChartLabelsSolver","ChartDatasetsAddress","ChartDatasetsLabel","ChartDatasetsSolvers"],this.CSV_COLUMN_MAP={};for(let t=0;t<this.CSV_HEADER.length;t++){let e=this.CSV_HEADER[t];this.CSV_COLUMN_MAP[e]=t}}getRowFromDescriptor(t,e,i){let n=new Array(this.CSV_HEADER.length).fill("");if(!i||"object"!=typeof i||!e||"string"!=typeof e)return!1;let r=i.PictForm;if(n[this.CSV_COLUMN_MAP.Form]=t,n[this.CSV_COLUMN_MAP["Form Name"]]=i.FormName||"",n[this.CSV_COLUMN_MAP.SubManifest]="",n[this.CSV_COLUMN_MAP.DataOnly]=void 0===r?"1":"",n[this.CSV_COLUMN_MAP["Section Name"]]="",n[this.CSV_COLUMN_MAP["Section Hash"]]=r&&r.Section?r.Section:i.FormSection?i.FormSection:"",n[this.CSV_COLUMN_MAP["Group Name"]]="",n[this.CSV_COLUMN_MAP["Group Hash"]]=r&&r.Group?r.Group:i.FormGroup?i.FormGroup:"",n[this.CSV_COLUMN_MAP["Group Layout"]]="",n[this.CSV_COLUMN_MAP["Group CSS"]]="",n[this.CSV_COLUMN_MAP["Group Show Title"]]="",n[this.CSV_COLUMN_MAP.Row]=r&&r.Row?r.Row:"",n[this.CSV_COLUMN_MAP.Width]=r&&r.Width?r.Width:"",n[this.CSV_COLUMN_MAP["Minimum Row Count"]]="",n[this.CSV_COLUMN_MAP["Maximum Row Count"]]="",n[this.CSV_COLUMN_MAP["Input Address"]]=i.DataAddress?i.DataAddress:e,n[this.CSV_COLUMN_MAP["Input Name"]]=i.Name||i.DataAddress||e,n[this.CSV_COLUMN_MAP["Input Hash"]]=i.Hash||e,n[this.CSV_COLUMN_MAP["Input Extra"]]="",n[this.CSV_COLUMN_MAP.Units]=r&&r.Units?r.Units:"",n[this.CSV_COLUMN_MAP.DataType]=i.DataType||"String",n[this.CSV_COLUMN_MAP["Decimal Precision"]]=r&&r.DecimalPrecision?r.DecimalPrecision:"",n[this.CSV_COLUMN_MAP.InputType]=r&&r.InputType?r.InputType:"",n[this.CSV_COLUMN_MAP.Equation]="",n[this.CSV_COLUMN_MAP["Equation Ordinal"]]="",n[this.CSV_COLUMN_MAP.Default]=void 0!==i.Default?i.Default:"",n[this.CSV_COLUMN_MAP.Description]=i.Description?i.Description:"",n[this.CSV_COLUMN_MAP.Tooltip]=r&&r.Tooltip?r.Tooltip:"",n[this.CSV_COLUMN_MAP["Input Notes"]]=r&&r.SpreadsheetNotes?r.SpreadsheetNotes:"",n[this.CSV_COLUMN_MAP.Entity]="",n[this.CSV_COLUMN_MAP.EntityColumnFilter]="",n[this.CSV_COLUMN_MAP.EntityDestination]="",n[this.CSV_COLUMN_MAP.EntitySingleRecord]="",r&&r.EntitiesBundle&&Array.isArray(r.EntitiesBundle)&&r.EntitiesBundle.length>0){let t=r.EntitiesBundle[0];if(t.Entity&&(n[this.CSV_COLUMN_MAP.Entity]=t.Entity),t.Filter){let e=t.Filter,i=e.indexOf("FBV~"),r=e.indexOf("~EQ~");if(i>=0&&r>i){let t=e.substring(i+4,r);n[this.CSV_COLUMN_MAP.EntityColumnFilter]=t}}t.Destination&&(n[this.CSV_COLUMN_MAP.EntityDestination]=t.Destination),t.SingleRecord&&(n[this.CSV_COLUMN_MAP.EntitySingleRecord]="true")}if(n[this.CSV_COLUMN_MAP.TriggerGroup]="",n[this.CSV_COLUMN_MAP.TriggerAddress]="",n[this.CSV_COLUMN_MAP.TriggerAllInputs]="",n[this.CSV_COLUMN_MAP.MarshalEmptyValues]="",r&&r.AutofillTriggerGroup){let t;Array.isArray(r.AutofillTriggerGroup)&&r.AutofillTriggerGroup.length>0?t=r.AutofillTriggerGroup[0]:"object"==typeof r.AutofillTriggerGroup&&(t=r.AutofillTriggerGroup),t&&(t.TriggerGroupHash&&(n[this.CSV_COLUMN_MAP.TriggerGroup]=t.TriggerGroupHash),t.TriggerAllInputs&&(n[this.CSV_COLUMN_MAP.TriggerAllInputs]="true"),t.TriggerAddress&&(n[this.CSV_COLUMN_MAP.TriggerAddress]=t.TriggerAddress),t.MarshalEmptyValues&&(n[this.CSV_COLUMN_MAP.MarshalEmptyValues]="true"))}if(n[this.CSV_COLUMN_MAP.ChartType]=r&&r.ChartType?r.ChartType:"",n[this.CSV_COLUMN_MAP.ChartLabelsAddress]=r&&r.ChartLabelsAddress?r.ChartLabelsAddress:"",n[this.CSV_COLUMN_MAP.ChartLabelsSolver]=r&&r.ChartLabelsSolver?r.ChartLabelsSolver:"",n[this.CSV_COLUMN_MAP.ChartDatasetsAddress]=r&&r.ChartDatasetsAddress?r.ChartDatasetsAddress:"",n[this.CSV_COLUMN_MAP.ChartDatasetsLabel]=r&&r.ChartDatasetsSolvers&&Array.isArray(r.ChartDatasetsSolvers)&&r.ChartDatasetsSolvers.length>0?r.ChartDatasetsSolvers[0].Label:"",n[this.CSV_COLUMN_MAP.ChartDatasetsSolvers]=r&&r.ChartDatasetsSolvers&&Array.isArray(r.ChartDatasetsSolvers)&&r.ChartDatasetsSolvers.length>0?r.ChartDatasetsSolvers[0].DataSolver:"",r&&"Option"==r.InputType&&r.SelectOptions&&Array.isArray(r.SelectOptions)){let t="";for(let e=0;e<r.SelectOptions.length;e++){let i=r.SelectOptions[e];i.id&&i.text&&(t.length>0&&(t+=","),t+="".concat(i.id,"^").concat(i.text))}n[this.CSV_COLUMN_MAP["Input Extra"]]=t}return n}createTabularArrayFromManifests(t){let e=[],i="Default";if(t&&t.Scope&&"string"==typeof t.Scope&&(i=t.Scope),t&&t.Form&&"string"==typeof t.Form&&(i=t.Form),e.push(this.CSV_HEADER),"object"!=typeof t)return this.log.error("ManifestConversionToCSV: Provided manifest is not an object; cannot convert to CSV."),e;if(!t.Descriptors||"object"!=typeof t.Descriptors)return this.log.error("ManifestConversionToCSV: Provided manifest does not have a valid Descriptors property; cannot convert to CSV."),e;let n=Object.keys(t.Descriptors);for(let r=0;r<n.length;r++){let o=n[r],a=t.Descriptors[o];if(!a||"object"!=typeof a)continue;let s=this.getRowFromDescriptor(i,o,a);s&&e.push(s)}for(let n=0;n<t.Sections.length;n++){let r=t.Sections[n],o=r.Hash||"DEFAULT_SECTION_HASH";if(r&&"object"==typeof r){if(r.Groups&&Array.isArray(r.Groups))for(let n=0;n<r.Groups.length;n++){let a=r.Groups[n],s=a.Hash;if(("Tabular"==a.Layout||"RecordSet"==a.Layout)&&a.RecordSetAddress&&a.RecordManifest){let n=-1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){let e=i[this.CSV_COLUMN_MAP["Section Hash"]],r=i[this.CSV_COLUMN_MAP["Group Hash"]];if(e===o&&r===s){n=t;break}if(i[this.CSV_COLUMN_MAP["Input Address"]]===a.RecordSetAddress){i[this.CSV_COLUMN_MAP["Section Hash"]]=o,i[this.CSV_COLUMN_MAP["Group Hash"]]=s,n=t;break}}}if(n>=0){let r=e[n];r[this.CSV_COLUMN_MAP.SubManifest]=a.RecordManifest,r[this.CSV_COLUMN_MAP.GroupRecordSetAddress]=a.RecordSetAddress,r[this.CSV_COLUMN_MAP.HideTabularEditingControls]=a.HideTabularEditingControls,a.MinimumRowCount&&(r[this.CSV_COLUMN_MAP["Minimum Row Count"]]=a.MinimumRowCount),a.MaximumRowCount&&(r[this.CSV_COLUMN_MAP["Maximum Row Count"]]=a.MaximumRowCount);let c=t.ReferenceManifests[a.RecordManifest],l=Object.keys(c.Descriptors);for(let t=0;t<l.length;t++){let r=l[t],p=c.Descriptors[r];if(!p||"object"!=typeof p)continue;let d=this.getRowFromDescriptor(i,r,p);d&&(d[this.CSV_COLUMN_MAP["Section Hash"]]=o,d[this.CSV_COLUMN_MAP["Group Hash"]]=s,d[this.CSV_COLUMN_MAP.SubManifest]=a.RecordManifest,e.splice(n+1,0,d))}}}if(s)for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Group Hash"]]===s&&(i[this.CSV_COLUMN_MAP["Group Name"]]=a.Name||s,a.Layout&&(i[this.CSV_COLUMN_MAP["Group Layout"]]=a.Layout),a.hasOwnProperty("ShowTitle")&&(i[this.CSV_COLUMN_MAP["Group Show Title"]]=a.ShowTitle),a.hasOwnProperty("CSSClass")&&(i[this.CSV_COLUMN_MAP["Group CSS"]]=a.CSSClass))}}}for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Section Hash"]]===o&&(i[this.CSV_COLUMN_MAP["Section Name"]]=r.Name||o)}}if(r.Solvers&&Array.isArray(r.Solvers))for(let t=0;t<r.Solvers.length;t++){let n=r.Solvers[t],a=!1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){let t=i[this.CSV_COLUMN_MAP["Section Hash"]],e=i[this.CSV_COLUMN_MAP.Equation],r=i[this.CSV_COLUMN_MAP.SubManifest];if(!(t!==o||r&&""!=r||e&&0!=e.length)){"string"==typeof n?(i[this.CSV_COLUMN_MAP.Equation]=n,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof n&&n.Expression&&(i[this.CSV_COLUMN_MAP.Equation]=n.Expression,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=n.Ordinal||1),a=!0;break}}}if(!a){let a=new Array(this.CSV_HEADER.length).fill("");a[this.CSV_COLUMN_MAP.Form]=i,a[this.CSV_COLUMN_MAP["Section Hash"]]=o,a[this.CSV_COLUMN_MAP.DataOnly]="1",a[this.CSV_COLUMN_MAP.DataType]="String",a[this.CSV_COLUMN_MAP.InputType]="Hidden";let s="Solver_for_".concat(o,"_").concat(t+1);a[this.CSV_COLUMN_MAP["Input Hash"]]=s,a[this.CSV_COLUMN_MAP["Input Name"]]="Auto gen hidden solver entry for ".concat(r.Name||o," #").concat(t+1),a[this.CSV_COLUMN_MAP["Input Address"]]=s,"string"==typeof n?(a[this.CSV_COLUMN_MAP.Equation]=n,a[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof n&&n.Expression&&(a[this.CSV_COLUMN_MAP.Equation]=n.Expression,a[this.CSV_COLUMN_MAP["Equation Ordinal"]]=n.Ordinal||1);let c=-1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Section Hash"]]===o&&(c=t)}}c>=0?e.splice(c+1,0,a):e.push(a)}}if(r.Groups&&Array.isArray(r.Groups))for(let t=0;t<r.Groups.length;t++){let n=r.Groups[t],a=n.Hash;if(n.RecordSetSolvers&&Array.isArray(n.RecordSetSolvers))for(let t=0;t<n.RecordSetSolvers.length;t++){let r=n.RecordSetSolvers[t],s=!1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){let t=i[this.CSV_COLUMN_MAP["Group Hash"]],e=i[this.CSV_COLUMN_MAP.Equation],o=i[this.CSV_COLUMN_MAP.SubManifest];if(t===a&&o==n.RecordManifest&&(!e||0==e.length)){"string"==typeof r?(i[this.CSV_COLUMN_MAP.Equation]=r,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof r&&r.Expression&&(i[this.CSV_COLUMN_MAP.Equation]=r.Expression,i[this.CSV_COLUMN_MAP["Equation Ordinal"]]=r.Ordinal||1),s=!0;break}}}if(!s){let s=new Array(this.CSV_HEADER.length).fill("");s[this.CSV_COLUMN_MAP.Form]=i,s[this.CSV_COLUMN_MAP["Section Hash"]]=o,s[this.CSV_COLUMN_MAP["Group Hash"]]=a,s[this.CSV_COLUMN_MAP.SubManifest]=n.RecordManifest,s[this.CSV_COLUMN_MAP.DataOnly]="1";let c="Solver_for_".concat(a,"_").concat(t+1);s[this.CSV_COLUMN_MAP["Input Hash"]]=c,s[this.CSV_COLUMN_MAP["Input Name"]]="Auto gen hidden solver entry for ".concat(n.Name||a," #").concat(t+1),s[this.CSV_COLUMN_MAP["Input Address"]]=c,s[this.CSV_COLUMN_MAP.DataType]="String",s[this.CSV_COLUMN_MAP.InputType]="Hidden","string"==typeof r?(s[this.CSV_COLUMN_MAP.Equation]=r,s[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"==typeof r&&r.Expression&&(s[this.CSV_COLUMN_MAP.Equation]=r.Expression,s[this.CSV_COLUMN_MAP["Equation Ordinal"]]=r.Ordinal||1);let l=-1;for(let t=0;t<e.length;t++){let i=e[t];if(i&&Array.isArray(i)&&i.length>=this.CSV_HEADER.length){i[this.CSV_COLUMN_MAP["Group Hash"]]===a&&(l=t)}}l>=0?e.splice(l+1,0,s):e.push(s)}}}}}if(e.length>1){let i=e[1];i&&t.FormName&&(i[this.CSV_COLUMN_MAP["Form Name"]]=t.FormName||i[this.CSV_COLUMN_MAP["Form Name"]])}return e}}},{"fable-serviceproviderbase":3}],87:[function(t,e,i){const n=t("fable-serviceproviderbase"),r={Manifest:{Scope:"Default"}};class o extends n{constructor(t,e,i){let n=Object.assign({},JSON.parse(JSON.stringify(r)),e);super(t,e,i),this.fable,this.log,this.UUID,this.manifest=n.Manifest,"Descriptors"in this.manifest||(this.manifest.Descriptors={}),"Sections"in this.manifest||(this.manifest.Sections=[]),"ReferenceManifests"in this.manifest||(this.manifest.ReferenceManifests={}),this.referenceManifestFactories={},this.sectionHashLookup={},this.groupHashLookup={};let o=Object.keys(this.manifest.ReferenceManifests);for(let t=0;t<o.length;t++)this.referenceManifestFactories[o[t]]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",this.manifest.ReferenceManifests[o[t]],"".concat(this.UUID,"-").concat(o[t]));this.defaultHashCounter=0,this._SanitizeObjectKeyRegex=/[^a-zA-Z0-9_]/gi,this._SanitizeObjectKeyReplacement="_",this._SanitizeObjectKeyInvalid="INVALID"}sanitizeObjectKey(t){return"string"!=typeof t||t.length<1?this._SanitizeObjectKeyInvalid:t.replace(this._SanitizeObjectKeyRegex,this._SanitizeObjectKeyReplacement)}initializeFormGroups(t){let e=Object.keys(t.options.Manifests.Section.Descriptors);for(let i=0;i<e.length;i++){let n=t.options.Manifests.Section.Descriptors[e[i]];if("object"==typeof n&&"PictForm"in n&&"object"==typeof n.PictForm&&"Section"in n.PictForm&&n.PictForm.Section==t.sectionDefinition.Hash){n.PictForm.InformaryDataAddress=e[i],n.PictForm.ViewHash=t.Hash;let r="string"==typeof n.PictForm.Group?n.PictForm.Group:"Default";"Groups"in t.sectionDefinition||(t.sectionDefinition.Groups=[]);let o=t.sectionDefinition.Groups.find(t=>t.Hash==r);o?Array.isArray(o.Rows)||(o.Rows=[]):(o={Hash:r,Name:r,Description:!1,Rows:[]},t.sectionDefinition.Groups.push(o));let a="string"==typeof n.PictForm.Row?n.PictForm.Row:"number"==typeof n.PictForm.Row?"Row_".concat(n.PictForm.Row.toString()):"Row_Default";n.PictForm.RowHash=a;let s=o.Rows.find(t=>t.Hash==a);s||(s={Hash:a,Name:a,Inputs:[]},o.Rows.push(s)),s.Inputs.push(n)}}for(let e=0;e<t.sectionDefinition.Groups.length;e++){let i=t.sectionDefinition.Groups[e];if(i.GroupIndex=e,"HideTitle"in i&&(i.HideTitle=!1),i.hasOwnProperty("Layout")||(i.Layout="Record"),i.hasOwnProperty("Rows")&&Array.isArray(i.Rows)||(i.Rows=[]),"RecordManifest"in i&&(i.supportingManifest=t.fable.instantiateServiceProviderWithoutRegistration("Manifest",t.options.Manifests.Section.ReferenceManifests[i.RecordManifest])),i.supportingManifest){let e=Object.keys(i.supportingManifest.elementDescriptors);for(let n=0;n<e.length;n++){let r=i.supportingManifest.elementDescriptors[e[n]];r.IsTabular=!0,"PictForm"in r||(r.PictForm={}),r.PictForm.ViewHash=t.Hash,r.PictForm.InformaryDataAddress=e[n],"string"==typeof i.RecordSetAddress&&(r.PictForm.InformaryContainerAddress=i.RecordSetAddress),r.RowIdentifierTemplateHash="{~D:Record.RowID~}"}Array.isArray(i.DynamicColumns)&&i.DynamicColumns.length>0&&this._resolveDynamicColumns(t,i)}if(i.RecordSetAddress){let e=t.getMarshalDestinationObject(),n=t.sectionManifest.checkAddressExistsByHash(e,i.RecordSetAddress),r=t.sectionManifest.getValueAtAddress(e,i.RecordSetAddress);if(n?Array.isArray(r)?t.log.trace("RecordSetAddress is an Array for [".concat(i.Hash,"]")):"object"==typeof r?t.log.trace("RecordSetAddress is an Object for [".concat(i.Hash,"]")):t.log.error("RecordSetAddress is not an Array or Object for [".concat(i.Hash,"]; it is a [").concat(typeof r,"] -- likely the data shape will cause erratic problems.")):(t.log.warn("Automatically setting an empty array at [".concat(i.RecordSetAddress,"].")),t.sectionManifest.setValueByHash(e,i.RecordSetAddress,[])),i.MinimumRowCount){r||(t.sectionManifest.setValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress,[]),r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress));for(let e=r.length;e<i.MinimumRowCount;e++)t.pict.providers.DynamicTabularData.createDynamicTableRowWithoutEvents(t,i.GroupIndex)}}}}_parseDynamicColumnTemplate(t,e){if("string"!=typeof t)return"";if(-1===t.indexOf("{"))return t;try{let i=this.fable.parseTemplate(t,e,null);return"string"==typeof i?i:""}catch(t){return this.log.warn("PICT Form Tabular DynamicColumns template parse failed: ".concat(t&&t.message)),""}}_resolveDynamicColumns(t,e){let i={added:[],removed:[],unchanged:[],changed:!1};if(!e||!Array.isArray(e.DynamicColumns)||0===e.DynamicColumns.length)return i;if(!e.supportingManifest)return this.log.warn("PICT Form Tabular DynamicColumns on group [".concat(e.Hash,"] skipped: no supportingManifest.")),i;Array.isArray(e.DynamicColumnsState)||(e.DynamicColumnsState=[]);let n=t.getMarshalDestinationObject(),r=e.supportingManifest,o=[],a=[],s=[],c=!1;for(let i=0;i<e.DynamicColumns.length;i++){let l=e.DynamicColumns[i];e.DynamicColumnsState[i]||(e.DynamicColumnsState[i]={LastHashes:[],LastHeaderGroups:[]});let p=e.DynamicColumnsState[i];if("string"!=typeof l.SourceAddress||0===l.SourceAddress.length){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," on group [").concat(e.Hash,"] is missing SourceAddress."));continue}if("string"!=typeof l.HashTemplate||0===l.HashTemplate.length){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," on group [").concat(e.Hash,"] is missing HashTemplate."));continue}if("string"!=typeof l.InformaryDataAddressTemplate||0===l.InformaryDataAddressTemplate.length){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," on group [").concat(e.Hash,"] is missing InformaryDataAddressTemplate."));continue}let d=t.sectionManifest.getValueByHash(n,l.SourceAddress);Array.isArray(d)||(d=[]);let u=[],h={},m=[],g={};for(let n=0;n<d.length;n++){let r=d[n],o=r&&"object"==typeof r?Object.assign({},r,{__Index:n,__RowNumber:n+1}):{Value:r,__Index:n,__RowNumber:n+1},a=this._parseDynamicColumnTemplate(l.HashTemplate,o);if(!a)continue;g[a]&&this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," produced duplicate Hash [").concat(a,"] on group [").concat(e.Hash,"]; later row wins.")),g[a]=!0;let s=l.NameTemplate?this._parseDynamicColumnTemplate(l.NameTemplate,o):a,c=this._parseDynamicColumnTemplate(l.InformaryDataAddressTemplate,o);if(!c){this.log.warn("PICT Form Tabular DynamicColumns generator ".concat(i," produced empty InformaryDataAddress for row ").concat(n," on group [").concat(e.Hash,"]; skipping."));continue}let p=l.HeaderGroupTemplate?this._parseDynamicColumnTemplate(l.HeaderGroupTemplate,o):"",f={Hash:a,Name:s||a,DataType:l.DataType||"String",IsTabular:!0,_DynamicColumnGeneratorIndex:i,_DynamicColumnHeaderGroup:p,PictForm:Object.assign({},l.PictForm||{},{ViewHash:t.Hash,InformaryContainerAddress:e.RecordSetAddress,InformaryDataAddress:c})};u.push(a),h[a]=f,m.push(p)}let f=Array.isArray(p.LastHashes)?p.LastHashes:[],D={};for(let t=0;t<u.length;t++)D[u[t]]=!0;let y=f.filter(t=>!D[t]),v={};for(let t=0;t<f.length;t++)v[f[t]]=!0;let b=u.filter(t=>!v[t]),T=u.filter(t=>v[t]),w=JSON.stringify(m)!==JSON.stringify(p.LastHeaderGroups||[]),x=JSON.stringify(u)!==JSON.stringify(f);for(let t=0;t<y.length;t++){let e=y[t],i=r.elementAddresses.indexOf(e);i>=0&&r.elementAddresses.splice(i,1),delete r.elementDescriptors[e],r.elementHashes&&e in r.elementHashes&&delete r.elementHashes[e]}for(let t=0;t<u.length;t++){let e=u[t],i=r.elementAddresses.indexOf(e);i>=0&&r.elementAddresses.splice(i,1);let n=r.elementDescriptors[e];if(n){let t=h[e];n.Name=t.Name,n.DataType=t.DataType,n.IsTabular=t.IsTabular,n._DynamicColumnGeneratorIndex=t._DynamicColumnGeneratorIndex,n._DynamicColumnHeaderGroup=t._DynamicColumnHeaderGroup,n.PictForm||(n.PictForm={}),Object.assign(n.PictForm,t.PictForm),h[e]=n}else r.elementDescriptors[e]=h[e];r.elementHashes||(r.elementHashes={}),r.elementHashes[e]=e}let S,P=l.InsertAt||"End";if("Start"===P)S=0;else if("object"==typeof P&&null!==P&&"string"==typeof P.After){let t=r.elementAddresses.indexOf(P.After);S=t<0?r.elementAddresses.length:t+1}else S=r.elementAddresses.length;for(let t=0;t<u.length;t++)r.elementAddresses.splice(S+t,0,u[t]);p.LastHashes=u.slice(),p.LastHeaderGroups=m.slice(),(b.length||y.length||w||x)&&(c=!0),o.push.apply(o,b),a.push.apply(a,y),s.push.apply(s,T)}return{added:o,removed:a,unchanged:s,changed:c}}addDescriptor(t){t.DataAddress in this.manifest.Descriptors&&this.log.info("[ERROR] Duplicate descriptor hash found:",t),this.manifest.Descriptors[t.DataAddress]=t}getManifestSection(t){for(const e of this.manifest.Sections)if(e.Hash===t)return e;const e={Name:t,Hash:t,Solvers:[],Groups:[]};return this.manifest.Sections.push(e),e}getManifestGroup(t,e){let i="string"==typeof t?this.getManifestSection(t):t;for(const t of i.Groups)if(t.Hash===e)return t;const n={Name:e,Hash:e,Rows:[],RecordSetSolvers:[]};return i.Groups.push(n),n}tabularRowLint(t){return t?!!t.Form||(this.log.error("Form is missing from record:",t),!1):(this.log.error("Record is missing from record:",t),!1)}decorateChartDescriptorFromTabularRow(t,e,i){let n=t,r=e,o=i||"";if(n.ChartType&&(r.PictForm.ChartType=n.ChartType),""==o&&(n.ChartLabelsAddress&&(r.PictForm.ChartLabelsAddress=n.ChartLabelsAddress),n.ChartLabelsSolver&&(r.PictForm.ChartLabelsSolver=n.ChartLabelsSolver),n.ChartDatasetsAddress&&(r.PictForm.ChartDatasetsAddress=n.ChartDatasetsAddress)),n["ChartDatasetsSolver".concat(o)]){let t={DataSolver:n["ChartDatasetsSolver".concat(o)]};n["ChartDatasetsLabel".concat(o)]?t.Label=n["ChartDatasetsLabel".concat(o)]:t.Label="Data",n["ChartDataSetsSolverChartType".concat(o)]&&(t.ChartType=n["ChartDataSetsSolverChartType".concat(o)]),r.PictForm.ChartDatasetsSolvers&&Array.isArray(r.PictForm.ChartDatasetsSolvers)||(r.PictForm.ChartDatasetsSolvers=[]),r.PictForm.ChartDatasetsSolvers.push(t)}}tabularRowAddDescriptor(t,e){var i,n,r,o,a,s,c,l,p,d,u,h;if("object"!=typeof e)return this.log.error("Invalid record passed to addManifestDescriptor: ".concat(e)),!1;let m=JSON.parse(JSON.stringify(e));m["Input Hash"]=(null===(i=m["Input Hash"])||void 0===i||null===(n=i.trim)||void 0===n?void 0:n.call(i))||"DefaultHash".concat(this.defaultHashCounter++),m["Input Address"]=(null===(r=m["Input Address"])||void 0===r||null===(o=r.trim)||void 0===o?void 0:o.call(r))||"DefaultData.InputHash_".concat(m["Input Hash"]),m["Input Name"]=(null===(a=m["Input Name"])||void 0===a||null===(s=a.trim)||void 0===s?void 0:s.call(a))||"Auto Input ".concat(m["Input Hash"]),m.DataType=(null===(c=m.DataType)||void 0===c||null===(l=c.trim)||void 0===l?void 0:l.call(c))||"String";const g={Hash:m["Input Hash"],Name:m["Input Name"],DataAddress:m["Input Address"],DataType:m.DataType,PictForm:{}};if(m.Default&&(g.Default=m.Default),m.InputType&&(g.PictForm.InputType=m.InputType),m.Row&&(g.PictForm.Row=m.Row),m.Width&&(g.PictForm.Width=m.Width),m["Input Notes"]&&(g.PictForm.SpreadsheetNotes=m["Input Notes"]),m.Description&&(g.Description=m.Description),m.Units&&(g.PictForm.Units=m.Units),m.Tooltip&&(g.PictForm.Tooltip=m.Tooltip),"Option"==g.PictForm.InputType&&m["Input Extra"]){let t=[],e=m["Input Extra"].split(",");for(let i=0;i<e.length;i++)if(""!=e[i].trim()){let n=e[i].split("^");2==n.length?t.push({id:n[0].trim(),text:n[1].trim()}):t.push({id:e[i].trim(),text:e[i].trim()})}t.length>0&&(g.PictForm.SelectOptions=t)}if(("TabSectionSelector"==g.PictForm.InputType||"TabGroupSelector"==g.PictForm.InputType)&&m["Input Extra"]){let t=[],e=[],i=m["Input Extra"].split(",");for(let n=0;n<i.length;n++)if(""!=i[n].trim()){let r=i[n].split("^");r.length>=2?(t.push(r[0].trim()),e.push(r[1].trim())):(t.push(r[0].trim()),e.push(r[0].trim()))}t.length>0&&("TabSectionSelector"==g.PictForm.InputType?(g.PictForm.TabSectionSet=t,g.PictForm.TabSectionNames=e):"TabGroupSelector"==g.PictForm.InputType&&(g.PictForm.TabGroupSet=t,g.PictForm.TabGroupNames=e))}if("TriggerGroup"in m&&"string"==typeof m.TriggerGroup&&""!=m.TriggerGroup){if(Array.isArray(g.PictForm.Providers)||(g.PictForm.Providers=[]),g.PictForm.Providers.push("Pict-Input-AutofillTriggerGroup"),!Array.isArray(g.PictForm.AutofillTriggerGroup)){const t=g.PictForm.AutofillTriggerGroup;g.PictForm.AutofillTriggerGroup=[],t&&g.PictForm.AutofillTriggerGroup.push(t)}const t=m.TriggerGroup.split(","),e="TriggerAddress"in m?m.TriggerAddress.split(","):[],i="TriggerAllInputs"in m?m.TriggerAllInputs.split(","):[];for(let n=0;n<t.length;n++){var f,D,y,v;const r={TriggerGroupHash:t[n].trim(),MarshalEmptyValues:!!m.MarshalEmptyValues},o=null===(f=e[n])||void 0===f||null===(D=f.trim)||void 0===D?void 0:D.call(f);o&&(r.TriggerAddress=o);const a=null===(y=i[n])||void 0===y||null===(v=y.trim)||void 0===v?void 0:v.call(y);null==a||"true"!=a.toLowerCase()&&"x"!=a.toLowerCase()&&"1"!=a.toLowerCase()||(r.TriggerAllInputs=!0),"Option"==g.PictForm.InputType&&(r.SelectOptionsRefresh=!0),g.PictForm.AutofillTriggerGroup.push(r)}}"string"==typeof m.Entity&&m.Entity.trim()&&("string"==typeof m.EntityColumnFilter&&m.EntityColumnFilter.trim()||"string"==typeof m.EntityFilterTemplate&&m.EntityFilterTemplate.trim())&&"string"==typeof m.EntityDestination&&m.EntityDestination.trim()&&(Array.isArray(g.PictForm.Providers)||(g.PictForm.Providers=[]),g.PictForm.Providers.includes("Pict-Input-EntityBundleRequest")||g.PictForm.Providers.push("Pict-Input-EntityBundleRequest"),g.PictForm.EntitiesBundle=[{Entity:m.Entity,Filter:m.EntityFilterTemplate&&m.EntityFilterTemplate.trim()||"FBV~".concat(m.EntityColumnFilter.trim(),"~EQ~{~D:Record.Value~}"),Destination:m.EntityDestination,SingleRecord:m.EntitySingleRecord&&"false"!==m.EntitySingleRecord}]);let b=t;if("SubManifest"in m&&m.SubManifest&&"TabularAddress"!=m.InputType&&(g.IsTabular=!0,m.SubManifest in t.manifest.ReferenceManifests||(t.referenceManifestFactories[m.SubManifest]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",{Manifest:{Scope:m.SubManifest}},"".concat(this.UUID,"-").concat(m.SubManifest)),t.manifest.ReferenceManifests[m.SubManifest]=t.referenceManifestFactories[m.SubManifest].manifest),t=t.referenceManifestFactories[m.SubManifest]),"Decimal Precision"in m&&m["Decimal Precision"]&&""!=m["Decimal Precision"])try{g.PictForm.DecimalPrecision=parseInt(m["Decimal Precision"])}catch(t){this.log.error("Failed to parse Decimal Precision for ".concat(m["Input Hash"],": ").concat(t))}const T=null===(p=m["Section Name"])||void 0===p||null===(d=p.trim)||void 0===d?void 0:d.call(p);let w=this.sanitizeObjectKey(T||"Default_Section");m["Section Hash"]&&""!=m["Section Hash"]&&(w=this.sanitizeObjectKey(m["Section Hash"])),g.PictForm.Section=w;const x=b.getManifestSection(w);T&&(x.Name=T),m["Section CSS"]&&(x.CSSClass=m["Section CSS"]);const S=null===(u=m["Group Name"])||void 0===u||null===(h=u.trim)||void 0===h?void 0:h.call(u);let P=this.sanitizeObjectKey(S||"Default_Group");m["Group Hash"]&&""!=m["Group Hash"]&&(P=this.sanitizeObjectKey(m["Group Hash"])),g.PictForm.Group=P;const A=b.getManifestGroup(x,P);if(A.Name=S||"",m["Group CSS"]&&(A.CSSClass=m["Group CSS"]),m["Group Layout"]&&(A.Layout=m["Group Layout"]),m["Minimum Row Count"])try{A.MinimumRowCount=parseInt(m["Minimum Row Count"])}catch(t){this.log.error("Failed to parse Minimum Row Count for ".concat(m["Input Hash"],": ").concat(t))}if(m["Maximum Row Count"])try{A.MaximumRowCount=parseInt(m["Maximum Row Count"])}catch(t){this.log.error("Failed to parse Maximum Row Count for ".concat(m["Input Hash"],": ").concat(t))}if(!m.HideTabularEditingControls||"1"!=m.HideTabularEditingControls&&"true"!=m.HideTabularEditingControls.toLowerCase()&&"t"!=m.HideTabularEditingControls.toLowerCase()&&"y"!=m.HideTabularEditingControls.toLowerCase()||(A.HideTabularEditingControls=!0),m["Group Show Title"]&&""!=m["Group Show Title"])switch(m["Group Show Title"].toLowerCase()){case 1:case"1":case"true":A.ShowTitle=!0;break;case 0:case"0":case"false":A.ShowTitle=!1}if(g.Hash in t.manifest.Descriptors&&this.log.info("[ERROR] Duplicate descriptor hash found ".concat(g.Hash,". This will overwrite the original descriptor.")),"TabularAddress"==m.InputType&&(A.Layout="Tabular",this.log.info("Group ".concat(A.Hash," RSA ").concat(m.GroupRecordSetAddress," -> Descriptor ").concat(g.DataAddress)),m.GroupRecordSetAddress&&(m.GroupRecordSetAddress,1)&&m.GroupRecordSetAddress.length>0?A.RecordSetAddress=m.GroupRecordSetAddress:A.RecordSetAddress=g.DataAddress,A.RecordManifest=m.SubManifest),m.Equation&&!this._isTrue(m.Validator)){const t=m.Equation.trim();let e=1;if(m["Equation Ordinal"])try{e=parseInt(m["Equation Ordinal"])}catch(t){this.log.error("Failed to parse Equation Ordinal for ".concat(m["Input Hash"],": ").concat(t))}this.log.trace("Adding solver to ".concat(m.Form," --\x3e ").concat(A.Name," for ").concat(m["Input Hash"]," Ordinal ").concat(e,": ").concat(m.Equation)),"Tabular"==A.Layout||"RecordSet"==A.Layout?1==e?A.RecordSetSolvers.push(t):A.RecordSetSolvers.push({Ordinal:e,Expression:t}):1==e?x.Solvers.push(t):x.Solvers.push({Ordinal:e,Expression:t})}this.onTabularRowAddDescriptor(m,x,A,g),m.DataOnly&&g.PictForm&&(g.PictForm.Group&&(g.FormGroup=g.PictForm.Group),g.PictForm.Section&&(g.FormSection=g.PictForm.Section),delete g.PictForm),"Chart"==m.InputType&&g.PictForm&&(this.decorateChartDescriptorFromTabularRow(m,g,""),this.decorateChartDescriptorFromTabularRow(m,g,"1"),this.decorateChartDescriptorFromTabularRow(m,g,"2"),this.decorateChartDescriptorFromTabularRow(m,g,"3"),this.decorateChartDescriptorFromTabularRow(m,g,"4"),this.decorateChartDescriptorFromTabularRow(m,g,"5"),this.decorateChartDescriptorFromTabularRow(m,g,"6"),this.decorateChartDescriptorFromTabularRow(m,g,"7"),this.decorateChartDescriptorFromTabularRow(m,g,"8"),this.decorateChartDescriptorFromTabularRow(m,g,"9"));const C=Object.keys(m);let I=this.fable.newManyfest();for(let t=0;t<C.length;t++){let e=C[t];if(e.startsWith("Descriptor_Extension_")){const t=e.replace("Descriptor_Extension_","");try{let i=t,n=m[e];n&&I.setValueAtAddress(g,i,n)}catch(t){this.log.error("Failed to set Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}if(e.startsWith("Descriptor_Float_Extension_")){const t=e.replace("Descriptor_Float_Extension_","");try{let i=t,n=m[e],r=parseFloat(n);isNaN(r)||(I.setValueAtAddress(g,i,r),this.log.trace("Set Float Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"] to value [").concat(r,"]")))}catch(t){this.log.error("Failed to set Float Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}if(e.startsWith("Descriptor_Integer_Extension_")){const t=e.replace("Descriptor_Integer_Extension_","");try{let i=t,n=m[e],r=parseInt(n);isNaN(r)||I.setValueAtAddress(g,i,r)}catch(t){this.log.error("Failed to set Integer Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}if(e.startsWith("Descriptor_Boolean_Extension_")){const t=e.replace("Descriptor_Boolean_Extension_","");try{let i,n=t,r=m[e];"x"!=r.toLowerCase()&&"y"!=r.toLowerCase()&&"yes"!=r.toLowerCase()&&"t"!=r.toLowerCase()&&"true"!=r.toLowerCase()&&"1"!=r||(i=!0),"n"!=r.toLowerCase()&&"no"!=r.toLowerCase()&&"f"!=r.toLowerCase()&&"false"!=r.toLowerCase()&&"0"!=r||(i=!1),!0===i||!1===i?I.setValueAtAddress(g,n,i):r&&this.log.warn("Could not parse Boolean value [".concat(r,"] for Descriptor Boolean Extension [").concat(e,"] on descriptor [").concat(g.Hash,"]"))}catch(t){this.log.error("Failed to set Boolean Descriptor Extension [".concat(e,"] on descriptor [").concat(g.Hash,"]: ").concat(t))}}}return"TabularAddress"!=m.InputType?t.addDescriptor(g):b.addDescriptor(g),g}tabularRowAddValidator(t,e){if(e.Equation){const i=e.Equation.trim();let n=1;if(e["Equation Ordinal"])try{n=parseInt(e["Equation Ordinal"])}catch(t){this.log.error("Failed to parse Equation Ordinal for ".concat(e["Input Hash"],": ").concat(t))}this.log.trace("Adding solver to ".concat(e.Form," Validation Solvers Ordinal ").concat(n,": ").concat(e.Equation)),Array.isArray(t.ValidationSolvers)||(t.ValidationSolvers=[]),1==n?t.ValidationSolvers.push(i):t.ValidationSolvers.push({Ordinal:n,Expression:i})}}onTabularRowAddDescriptor(t,e,i,n){}migrateAutofillTriggerGroupSolvers(t){for(const e of Object.values(t)){const t=e.manifest,i=[];for(const e of t.Sections||[]){if(Array.isArray(e.Solvers))for(let t=0;t<e.Solvers.length;t++){const n=e.Solvers[t],r="string"==typeof n?n:n.Expression;"string"==typeof r&&r.startsWith("TriggerGroup:")&&(i.push(n),e.Solvers.splice(t,1),--t)}for(const t of e.Groups||[])if(Array.isArray(t.RecordSetSolvers))for(let e=0;e<t.RecordSetSolvers.length;e++){const n=t.RecordSetSolvers[e],r="string"==typeof n?n:n.Expression;"string"==typeof r&&r.startsWith("TriggerGroup:")&&(i.push(n),t.RecordSetSolvers.splice(e,1),--e)}}for(const e of i){const i="string"==typeof e?e:e.Expression;let n=_slicedToArray(i.split(":"),4),r=(n[0],n[1]),o=n[2],a=n[3];if(a||(a=o,o="post"),!a||""===a.trim()){this.log.error("Skipping migration of empty TriggerGroup solver expression in manifest [".concat(t.Scope,"] for TriggerGroup [").concat(r,"]"));continue}const s=Object.values(t.Descriptors).find(t=>{var e;if(null===(e=t.PictForm)||void 0===e||!e.AutofillTriggerGroup)return!1;return(Array.isArray(t.PictForm.AutofillTriggerGroup)?t.PictForm.AutofillTriggerGroup:[t.PictForm.AutofillTriggerGroup]).some(t=>t.TriggerGroupHash===r)});if(!s){this.log.error("Could not find descriptor for TriggerGroup [".concat(r,"] in manifest [").concat(t.Scope,"] while migrating solver expression: ").concat(i));continue}const c=(Array.isArray(s.PictForm.AutofillTriggerGroup)?s.PictForm.AutofillTriggerGroup:[s.PictForm.AutofillTriggerGroup]).find(t=>t.TriggerGroupHash===r);if(!c){this.log.error("Could not find TriggerGroup entry for TriggerGroup [".concat(r,"] in descriptor [").concat(s.Hash,"] while migrating solver expression: ").concat(i));continue}let l=e;"string"==typeof e?l=a:e.Expression=a,"pre"===o.toLowerCase()?(c.PreSolvers=c.PreSolvers||[],c.PreSolvers.push(l)):(c.PostSolvers=c.PostSolvers||[],c.PostSolvers.push(l))}}}_isTrue(t){if("boolean"==typeof t)return t;if("string"==typeof t){const e=t.trim().toLowerCase();return"true"===e||"t"===e||"yes"===e||"y"===e||"1"===e}return 1==t||1==t}createManifestsFromTabularArray(t){if(!t||!Array.isArray(t))return this.log.info("Invalid records passed to generateManifests."),{};const e={};for(let i=0;i<t.length;i++){let n=t[i];if(!this.tabularRowLint(n))continue;e[n.Form]||(e[n.Form]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",{Manifest:{Form:n.Form}},"".concat(this.UUID,"-").concat(n.Form)));const r=e[n.Form];n["Form Name"]&&(r.manifest.FormName=n["Form Name"]),n["Input Hash"]&&this.tabularRowAddDescriptor(r,n),this._isTrue(n.Validator)&&(this.log.trace("Adding validator from tabular row on form ".concat(n.Form,": ").concat(n.Equation)),this.tabularRowAddValidator(r.manifest,n))}this.migrateAutofillTriggerGroupSolvers(e),this.log.info("Generated ".concat(Object.keys(e).length," manifests."));let i=Object.keys(e),n={};for(let t=0;t<i.length;t++)n[i[t]]=e[i[t]].manifest;return n}}e.exports=o,o.default_configuration={}},{"fable-serviceproviderbase":3}],88:[function(t,e,i){const n=t("fable-serviceproviderbase"),r=t("../services/ManifestFactory.js"),o=t("../providers/Pict-Provider-DynamicSolver.js"),a=t("../providers/Pict-Provider-DynamicInput.js"),s=t("../providers/Pict-Provider-DynamicInputEvents.js"),c=t("../providers/Pict-Provider-DynamicTabularData.js"),l=t("../providers/Pict-Provider-DynamicRecordSet.js"),p=t("../providers/Pict-Provider-DynamicTemplates.js"),d=t("../providers/Pict-Provider-MetatemplateGenerator.js"),u=t("../providers/Pict-Provider-MetatemplateMacros.js"),h=t("../providers/layouts/Pict-Layout-Record.js"),m=t("../providers/layouts/Pict-Layout-VerticalRecord.js"),g=t("../providers/layouts/Pict-Layout-Tabular.js"),f=t("../providers/layouts/Pict-Layout-RecordSet.js"),D=t("../providers/layouts/Pict-Layout-Chart.js"),y=t("../providers/layouts/Pict-Layout-TuiGrid.js"),v=t("../providers/layouts/Pict-Layout-Custom.js"),b=t("../providers/Pict-Provider-Informary.js");class T extends n{constructor(t,e,i){super(t,e,i),this.fable,this.log,this.UUID,this.fable.addAndInstantiateSingletonService("ManifestFactory",r.default_configuration,r),this.fable.addProviderSingleton("DynamicInput",a.default_configuration,a),this.fable.addProviderSingleton("DynamicInputEvents",s.default_configuration,s),this.fable.addProviderSingleton("DynamicSolver",o.default_configuration,o),this.fable.addProviderSingleton("DynamicTabularData",c.default_configuration,c),this.fable.addProviderSingleton("DynamicRecordSet",l.default_configuration,l),this.fable.addProviderSingleton("PictFormSectionDefaultTemplateProvider",p.default_configuration,p),this.fable.addProviderSingleton("MetatemplateGenerator",d.default_configuration,d),this.fable.addProviderSingleton("MetatemplateMacros",u.default_configuration,u),this.fable.addProviderSingleton("Pict-Layout-Record",h.default_configuration,h),this.fable.addProviderSingleton("Pict-Layout-VerticalRecord",m.default_configuration,m),this.fable.addProviderSingleton("Pict-Layout-Tabular",g.default_configuration,g),this.fable.addProviderSingleton("Pict-Layout-RecordSet",f.default_configuration,f),this.fable.addProviderSingleton("Pict-Layout-Chart",D.default_configuration,D),this.fable.addProviderSingleton("Pict-Layout-TuiGrid",y.default_configuration,y),this.fable.addProviderSingleton("Pict-Layout-Custom",v.default_configuration,v),this.fable.addProviderSingleton("Informary",b.default_configuration,b)}}e.exports=T,T.default_configuration={}},{"../providers/Pict-Provider-DynamicInput.js":43,"../providers/Pict-Provider-DynamicInputEvents.js":44,"../providers/Pict-Provider-DynamicRecordSet.js":46,"../providers/Pict-Provider-DynamicSolver.js":47,"../providers/Pict-Provider-DynamicTabularData.js":48,"../providers/Pict-Provider-DynamicTemplates.js":49,"../providers/Pict-Provider-Informary.js":51,"../providers/Pict-Provider-MetatemplateGenerator.js":55,"../providers/Pict-Provider-MetatemplateMacros.js":56,"../providers/layouts/Pict-Layout-Chart.js":78,"../providers/layouts/Pict-Layout-Custom.js":79,"../providers/layouts/Pict-Layout-Record.js":80,"../providers/layouts/Pict-Layout-RecordSet.js":81,"../providers/layouts/Pict-Layout-Tabular.js":82,"../providers/layouts/Pict-Layout-TuiGrid.js":83,"../providers/layouts/Pict-Layout-VerticalRecord.js":85,"../services/ManifestFactory.js":87,"fable-serviceproviderbase":3}],89:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~DynamicInput:","~}"),this.addPattern("{~DI:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n)}renderAsync(t,e,i,n,r,o){const a=this.pict.providers.MetatemplateGenerator,s=t.trim(),c=this.pict.views.PictFormMetacontroller,l=(c?c.manifest:this.pict.manifest).getDescriptor(s);if(!l)return this.log.error("PictTemplateControlFromDynamicManifest: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof i?i(null,""):"";const p=this.pict.views[l.PictForm.ViewHash],d=p||r,u=d?[d]:n||[this.pict];this.pict.providers.MetatemplateMacros.buildInputMacros(p,l);const h=a.getInputMetatemplateTemplateReference(p,l.DataType,l.PictForm.InputType,'getInput("'.concat(l.PictForm.GroupIndex,'","').concat(l.PictForm.RowIndex,'","').concat(l.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,l,i,u,d,o)}}},{"pict-template":36}],90:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~DynamicInputForHash:","~}"),this.addPattern("{~DIH:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){const a=this.pict.providers.MetatemplateGenerator,s=t.trim(),c=this.pict.views.PictFormMetacontroller,l=(c?c.manifest:this.pict.manifest).getDescriptorByHash(s);if(!l)return this.log.error("PictTemplateControlFromDynamicManifest: Cannot find descriptor for hash [".concat(s,"]")),"function"==typeof i?i(null,""):"";const p=this.pict.views[l.PictForm.ViewHash],d=p||r,u=d?[d]:n||[this.pict];this.pict.providers.MetatemplateMacros.buildInputMacros(p,l);const h=a.getInputMetatemplateTemplateReference(p,l.DataType,l.PictForm.InputType,'getInput("'.concat(l.PictForm.GroupIndex,'","').concat(l.PictForm.RowIndex,'","').concat(l.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,l,i,u,d,o)}}},{"pict-template":36}],91:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~SchemaValue:","~}"),this.addPattern("{~SV:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){const a=_slicedToArray(t.trim().split("^"),2),s=a[0],c=a[1],l=this.pict.views.PictFormMetacontroller,p=(l?l.manifest:this.pict.manifest).getDescriptor(s);if(!p)return this.log.error("PictTemplateGetViewSchemaValue: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof i?i(null,""):"";const d=this.pict.views[p.PictForm.ViewHash],u=d.getValueByHash(s);if(c){const t={Value:u,ParentRecord:e,View:d,Descriptor:p};return"function"!=typeof i?this.pict.parseTemplateByHash(c,t,null,n,r,o):this.pict.parseTemplateByHash(c,t,(t,e)=>t?i(t,""):i(null,e),n,r,o)}if("function"!=typeof i)return u?String(u):"";i(null,u?String(u):"")}}},{"pict-template":36}],92:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~SchemaValueForHash:","~}"),this.addPattern("{~SVH:","~}")}render(t,e,i,n,r){return this.renderAsync(t,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){const a=_slicedToArray(t.trim().split("^"),2),s=a[0],c=a[1],l=this.pict.views.PictFormMetacontroller,p=(l?l.manifest:this.pict.manifest).getDescriptorByHash(s);if(!p)return this.log.error("PictTemplateGetViewSchemaValueByHash: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof i?i(null,""):"";const d=this.pict.views[p.PictForm.ViewHash],u=d.getValueByHash(s);if(c){const t={Value:u,ParentRecord:e,View:d,Descriptor:p};return"function"!=typeof i?this.pict.parseTemplateByHash(c,t,null,n,r,o):this.pict.parseTemplateByHash(c,t,(t,e)=>t?i(t,""):i(null,e),n,r,o)}if("function"!=typeof i)return u?String(u):"";i(null,u?String(u):"")}}},{"pict-template":36}],93:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~MetacontrollerTemplateValueSet:","~}"),this.addPattern("{~MTVS:","~}")}render(t,e,i,n,r){let o,a,s,c=t.trim(),l="object"==typeof e?e:{};this.pict.LogNoisiness>4?this.log.trace("PICT Metacontroller Template [MetacontrollerTemplateValueSet]::[".concat(c,"] with tmpData:"),l):this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetacontrollerTemplateValueSet]::[".concat(c,"]"));let p=c.split(":");if(p.length<3)return this.log.warn("Metacontroller template requires 3 parameters [".concat(c,"]")),"";a=p[0],o=p[1],s=p[2],l=this.resolveStateFromAddress(s,l,i,null,n);let d=[];if(Array.isArray(l))for(let t=0;t<l.length;t++)d.push({Value:l[t],Key:t,Group:o});else if("object"==typeof l){let t=Object.keys(l);for(let e=0;e<t.length;e++)d.push({Value:l[t[e]],Key:t[e],Group:o})}else d.push({Value:l});return l=d,l?this.pict.parseTemplateSetByHash(a,l,null,i,n,r):this.pict.parseTemplateSetByHash(a,e,null,i,n,r)}renderAsync(t,e,i,n,r,o){let a,s,c=t.trim(),l="object"==typeof e?e:{},p="function"==typeof i?i:()=>"";this.pict.LogNoisiness>4?this.log.trace("PICT Template [fTemplateValueSetRenderAsync]::[".concat(c,"] with tmpData:"),l):this.pict.LogNoisiness>0&&this.log.trace("PICT Template [fTemplateValueSetRenderAsync]::[".concat(c,"]"));let d=c.split(":");if(d.length<2)return this.log.trace("PICT TemplateFromMap [fTemplateRenderAsync]::[".concat(c,"] failed because there were not three stanzas in the expression [").concat(t,"]")),i(null,"");if(a=d[0],s=d[1],!a)return this.log.warn("Pict: TemplateFromMap Render Async: TemplateFromMapHash not resolved for [".concat(c,"]")),i(null,"");l=this.resolveStateFromAddress(s,l,n,null,r);let u=[];if(Array.isArray(l))for(let t=0;t<l.length;t++)u.push({Value:l[t],Key:t});else if("object"==typeof l){let t=Object.keys(l);for(let e=0;e<t.length;e++)u.push({Value:l[t[e]],Key:t[e]})}else u.push({Value:l});return l=u,l?void this.pict.parseTemplateSetByHash(a,l,(t,e)=>t?p(t,""):p(null,e),n,r,o):void this.pict.parseTemplateSetByHash(a,e,(t,e)=>t?p(t,""):p(null,e),n,r,o)}}},{"pict-template":36}],94:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~MetaTemplateInput:","~}"),this.addPattern("{~MTI:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l=t.trim(),p=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(l,"]"));let d=l.split(":");if(d.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(l,"]")),"";o=d[0],a=d[1],s=d[2],d.length>3&&(c=d[3]);let u={Address:a,DataAddress:a,Name:o,Hash:this.fable.ManifestFactory.sanitizeObjectKey(a),DataType:s,PictForm:{InformaryDataAddress:a,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(u.PictForm.InputType=c);let h=p.dynamicInputView.getRow(0,0);for(let t=0;t<h.Inputs.length;t++)if(h.Inputs[t].Hash===u.Hash){let e=h.Inputs[t];return this.pict.parseTemplate(p.getInputMetatemplateTemplateReference(p.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[p.dynamicInputView],p.dynamicInputView,r)}u.PictForm.InputIndex=h.Inputs.length,p.dynamicInputView.sectionManifest.addDescriptor(u.Address,u),h.Inputs.push(u),this.pict.providers.MetatemplateMacros.buildInputMacros(p.dynamicInputView,u);let m=p.getInputMetatemplateTemplateReference(p.dynamicInputView,u.DataType,u.PictForm.InputType,'getInput("0","0","'.concat(u.PictForm.InputIndex,'")'));return this.pict.parseTemplate(m,u,null,[p.dynamicInputView],p.dynamicInputView,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(p,"]"));let u=p.split(":");if(u.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(p,"]")),i(null,"");a=u[0],s=u[1],c=u[2],u.length>3&&(l=u[3]);let h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);let m=d.dynamicInputView.getRow(0,0);for(let t=0;t<m.Inputs.length;t++)if(m.Inputs[t].Hash===h.Hash){let e=m.Inputs[t],n=d.getInputMetatemplateTemplateReference(d.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[d.dynamicInputView],d.dynamicInputView,o)}h.PictForm.InputIndex=m.Inputs.length,d.dynamicInputView.sectionManifest.addDescriptor(h.Address,h),m.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(d.dynamicInputView,h);let g=d.getInputMetatemplateTemplateReference(d.dynamicInputView,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));this.pict.parseTemplate(g,h,i,[d.dynamicInputView],d.dynamicInputView,o)}}},{"pict-template":36}],95:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~MetaTemplateInputWithHashAddress:","~}"),this.addPattern("{~MTIWHA:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l=t.trim(),p=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(l,"]"));let d=l.split(":");if(d.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(l,"]")),"";if(o=d[0],a=this.resolveStateFromAddress(d[1],e,i,null,n,r),"string"!=typeof a||a.length<1)return this.log.warn("MetaTemplateInput template requires a valid Address for an Address in the second parameter [".concat(l,"]")),"";s=d[2],d.length>3&&(c=d[3]);const u={Address:a,DataAddress:a,Name:o,Hash:this.fable.ManifestFactory.sanitizeObjectKey(a),DataType:s,PictForm:{InformaryDataAddress:a,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(u.PictForm.InputType=c);let h=p.dynamicInputView.getRow(0,0);for(let t=0;t<h.Inputs.length;t++)if(h.Inputs[t].Hash===u.Hash){const e=h.Inputs[t];return this.pict.parseTemplate(p.getInputMetatemplateTemplateReference(p.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[p.dynamicInputView],p.dynamicInputView,r)}u.PictForm.InputIndex=h.Inputs.length,p.dynamicInputView.sectionManifest.addDescriptor(u.Address,u),h.Inputs.push(u),this.pict.providers.MetatemplateMacros.buildInputMacros(p.dynamicInputView,u);const m=p.getInputMetatemplateTemplateReference(p.dynamicInputView,u.DataType,u.PictForm.InputType,'getInput("0","0","'.concat(u.PictForm.InputIndex,'")'));return this.pict.parseTemplate(m,u,null,[p.dynamicInputView],p.dynamicInputView,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(p,"]"));let u=p.split(":");if(u.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(p,"]")),i(null,"");if(a=u[0],s=this.resolveStateFromAddress(u[1],e,n,null,r,o),"string"!=typeof s||s.length<1)return this.log.warn("MetaTemplateInput template requires a valid Address for an Address in the second parameter [".concat(p,"]")),i(null,"");c=u[2],u.length>3&&(l=u[3]);let h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);let m=d.dynamicInputView.getRow(0,0);for(let t=0;t<m.Inputs.length;t++)if(m.Inputs[t].Hash===h.Hash){let e=m.Inputs[t],n=d.getInputMetatemplateTemplateReference(d.dynamicInputView,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[d.dynamicInputView],d.dynamicInputView,o)}h.PictForm.InputIndex=m.Inputs.length,d.dynamicInputView.sectionManifest.addDescriptor(h.Address,h),m.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(d.dynamicInputView,h);const g=d.getInputMetatemplateTemplateReference(d.dynamicInputView,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));this.pict.parseTemplate(g,h,i,[d.dynamicInputView],d.dynamicInputView,o)}}},{"pict-template":36}],96:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~InputWithView:","~}"),this.addPattern("{~IWV:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithView]::[".concat(p,"]"));let u=p.split(":");if(u.length<3)return this.log.warn("InputWithView template requires at least three parameters (ViewHash, Address and DataType) [".concat(p,"]")),"";o=u[0],a=u[1],s=u[2],c=u[3],u.length>4&&(l=u[4]);let h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);const m=this.pict.views[o];if(!m||!m.sectionManifest||"function"!=typeof m.getRow)return this.log.warn("InputWithView template requires a valid dynamic View hash [".concat(p,"]")),"";let g=m.getRow(0,0);for(let t=0;t<g.Inputs.length;t++)if(g.Inputs[t].Hash===h.Hash){let e=g.Inputs[t];return this.pict.parseTemplate(d.getInputMetatemplateTemplateReference(m,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[m],m,r)}h.PictForm.InputIndex=g.Inputs.length,m.sectionManifest.addDescriptor(h.Address,h),g.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(m,h);let f=d.getInputMetatemplateTemplateReference(m,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));return this.pict.parseTemplate(f,h,null,[m],m,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p,d=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithView]::[".concat(d,"]"));let h=d.split(":");if(h.length<3)return this.log.warn("InputWithView template requires at least three parameters (ViewHash, Address and DataType) [".concat(d,"]")),i(null,"");a=h[0],s=h[1],c=h[2],l=h[3],h.length>4&&(p=h[4]);let m={Address:c,DataAddress:c,Name:s,Hash:this.fable.ManifestFactory.sanitizeObjectKey(c),DataType:l,PictForm:{InformaryDataAddress:c,GroupIndex:0,Row:0}};this.currentInputIndex++,p&&(m.PictForm.InputType=p);const g=this.pict.views[a];if(!g||!g.sectionManifest||"function"!=typeof g.getRow)return this.log.warn("InputWithView template requires a valid dynamic View hash [".concat(d,"]")),i(null,"");let f=g.getRow(0,0);for(let t=0;t<f.Inputs.length;t++)if(f.Inputs[t].Hash===m.Hash){let e=f.Inputs[t],n=u.getInputMetatemplateTemplateReference(g,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[g],g,o)}m.PictForm.InputIndex=f.Inputs.length,g.sectionManifest.addDescriptor(m.Address,m),f.Inputs.push(m),this.pict.providers.MetatemplateMacros.buildInputMacros(g,m);let D=u.getInputMetatemplateTemplateReference(g,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")'));this.pict.parseTemplate(D,m,i,[g],g,o)}}},{"pict-template":36}],97:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~InputWithViewAndDescriptorAddress:","~}"),this.addPattern("{~IWVDA:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s=t.trim(),c=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndDescriptorAddress]::[".concat(s,"]"));let l=s.split(":");if(l.length<2)return this.log.warn("InputWithViewAndDescriptorAddress template requires two parameters (ViewHash and DescriptorAddress) [".concat(s,"]")),"";o=l[0],a=l[1];const p=this.resolveStateFromAddress(a,e,i,null,n,r);if(!p||"object"!=typeof p||Array.isArray(p)||!p.Address)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid input object at address [".concat(a,"]")),"";this._shoreUpDescriptor(p),this.currentInputIndex++;const d=this.pict.views[o];if(!d||!d.sectionManifest||"function"!=typeof d.getRow)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid dynamic View hash [".concat(s,"]")),"";let u=d.getRow(0,0);for(let t=0;t<u.Inputs.length;t++)if(u.Inputs[t].Hash===p.Hash){let e=u.Inputs[t];return this.pict.parseTemplate(c.getInputMetatemplateTemplateReference(d,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[d],d,r)}p.PictForm.InputIndex=u.Inputs.length,d.sectionManifest.addDescriptor(p.Address,p),u.Inputs.push(p),this.pict.providers.MetatemplateMacros.buildInputMacros(d,p);let h=c.getInputMetatemplateTemplateReference(d,p.DataType,p.PictForm.InputType,'getInput("0","0","'.concat(p.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,p,null,[d],d,r)}renderAsync(t,e,i,n,r,o){let a,s,c=t.trim(),l=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndDescriptorAddress]::[".concat(c,"]"));let p=c.split(":");if(p.length<2)return this.log.warn("InputWithViewAndDescriptorAddress template requires two parameters (ViewHash and DescriptorAddress) [".concat(c,"]")),i(null,"");a=p[0],s=p[1];const d=this.resolveStateFromAddress(s,e,n,null,r,o);this._shoreUpDescriptor(d),this.currentInputIndex++;const u=this.pict.views[a];if(!u||!u.sectionManifest||"function"!=typeof u.getRow)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid dynamic View hash [".concat(c,"]")),i(null,"");let h=u.getRow(0,0);for(let t=0;t<h.Inputs.length;t++)if(h.Inputs[t].Hash===d.Hash){let e=h.Inputs[t],n=l.getInputMetatemplateTemplateReference(u,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[u],u,o)}d.PictForm.InputIndex=h.Inputs.length,u.sectionManifest.addDescriptor(d.Address,d),h.Inputs.push(d),this.pict.providers.MetatemplateMacros.buildInputMacros(u,d);let m=l.getInputMetatemplateTemplateReference(u,d.DataType,d.PictForm.InputType,'getInput("0","0","'.concat(d.PictForm.InputIndex,'")'));this.pict.parseTemplate(m,d,i,[u],u,o)}_shoreUpDescriptor(t){if(!t||"object"!=typeof t||Array.isArray(t))throw new Error("Invalid descriptor object provided to shoreUpDescriptor");t.DataAddress||(t.DataAddress=t.Address),t.Hash||(t.Hash=this.fable.DataFormat.sanitizeObjectKey(t.Address)),t.Name||(t.Name=t.Hash),t.DataType||(t.DataType="String"),t.PictForm||(t.PictForm={}),t.PictForm.InformaryDataAddress||(t.PictForm.InformaryDataAddress=t.DataAddress),null==t.PictForm.GroupIndex&&(t.PictForm.GroupIndex=0),null==t.PictForm.Row&&(t.PictForm.Row=0)}}},{"pict-template":36}],98:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~InputWithViewAndHashAddress:","~}"),this.addPattern("{~IWVHA:","~}"),this.currentInputIndex=0}render(t,e,i,n,r){let o,a,s,c,l,p=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndHashAddress]::[".concat(p,"]"));let u=p.split(":");if(u.length<3)return this.log.warn("InputWithViewAndHashAddress template requires at least three parameters (ViewHash, Address and DataType) [".concat(p,"]")),"";if(o=u[0],a=u[1],s=this.resolveStateFromAddress(u[2],e,i,null,n),"string"!=typeof s||s.length<1)return this.log.warn("InputWithViewAndHashAddress template requires a valid Address for an Address in the third parameter [".concat(p,"]")),"";c=u[3],u.length>4&&(l=u[4]);const h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:c,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(h.PictForm.InputType=l);const m=this.pict.views[o];if(!m||!m.sectionManifest||"function"!=typeof m.getRow)return this.log.warn("InputWithViewAndHashAddress template requires a valid dynamic View hash as the first parameter [".concat(p,"]")),"";let g=m.getRow(0,0);for(let t=0;t<g.Inputs.length;t++)if(g.Inputs[t].Hash===h.Hash){const e=g.Inputs[t];return this.pict.parseTemplate(d.getInputMetatemplateTemplateReference(m,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")')),e,null,[m],m,r)}h.PictForm.InputIndex=g.Inputs.length,m.sectionManifest.addDescriptor(h.Address,h),g.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(m,h);const f=d.getInputMetatemplateTemplateReference(m,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));return this.pict.parseTemplate(f,h,null,[m],m,r)}renderAsync(t,e,i,n,r,o){let a,s,c,l,p,d=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndHashAddress]::[".concat(d,"]"));let h=d.split(":");if(h.length<3)return this.log.warn("InputWithViewAndHashAddress template requires at least three parameters (ViewHash, Address and DataType) [".concat(d,"]")),i(null,"");if(a=h[0],s=h[1],c=this.resolveStateFromAddress(h[2],e,n,null,r),"string"!=typeof c||c.length<1)return this.log.warn("InputWithViewAndHashAddress template requires a valid Address for an Address in the third parameter [".concat(d,"]")),i(null,"");l=h[3],h.length>4&&(p=h[4]);let m={Address:c,DataAddress:c,Name:s,Hash:this.fable.ManifestFactory.sanitizeObjectKey(c),DataType:l,PictForm:{InformaryDataAddress:c,GroupIndex:0,Row:0}};this.currentInputIndex++,p&&(m.PictForm.InputType=p);const g=this.pict.views[a];if(!g||!g.sectionManifest||"function"!=typeof g.getRow)return this.log.warn("InputWithViewAndHashAddress template requires a valid View hash as the first parameter [".concat(d,"]")),i(null,"");let f=g.getRow(0,0);for(let t=0;t<f.Inputs.length;t++)if(f.Inputs[t].Hash===m.Hash){let e=f.Inputs[t],n=u.getInputMetatemplateTemplateReference(g,e.DataType,e.PictForm.InputType,'getInput("0","0","'.concat(e.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(n,e,i,[g],g,o)}m.PictForm.InputIndex=f.Inputs.length,g.sectionManifest.addDescriptor(m.Address,m),f.Inputs.push(m),this.pict.providers.MetatemplateMacros.buildInputMacros(g,m);const D=u.getInputMetatemplateTemplateReference(g,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")'));this.pict.parseTemplate(D,m,i,[g],g,o)}}},{"pict-template":36}],99:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~PluckJoinUnique:","~}"),this.addPattern("{~PJU:","~}")}render(t,e,i,n,r){let o=t,a="object"==typeof e?e:{};this.pict.LogNoisiness>4?this.log.trace("PICT Pluck Join Unique [fDataRender]::[".concat(o,"] with tmpData:"),a):this.pict.LogNoisiness>3&&this.log.trace("PICT Pluck Join Unique [fDataRender]::[".concat(o,"]"));let s=o.split("^");if(s.length<3)return"";let c=s.shift(),l=s.shift(),p=[],d={};for(let t=0;t<s.length;t++){let e=this.resolveStateFromAddress(s[t],a,i,null,n);if(e&&Array.isArray(e))for(let t=0;t<e.length;t++){if(null===e[t]||"object"!=typeof e)continue;let i=this.pict.manifest.getValueByHash(e[t],l);i in d||(d[i]=!0,p.push(i))}else e&&(e in d||(d[e]=!0,p.push(e)))}return p.join(c)}}},{"pict-template":36}],100:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~TabularEditingControls:","~}"),this.addPattern("{~TEC:","~}")}render(t,e,i,n,r){let o=t.trim();if(!o||!e)return"";let a=this.pict.views[o];if(!a)return"";let s=e.Group,c=e.Key,l=this.pict.providers["Pict-Layout-Tabular"];return l&&"function"==typeof l._renderTabularEditingControlsHTML?l._renderTabularEditingControlsHTML(a,s,c):""}}},{"pict-template":36}],101:[function(t,e,i){const n=t("pict-template");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict,this.fable,this.log,this.addPattern("{~TabularRowLabels:","~}"),this.addPattern("{~TRL:","~}")}render(t,e,i,n,r){let o=t.trim();if(!o||!e)return"";let a=this.pict.views[o];if(!a)return"";let s=e.Group,c=e.Key,l=this.pict.providers["Pict-Layout-Tabular"];return l&&"function"==typeof l._renderTabularRowLabelsHTML?l._renderTabularRowLabelsHTML(a,s,c):""}}},{"pict-template":36}],102:[function(t,e,i){e.exports={AutoRender:!1,AutoSolveWithApp:!1,ExecuteSolversWithoutMetacontroller:!1,IncludeInMetatemplateSectionGeneration:!0,IncludeInDefaultDynamicRender:!0,DefaultRenderable:"Form-Main",DefaultDestinationAddress:"#Pict-Form-Container",Renderables:[],Templates:[],MacroTemplates:{Section:{HTMLID:' id="Section-{~D:Context[0].UUID~}" '},Group:{HTMLID:' id="Group-{~D:Context[0].UUID~}" ',PictFormLayout:' data-i-pictdynamiclayout="true" data-i-pictgroupindex="{~D:Record.GroupIndex~}" data-i-pictlayout="{~D:Record.Layout~}" ',TabularCreateRowFunctionCall:"{~P~}.views['{~D:Context[0].Hash~}'].createDynamicTableRow({~D:Record.GroupIndex~})"},Input:{Informary:' data-i-form="{~D:Context[0].formID~}" data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}" ',InformaryTabular:' data-i-form="{~D:Context[0].formID~}" data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}" data-i-container="{~D:Record.PictForm.InformaryContainerAddress~}" ',ControlAttr:' data-control="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}" ',HTMLSelector:'[data-i-form="{~D:Context[0].formID~}"][data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}"]',HTMLSelectorTabular:'[data-i-form="{~D:Context[0].formID~}"][data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}"][data-i-container="{~D:Record.PictForm.InformaryContainerAddress~}"]',HTMLSelectorControl:'[data-control="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}"]',HTMLSelectorControlTabular:'[data-control="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}"]',RawHTMLID:"{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}",HTMLName:' name="{~D:Record.Name~}" ',HTMLIDAddress:"#{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}",HTMLID:' id="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}" ',HTMLForID:' for="{~D:Context[0].UUID~}-FormInput-{~D:Record.Hash~}" ',InputFullProperties:' data-i-form="{~D:Context[0].formID~}" data-i-datum="{~D:Record.PictForm.InformaryDataAddress~}" name="{~D:Record.Name~}" ',InputChangeHandler:" onchange=\"{~P~}.views['{~D:Context[0].Hash~}'].dataChanged('{~D:Record.Hash~}')\" ",DataRequestFunction:" {~P~}.views['{~D:Context[0].Hash~}'].inputDataRequest('{~D:Record.Hash~}'); "}},TargetElementAddress:"#Form-Container-Div"}},{}],103:[function(t,e,i){const n=t("pict-view"),r=t("../../package.json"),o=t("./Pict-View-DynamicForm-DefaultConfiguration.json"),a="PendingAsyncOperation",s="onTransactionComplete",c="ReadyToFinalize";e.exports=class extends n{constructor(t,e,i){let n=Object.assign({},JSON.parse(JSON.stringify(o)),e);if(!n.Manifests)throw new Error("PictSectionForm instantiation attempt without a Manifests in pOptions.Manifest -- cannot instantiate.");if(!("Section"in n.Manifests))throw new Error("PictSectionForm instantiation attempt without a Section manifest in pOptions.Manifests -- cannot instantiate.");if("#Pict-Form-Container"===n.DefaultDestinationAddress&&(n.DefaultDestinationAddress="#Pict-Form-Container-".concat(n.Hash)),"Form-Main"===n.DefaultRenderable&&(n.DefaultRenderable="Form-".concat(n.Hash)),n.SectionTemplateHash||(n.SectionTemplateHash="Pict-Form-Template-".concat(n.Hash)),n.Renderables.length<1&&n.Renderables.push({RenderableHash:n.DefaultRenderable,TemplateHash:n.SectionTemplateHash,RenderMethod:"replace"}),super(t,n,i),!this.fable.PictDynamicFormDependencyManager)throw new Error("PictSectionForm instantiation attempt without a PictDynamicFormDependencyManager service in fable -- cannot instantiate.");if(this._PackagePictView=this._Package,this._Package=r,this.sectionDefinition=this.options,this.sectionManifest=this.fable.instantiateServiceProviderWithoutRegistration("Manifest",this.options.Manifests.Section),this.sectionSolvers=[],"Solvers"in this.options&&Array.isArray(this.options.Solvers))for(let t=0;t<this.options.Solvers.length;t++)"string"==typeof this.options.Solvers[t]&&this.sectionSolvers.push(this.options.Solvers[t]);if(this.formsTemplateSetPrefix="PFT-".concat(this.Hash,"-").concat(this.UUID),"MetaTemplates"in this.options&&Array.isArray(this.options.MetaTemplates))for(let t=0;t<this.options.MetaTemplates.length;t++){let e=this.options.MetaTemplates[t];if("HashPostfix"in e&&"Template"in e){let t="".concat(this.formsTemplateSetPrefix).concat(e.HashPostfix);this.pict.TemplateProvider.addTemplate(t,e.Template)}else this.log.warn("MetaTemplate entry ".concat(t," in PictSectionForm [").concat(this.UUID,"]::[").concat(this.Hash,"] does not have a Hash and Template property; custom template skipped."))}this.customDefaultTemplatePrefix=null,this.formID="Pict-Form-".concat(this.Hash,"-").concat(this.UUID),this.viewMarshalDestination=null,this.initialBundleLoaded=!1,this.fable.ManifestFactory.initializeFormGroups(this),this._LoopDetectionData={}}get defaultTemplatePrefix(){return this.customDefaultTemplatePrefix?this.customDefaultTemplatePrefix:this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.formTemplatePrefix:this.pict.providers.MetatemplateGenerator.baseTemplatePrefix}dataChanged(t){let e=this.getInputFromHash(t);if(this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] dataChanged event for input [").concat(t,"].")),t){let i=this.sectionManifest.resolveHashAddress(t);const n=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(n);try{let t=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(t,this.formID,this.sectionManifest,i);let r=this.sectionManifest.getValueByHash(t,i),o=this.getInputProviderList(e);for(let t=0;t<o.length;t++)this.pict.providers[o[t]]?this.pict.providers[o[t]].onDataChange(this,e,r,e.Macro.HTMLSelector,n):this.log.error("Dynamic form dataChanged [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(o[t],"] for input [").concat(e.Hash,"]."))}catch(e){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(t,") data from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(n)}}else this.marshalFromView();this.pict.PictApplication.solve(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():this.marshalToView(),this.pict.providers.FormPersistence&&this.pict.providers.FormPersistence.onFormDataChanged()}dataChangedTabular(t,e,i){this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] dataChangedTabular event for group ").concat(t," input ").concat(e," row ").concat(i,"."));let n=this.getTabularRecordInput(t,e);if(void 0!==t&&void 0!==e&&void 0!==i&&"object"==typeof n){let e=n.Address;const r=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(r);try{let t=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(t,this.formID,this.sectionManifest,e,i);let o=this.pict.providers.Informary.getComposedContainerAddress(n.PictForm.InformaryContainerAddress,i,n.PictForm.InformaryDataAddress),a=this.sectionManifest.getValueByHash(t,o),s=n.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(i,'"]'),c=this.getInputProviderList(n);for(let t=0;t<c.length;t++)this.pict.providers[c[t]]?this.pict.providers[c[t]].onDataChangeTabular(this,n,a,s,i,r):this.log.error("Dynamic form dataChangedTabular [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(c[t],"] for input [").concat(n.Hash,"] row ").concat(i,"."))}catch(e){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(n.Hash,") tabular data for group ").concat(t," row ").concat(i," from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(r)}}else this.marshalFromView();this.pict.PictApplication.solve(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():this.marshalToView(),this.pict.providers.FormPersistence&&this.pict.providers.FormPersistence.onFormDataChanged()}setDataByInput(t,e){const i=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(i);try{this.sectionManifest.setValueByHash(this.getMarshalDestinationObject(),t.Hash,e);let n=e,r=t.Macro.HTMLSelector,o=this.getInputProviderList(t);for(let e=0;e<o.length;e++)this.pict.providers[o[e]]?this.pict.providers[o[e]].onDataChange(this,t,n,r,i):this.log.error("Dynamic form setDataByInput [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(o[e],"] for input [").concat(t.Hash,"]."))}catch(e){this.log.error("Dynamic form setDataByInput [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(t.Hash,") from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(i)}return!1}setDataTabularByHash(t,e,i,n){let r=this.getGroup(t);if(!r)return this.log.warn("PICT View Metatemplate Helper setDataTabularByHash ".concat(t," was not a valid group.")),!1;let o=-1,a=Object.keys(r.supportingManifest.elementDescriptors);for(let t=0;t<a.length;t++)if(r.supportingManifest.elementDescriptors[a[t]].Hash===e){o=t;break}if(o<0)return this.log.warn("PICT View Metatemplate Helper setDataTabularByHash Group ".concat(t," did not have hash [").concat(e,"].")),!1;let s=this.getTabularRecordInput(t,o);if(void 0!==t&&void 0!==i&&"object"==typeof s){const r=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(r);try{let t=this.getMarshalDestinationObject(),e=this.pict.providers.Informary.getComposedContainerAddress(s.PictForm.InformaryContainerAddress,i,s.PictForm.InformaryDataAddress);this.sectionManifest.setValueByHash(t,e,n);let o=n,a=s.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(i,'"]'),c=this.getInputProviderList(s);for(let t=0;t<c.length;t++)this.pict.providers[c[t]]?this.pict.providers[c[t]].onDataChangeTabular(this,s,o,a,i,r):this.log.error("Dynamic form setDataTabularByHash [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(c[t],"] for input [").concat(s.Hash,"] row ").concat(i,"."))}catch(n){this.log.error("Dynamic form setDataTabularByHash [".concat(this.Hash,"]::[").concat(this.UUID,"] gross error marshaling specific (").concat(e,") tabular data for group ").concat(t," row ").concat(i," from view in dataChanged event: ").concat(n))}finally{this.finalizeTransaction(r)}}return!1}getMarshalDestinationAddress(){return this.viewMarshalDestination||this.pict.providers.DataBroker.marshalDestination}getMarshalDestinationObject(){return this.pict.providers.DataBroker.resolveMarshalDestinationObject(this.viewMarshalDestination)}getValueByHash(t){return this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),t)}getTabularValueByHash(t,e,i){const n=this.getTabularRecordInput(t,e),r=this.pict.providers.Informary.getComposedContainerAddress(n.PictForm.InformaryContainerAddress,i,n.PictForm.InformaryDataAddress);return this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),r)}onMarshalToView(){const t=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(t);try{let e=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalDataToForm(e,this.formID,this.sectionManifest),this.runLayoutProviderFunctions("onDataMarshalToForm",t),this.runInputProviderFunctions("onDataMarshalToForm",null,null,t)}catch(t){this.log.error("Gross error marshaling data to view: ".concat(t))}finally{this.finalizeTransaction(t)}return super.onMarshalToView()}manualMarshalDataToViewByInput(t,e){const i="string"==typeof e?e:this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(i);try{this.pict.providers.Informary.manualMarshalDataToFormByInput(t),this.runLayoutProviderFunctions("onDataMarshalToForm",i),this.runInputProviderFunctions("onDataMarshalToForm",t.Hash,null,i)}catch(t){this.log.error("Gross error marshaling data to view: ".concat(t))}finally{i!==e&&this.finalizeTransaction(i)}}manualMarshalTabularDataToViewByInput(t,e,i){const n="string"==typeof i?i:this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(n);try{this.pict.providers.Informary.manualMarshalTabularDataToFormByInput(t,e),this.runLayoutProviderFunctions("onDataMarshalToForm",n),this.runInputProviderFunctions("onDataMarshalToForm",t.Hash,e,n)}catch(t){this.log.error("Gross error marshaling tabular data to view: ".concat(t))}finally{n!==i&&this.finalizeTransaction(n)}}onMarshalFromView(){try{let t=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(t,this.formID,this.sectionManifest)}catch(t){this.log.error("Gross error marshaling data from view: ".concat(t))}return super.onMarshalFromView()}onAfterMarshalToForm(){const t=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(t);try{this.runInputProviderFunctions("onAfterMarshalToForm",null,null,t)}catch(t){this.log.error("Gross error running after marshal to form: ".concat(t))}finally{this.finalizeTransaction(t)}}onSolve(){return this.options.ExecuteSolversWithoutMetacontroller&&this.pict.providers.DynamicSolver.solveViews([this.Hash]),super.onSolve()}onBeforeRender(t){return this.initialBundleLoaded||(Array.isArray(this.sectionDefinition.InitialBundle)&&this.pict.EntityProvider.processBundle(this.sectionDefinition.InitialBundle),this.initialBundleLoaded=!0),super.onBeforeRender(t)}onBeforeRenderAsync(t,e){super.onBeforeRenderAsync(e=>{if(!this.initialBundleLoaded){if(Array.isArray(this.sectionDefinition.InitialBundle))return void this.pict.EntityProvider.gatherDataFromServer(this.sectionDefinition.InitialBundle,i=>{i&&this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to load initial bundle: ").concat(i)),setTimeout(()=>t(e),0)});this.initialBundleLoaded=!0}return t(e)},e)}onAfterRender(t){let e=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(e);try{this.runLayoutProviderFunctions("onGroupLayoutInitialize",e),this.runInputProviderFunctions("onInputInitialize",null,null,e,!0)}catch(t){this.log.error("Gross error running after render: ".concat(t.message||t))}finally{this.finalizeTransaction(e)}return super.onAfterRender(t)}runLayoutProviderFunctions(t,e){const i="string"==typeof e?e:this.fable.getUUID(),n=this.pict.TransactionTracking.registerTransaction(i);let r=this.pict.ContentAssignment.getElement("".concat(this.sectionDefinition.DefaultDestinationAddress,' [data-i-pictdynamiclayout="true"]'));for(let e=0;e<r.length;e++){let e=r[0].getAttribute("data-i-pictgroupindex"),i=r[0].getAttribute("data-i-pictlayout");if(isNaN(e)||e<0){this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions ".concat(e," was not a valid group index."));continue}let o=this.getGroup(e);if(!o){this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions for group ".concat(e," was not a valid group."));continue}if(!i||"string"!=typeof i){this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions for group ".concat(o," layout [").concat(i,"] was not a valid layout."));continue}let a=this.pict.providers.MetatemplateGenerator.getGroupLayoutProvider(this,o);if(a&&t in a){let r=a[t];this.pict.TransactionTracking.checkEvent(n.TransactionKey,"G".concat(e,"-L").concat(i),t)&&r.call(a,this,o)}}i!==e&&this.finalizeTransaction(i)}_trackInfiniteLoop(t,e,i){this._LoopDetectionData[t]=this._LoopDetectionData[t]||{};const n="".concat(null!=e?e:"","::").concat(null!=i?i:""),r=Date.now();return this._LoopDetectionData[t][n]=this._LoopDetectionData[t][n]||{Count:0,Timestamp:r},r-this._LoopDetectionData[t][n].Timestamp>1e3&&(this._LoopDetectionData[t][n].Count=0,this._LoopDetectionData[t][n].Timestamp=r),this._LoopDetectionData[t][n].Count+=1,this._LoopDetectionData[t][n]}runInputProviderFunctions(t,e,i,n,r){const o=this._trackInfiniteLoop(t,e,i);if(r&&o.Count>10)return void this.log.fatal(" !!!!!! Infinite loop detected in runInputProviderFunctions for function [".concat(t,"] on input [").concat(e,"] row [").concat(i,"] in form [").concat(this.Hash,"]::[").concat(this.UUID,"]. Aborting further processing."),{Stack:(new Error).stack});const a="string"==typeof n?n:this.fable.getUUID(),s=this.pict.TransactionTracking.registerTransaction(a);for(let n=0;n<this.sectionDefinition.Groups.length;n++){let r=this.sectionDefinition.Groups[n];if(Array.isArray(r.Rows))for(let i=0;i<r.Rows.length;i++){let n=r.Rows[i];for(let o=0;o<n.Inputs.length;o++){let c=n.Inputs[o];if(c&&c.PictForm&&(!e||e===c.Hash)){let e=this.getInputProviderList(c);for(let n=0;n<e.length;n++)if(this.pict.providers[e[n]]){let o=this.sectionManifest.resolveHashAddress(c.Hash),l=this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),o);try{this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] running provider [").concat(e[n],"] function [").concat(t,"] for input [").concat(c.Hash,"].")),("Option"==c.PictForm.InputType||this.pict.TransactionTracking.checkEvent(s.TransactionKey,"I".concat(c.Hash,"-P").concat(e[n]),t))&&this.pict.providers[e[n]][t](this,r,i,c,l,c.Macro.HTMLSelector,a)}catch(i){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to run provider [").concat(e[n],"] function [").concat(t,"] for input [").concat(c.Hash,"] with error: ").concat(i))}}else this.log.error("Dynamic form runInputProviderFunctions core [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(e[n],"] for input [").concat(c.Hash,"]."))}}}if(r.supportingManifest){let n=Object.keys(r.supportingManifest.elementDescriptors);for(let o=0;o<n.length;o++){let c=this.getTabularRecordSet(r.GroupIndex);if(c&&Array.isArray(c)){let l=r.supportingManifest.elementDescriptors[n[o]];if(l&&l.PictForm&&(!e||e===l.Hash)){let e=this.getInputProviderList(l);for(let n=0;n<e.length;n++){let o=[];if(null!=i)i<c.length?o.push(i):this.log.error("Dynamic form runInputProviderFunctions [".concat(this.Hash,"]::[").concat(this.UUID,"] row index ").concat(i," is out of bounds for input [").concat(l.Hash,"] with ").concat(c.length," rows."));else for(let t=0;t<c.length;t++)o.push(t);for(const c of o)if(!this.pict.providers[e[n]]||null!=i&&i!==c)this.log.error("Dynamic form runInputProviderFunctions supporting [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(e[n],"] for input [").concat(l.Hash,"]").concat(null!=i?" in row ".concat(i):"","."));else{let i=this.pict.providers.Informary.getComposedContainerAddress(l.PictForm.InformaryContainerAddress,c,l.PictForm.InformaryDataAddress),o=this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),i);try{this.pict.TransactionTracking.checkEvent(s.TransactionKey,"TI".concat(l.Hash,"-P").concat(e[n],"-R").concat(c),t)&&this.pict.providers[e[n]][t+"Tabular"](this,r,l,o,l.Macro.HTMLSelectorTabular,c,a)}catch(i){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to run provider [").concat(e[n],"] function [").concat(t,"] for input [").concat(l.Hash,"] with error: ").concat(i))}}}}}}}}n!==a&&this.finalizeTransaction(a)}checkViewSpecificTemplate(t){return this.getViewSpecificTemplateHash(t)in this.pict.TemplateProvider.templates}getViewSpecificTemplateHash(t){return"".concat(this.formsTemplateSetPrefix).concat(t)}checkThemeSpecificTemplate(t){return this.getThemeSpecificTemplateHash(t)in this.pict.TemplateProvider.templates}getThemeSpecificTemplateHash(t){return"".concat(this.defaultTemplatePrefix).concat(t)}rebuildCustomTemplate(){this.pict.providers.MetatemplateGenerator.rebuildCustomTemplate(this)}getGroupIndexFromHash(t){for(let e=0;e<this.sectionDefinition.Groups.length;e++)if(this.sectionDefinition.Groups[e].Hash===t)return e;return this.log.warn("PICT View Metatemplate Helper getGroupIndexByHash could not find group with hash [".concat(t,"].")),-1}getGroupFromHash(t){for(let e=0;e<this.sectionDefinition.Groups.length;e++)if(this.sectionDefinition.Groups[e].Hash===t)return this.sectionDefinition.Groups[e];return this.log.warn("PICT View Metatemplate Helper getGroupByHash could not find group with hash [".concat(t,"].")),!1}getGroup(t){return isNaN(t)?(this.log.warn("PICT View Metatemplate Helper getGroup ".concat(t," was expecting a number.")),!1):t>this.sectionDefinition.Groups.length?(this.log.warn("PICT View Metatemplate Helper getGroup ".concat(t," was out of bounds.")),!1):this.sectionDefinition.Groups[t]}getGroups(){return Array.isArray(this.sectionDefinition.Groups)?this.sectionDefinition.Groups:[]}getRow(t,e){let i=this.getGroup(t);return!!i&&(isNaN(e)?(this.log.warn("PICT View Metatemplate Helper getRow ".concat(e," was expecting a number.")),!1):e>i.Rows.length?[]:i.Rows[e])}getRowKeyValuePair(t,e){return{Key:t,Value:this.getRow(t,e),Group:this.getGroup(t)}}getInput(t,e,i){let n=this.getRow(t,e);return!!n&&(isNaN(i)?(this.log.warn("PICT View Metatemplate Helper getInput ".concat(i," was expecting a number.")),!1):i>n.Inputs.length?(this.log.warn("PICT View Metatemplate Helper getInput ".concat(i," was out of bounds.")),!1):n.Inputs[i])}getInputProviderList(t){if(!("PictForm"in t))return[];if("Providers"in t.PictForm&&Array.isArray(t.PictForm.Providers)){let e=this.pict.providers.DynamicInput.getDefaultInputProviders(this,t);return e.length>0?e.concat(t.PictForm.Providers):t.PictForm.Providers}return this.pict.providers.DynamicInput.getDefaultInputProviders(this,t)}getInputFromHash(t){return this.sectionManifest.getDescriptorByHash(t)}inputDataRequest(t,e){return this.pict.providers.DynamicInputEvents.inputDataRequest(this,t,e)}inputEvent(t,e,i){return this.pict.providers.DynamicInputEvents.inputEvent(this,t,e,i)}globalInputEvent(t,e,i){this.manifestInputEvent(t,e,i)}manifestInputEvent(t,e,i){const n=i&&"string"==typeof i?i:this.fable.getUUID(),r=Object.keys(this.sectionManifest.elementHashes);for(let n=0;n<r.length;n++)r[n]in e||(e[r[n]]=!0,this.inputEvent(r[n],t,i));i!==n&&this.finalizeTransaction(n)}inputDataRequestTabular(t,e,i,n){return this.pict.providers.DynamicInputEvents.inputDataRequestTabular(this,t,e,i,n)}inputEventTabular(t,e,i,n,r){return this.pict.providers.DynamicInputEvents.inputEventTabular(this,t,e,i,n,r)}registerEventTransactionAsyncOperation(t,e){this.pict.TransactionTracking.pushToTransactionQueue(t,e,a)}eventTransactionAsyncOperationComplete(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=0,o=!1;for(let t=0;t<i.length;t++){const s=i[t];s.Type===a&&(s.Data===e?(i.splice(t,1),++r,--t):++n),s.Type===c&&(o=!0)}if(0!==r){if(o&&0===n){for(let t=0;t<i.length;t++){const e=i[t];if(e.Type===s){if(i.splice(t,1),--t,"function"!=typeof e.Data){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback was not a function.");continue}try{e.Data()}catch(t){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback error: ".concat(t),{Stack:t.stack})}}}delete this.pict.TransactionTracking.transactions[t]}return r>0}this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete ".concat(t," could not find async operation with hash ").concat(e,"."))}finalizeTransaction(t){this.pict.TransactionTracking.pushToTransactionQueue(t,null,c);const e=this.pict.TransactionTracking.checkTransactionQueue(t);let i=0;for(const t of e)t.Type===a&&++i;if(i>0)return this.pict.log.info("PICT View Metatemplate Helper finalizeTransaction ".concat(t," is waiting on ").concat(i," pending async operations.")),!1;for(let t=0;t<e.length;t++){const i=e[t];if(i.Type===s){if(e.splice(t,1),--t,"function"!=typeof i.Data){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback was not a function.");continue}try{i.Data()}catch(t){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback error: ".concat(t),{Stack:t.stack})}}}return delete this.pict.TransactionTracking.transactions[t],!0}registerOnTransactionCompleteCallback(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=!1;for(const t of i)t.Type===a&&++n,t.Type===c&&(r=!0);r&&0===n?e():this.pict.TransactionTracking.pushToTransactionQueue(t,e,s)}groupInputEvent(t,e,i,n){const r=this.getGroup(t);if(!r)return void this.log.warn("PICT View Metatemplate Helper subManifestInputEvent ".concat(t," is not a valid group index."));const o=n&&"string"==typeof n?n:this.fable.getUUID();if(n!==o&&this.pict.TransactionTracking.registerTransaction(o),r.Rows.length<1){const n=this.getTabularRecordSet(t);if(!Array.isArray(n))return;for(let a=0;a<n.length;a++)for(const n of Object.values(r.supportingManifest.elementDescriptors)){const s="".concat(this.Hash,"-").concat(r.Hash,"-").concat(n.Hash,"-").concat(a);s in i||(i[s]=!0,this.inputEventTabular(t,n.PictForm.InputIndex,a,e,o))}}for(const t of r.Rows||[])for(const n of t.Inputs||[]){const a="".concat(this.Hash,"-").concat(r.Hash,"-").concat(n.Hash,"-").concat(t.Hash);a in i||(i[a]=!0,this.inputEvent(n.Hash,e,o))}n!==o&&this.finalizeTransaction(o)}sectionInputEvent(t,e,i){const n=this.sectionDefinition.Groups.length,r=i&&"string"==typeof i?i:this.fable.getUUID();i!==r&&this.pict.TransactionTracking.registerTransaction(r);for(let r=0;r<n;r++)this.groupInputEvent(r,t,e,i);i!==r&&this.finalizeTransaction(r)}getTabularRecordInput(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordInput(this,t,e)}getTabularRecordInputByHash(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordInputByHash(this,t,e)}getTabularRecordData(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordData(this,t,e)}getTabularRecordSet(t){return this.pict.providers.DynamicTabularData.getTabularRecordSet(this,t)}createDynamicTableRow(t){return this.pict.providers.DynamicTabularData.createDynamicTableRow(this,t)}setDynamicTableRowIndex(t,e,i){return this.pict.providers.DynamicTabularData.setDynamicTableRowIndex(this,t,e,i)}moveDynamicTableRowDown(t,e){return this.pict.providers.DynamicTabularData.moveDynamicTableRowDown(this,t,e)}moveDynamicTableRowUp(t,e){return this.pict.providers.DynamicTabularData.moveDynamicTableRowUp(this,t,e)}deleteDynamicTableRow(t,e){return this.pict.providers.DynamicTabularData.deleteDynamicTableRow(this,t,e)}get isPictSectionForm(){return!0}},e.exports.default_configuration=o},{"../../package.json":39,"./Pict-View-DynamicForm-DefaultConfiguration.json":102,"pict-view":38}],104:[function(t,e,i){const n=t("pict-view"),r=t("../services/Pict-Service-DynamicFormDependencyManager.js"),o=t("./Pict-View-DynamicForm.js"),a="PendingAsyncOperation",s="onTransactionComplete",c="ReadyToFinalize";e.exports=class extends n{constructor(e,i,n){super(e,i,n),this.serviceType="PictFormMetacontroller",this.fable.addAndInstantiateSingletonService("PictDynamicFormDependencyManager",r.default_configuration,r),this.lastRenderedViews=[],this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix,this.manifest=this.pict.manifest,this.AutoSolveOnFirstRender=!0,this.FirstRenderCompleted=!1,this.comprehensionDestinationAddress=this.options&&"string"==typeof this.options.ComprehensionDestinationAddress&&this.options.ComprehensionDestinationAddress.length>0?this.options.ComprehensionDestinationAddress:"AppData.FormEntityComprehensions",this.SupportViewPrototypes={LifecycleVisualization:t("./support/Pict-View-PSF-LifeCycle-Visualization.js"),DebugViewer:t("./support/Pict-View-PSF-DebugViewer.js"),AppDataViewer:t("./support/Pict-View-PSF-AppData-Visualization.js"),SolverVisualization:t("./support/Pict-View-PSF-Solver-Visualization.js"),SpecificSolveVisualization:t("./support/Pict-View-PSF-SpecificSolve-Visualization.js")}}get viewMarshalDestination(){return this.pict.providers.DataBroker.marshalDestination}set viewMarshalDestination(t){this.pict.providers.DataBroker.marshalDestination=t}onMarshalFromView(){let t=Object.keys(this.fable.views);for(let e=0;e<t.length;e++)this.fable.views[t[e]].isPictSectionForm&&this.fable.views[t[e]].marshalFromView();return super.onMarshalFromView()}onMarshalToView(){let t=Object.keys(this.fable.views);for(let e=0;e<t.length;e++)this.fable.views[t[e]].isPictSectionForm&&this.fable.views[t[e]].marshalToView();return super.onMarshalToView()}gatherInitialBundle(t){return this.manifestDescription&&this.manifestDescription.InitialBundle?(this.log.info("Gathering initial bundle for ".concat(this.manifestDescription.InitialBundle.length," entities.")),this.pict.EntityProvider.gatherDataFromServer(this.manifestDescription.InitialBundle,e=>{setTimeout(()=>t(e),0)})):(this.log.info("No initial bundle to gather."),t())}onAfterInitializeAsync(t){return super.onAfterInitializeAsync(function(e){if(e)return t(e);this.gatherInitialBundle(e=>(this.bootstrapPictFormViewsFromManifest(),this.generateMetatemplate(),t(e)))}.bind(this))}onAfterRender(t){const e=super.onAfterRender(t);return this.regenerateFormSectionTemplates(),this.renderFormSections(),this.AutoSolveOnFirstRender&&!this.FirstRenderCompleted&&(this.FirstRenderCompleted=!0,this.pict.providers.DynamicSolver.solveViews()),this.options.AutoPopulateAfterRender&&this.marshalToView(),e}onSolve(){return this.pict.providers.DynamicSolver.solveViews(),super.onSolve()}runSolver(t,e){this.pict.providers.DynamicSolver.runSolver(t,e)}onBeforeFilterViews(t){return t}onAfterFilterViews(t){return t}findDynamicSectionManifestDefinition(t){var e;const i=null===(e=this.manifestDescription)||void 0===e||null===(e=e.ReferenceManifests)||void 0===e?void 0:e[t];return"object"!=typeof i?(this.log.error("findDynamicSectionManifestDefinition() could not find a section manifest with hash [".concat(t,"]")),null):i}injectManifestAndRender(t,e,i){const n=i?this.createDistinctManifest(t,i):t,r=this.injectManifest(n,e);return this.updateMetatemplateInDOM(),setTimeout(()=>{for(const t of r)t.render();if(this.options.AutoPopulateAfterRender)for(const t of r)t.marshalToView()},0),r}injectManifest(t,e){const i=e?e.startsWith("PictSectionForm-")?e:"PictSectionForm-".concat(e):null,n=Object.keys(this.pict.views),r=i?n.indexOf(i):-1,o=[];if(r>=0)for(let t=r+1;t<n.length;t++){const e=n[t];o.push({key:e,view:this.pict.views[e]}),delete this.pict.views[e]}const a=this.bootstrapAdditiveManifest(t,i);for(const t of o)this.pict.views[t.key]=t.view;this.generateMetatemplate();for(const t of a)t.rebuildCustomTemplate();return this.pict.CSSMap.injectCSS(),a}buildManifestTranslations(t){const e={};for(const i of t.Sections||[]){i.OriginalHash&&(e[i.OriginalHash]=i.Hash);for(const t of i.Groups||[])t.OriginalHash&&(e[t.OriginalHash]=t.Hash)}const i={};for(const n of Object.values((null==t?void 0:t.Descriptors)||{}))n.OriginalDataAddress&&(e[n.OriginalDataAddress]=n.DataAddress),n.OriginalHash&&(i[n.OriginalHash]=n.Hash);return{AddressTranslation:e,HashTranslation:i}}rewriteSolverExpression(t,e,i){const n=e||{},r=i||{},o=this.fable.instantiateServiceProviderIfNotExists("ExpressionParser"),a=this.viewMarshalDestination;if("string"!=typeof t||0===t.length)return t;let s={};o.tokenize(t,s);let c=Array.from(s.OriginalRawTokens),l=!1,p=[],d=0;for(let t=0;t<c.length;t++){let e=c[t],i=o.Tokenizer.getTokenType(e);if("("!==e)if(")"!==e)if(","!==e){if("Token.Symbol"===i){let i=null;if(e in n)i=n[e];else if(e in r)i=r[e];else if(a&&e.startsWith(a+".")){let t=e.substring(a.length+1);t in n?i=a+"."+n[t]:t in r&&(i=a+"."+r[t])}null!==i&&(c[t]=i,l=!0)}else if("Token.StateAddress"===i){let i=e.substring(1,e.length-1),o=null;if(i in r)o="{"+r[i]+"}";else if(i in n)o="{"+n[i]+"}";else if(a&&i.startsWith(a+".")){let t=i.substring(a.length+1);t in r?o="{"+a+"."+r[t]+"}":t in n&&(o="{"+a+"."+n[t]+"}")}null!==o&&(c[t]=o,l=!0)}else if("Token.String"===i&&p.length>0){let i=p[p.length-1],s=o.functionMap[i.name];if(s&&Array.isArray(s.AddressParameterIndices)&&s.AddressParameterIndices.includes(i.paramIndex)){let i=e.substring(1,e.length-1),o=null;if(i in n)o='"'+n[i]+'"';else if(i in r)o='"'+r[i]+'"';else if(a&&i.startsWith(a+".")){let t=i.substring(a.length+1);t in n?o='"'+a+"."+n[t]+'"':t in r&&(o='"'+a+"."+r[t]+'"')}null!==o&&(c[t]=o,l=!0)}}}else p.length>0&&p[p.length-1].depth===d-1&&p[p.length-1].paramIndex++;else d--,p.length>0&&p[p.length-1].depth===d&&p.pop();else{if(t>0){let e=c[t-1].toLowerCase();e in o.functionMap&&p.push({name:e,paramIndex:0,depth:d})}d++}}return l?o.recompose(c):t}createDistinctManifest(t,e){const i=null!=e?e:this.pict.getUUID().replace(/-/g,""),n=JSON.parse(JSON.stringify(t)),r={};for(const t of n.Sections||[]){t.Hash||(t.Hash="".concat(this.fable.getUUID())),t.OriginalHash=t.Hash,t.Hash="".concat(t.Hash,"_").concat(i),r[t.OriginalHash]=t.Hash;for(const e of t.Groups||[])e.Hash||(e.Hash="".concat(this.fable.getUUID())),e.OriginalHash=e.Hash,e.Hash="".concat(e.Hash,"_").concat(i),r[e.OriginalHash]=e.Hash}const o=n.Descriptors||{},a={};for(const t of Object.entries(o)){var s=_slicedToArray(t,2);const e=s[0],n=s[1];n.DataAddress||(n.DataAddress=e),n.OriginalDataAddress=n.DataAddress,n.DataAddress="".concat(i,".").concat(n.OriginalDataAddress),null!=n.Address&&(n.Address=n.DataAddress),n.Hash&&(n.OriginalHash=n.Hash,n.Hash="".concat(n.Hash,"_").concat(i)),n.PictForm&&(n.PictForm.Section&&(n.PictForm.Section="".concat(n.PictForm.Section,"_").concat(i)),n.PictForm.Group&&(n.PictForm.Group="".concat(n.PictForm.Group,"_").concat(i))),a[n.DataAddress]=n}n.Descriptors=a;const c={};for(const t of Object.values((null==n?void 0:n.Descriptors)||{}))t.OriginalDataAddress&&(r[t.OriginalDataAddress]=t.DataAddress),t.OriginalHash&&(c[t.OriginalHash]=t.Hash);const l=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(const t of Object.entries(r)){var p=_slicedToArray(t,2);const e=p[0],i=p[1];for(const t of Object.keys(r)){if(t===e)continue;const o=r[t].replace(new RegExp("^".concat(l(e),"\\b"),"g"),i);if(o!==r[t]){this.pict.log.info('DocumentDynamicSectionManager.createDistinctManifest: Updated address translation for "'.concat(t,'" from "').concat(r[t],'" to "').concat(o,'".')),r[t]=o;const e=Object.entries(n.Descriptors).find(e=>{let i=_slicedToArray(e,2);i[0];return i[1].OriginalDataAddress===t}),i=_slicedToArray(e,2),a=i[0];i[1];n.Descriptors[a].DataAddress=o,null!=n.Descriptors[a].Address&&(n.Descriptors[a].Address=n.Descriptors[a].DataAddress),n.Descriptors[o]=n.Descriptors[a],delete n.Descriptors[a]}}}const d=(t,e,i)=>{const n=t[e],o="string"==typeof n?n:n.Expression;if(!o)return;const a=this.rewriteSolverExpression(o,c,r);a!==o&&(this.pict.log.info("DocumentDynamicSectionManager.createDistinctManifest: Updated ".concat(i," ").concat(e,' from "').concat(o,'" to "').concat(a,'".')),"string"==typeof n?t[e]=a:t[e].Expression=a)};for(const t of n.Sections||[]){if(Array.isArray(t.Solvers)&&t.Solvers.length>0)for(let e=0;e<t.Solvers.length;e++)d(t.Solvers,e,"section solver reference");for(const e of t.Groups||[]){if(e.RecordSetAddress){let t="".concat(i,".").concat(e.RecordSetAddress);this.pict.log.info('DocumentDynamicSectionManager.createDistinctManifest: Updated group record set address from "'.concat(e.RecordSetAddress,'" to "').concat(t,'".')),e.RecordSetAddress=t}if(Array.isArray(e.RecordSetSolvers)&&e.RecordSetSolvers.length>0)for(let t=0;t<e.RecordSetSolvers.length;t++)d(e.RecordSetSolvers,t,"group solver reference")}}if(Array.isArray(n.ValidationSolvers))for(let t=0;t<n.ValidationSolvers.length;t++)d(n.ValidationSolvers,t,"validation solver reference");return n}injectManifestsByHash(t,e,i){let n=[];for(const r of t){const t=this.findDynamicSectionManifestDefinition(r);if(t){const r=this.createDistinctManifest(t,i),o=this.injectManifest(r,e);n=n.concat(o)}}this.updateMetatemplateInDOM(),setTimeout(()=>{for(const t of n)t.render()},0)}bootstrapAdditiveManifest(t,e){const i=[],n=this.bootstrapPictFormViewsFromManifest(t,e);for(const t of n){const e=this.pict.views["PictSectionForm-".concat(t.Hash)];e&&i.push(e)}return i}filterViews(t,e){let i={ViewHashList:Object.keys(this.pict.views),RenderLastRenderedViewsWithoutCustomization:!0,LastRenderedViews:this.lastRenderedViews,FilterFunction:t,SortFunction:e,FilteredViewList:[]};i=this.onBeforeFilterViews(i);for(let t=0;t<i.ViewHashList.length;t++){let e=this.fable.views[i.ViewHashList[t]];if(!i.FilterFunction||i.FilterFunction(e))if(e.isPictSectionForm){if("function"!=typeof i.FilterFunction&&!e.sectionDefinition.IncludeInDefaultDynamicRender)continue;i.FilteredViewList.push(e)}else this.options.OnlyRenderDynamicSections&&!e.options.IncludeInMetacontrollerOperations||i.FilteredViewList.push(e)}const n=i.FilteredViewList.filter(t=>t.options.DynamicPlacementMode||t.options.DynamicAnchor);for(const t of n){const e=t.options.DynamicPlacementMode||"After",n=t.options.DynamicAnchor;let r,o=i.FilteredViewList.findIndex(e=>e===t);switch(e){case"First":i.FilteredViewList.splice(o,1),i.FilteredViewList.unshift(t);break;case"Last":i.FilteredViewList.splice(o,1),i.FilteredViewList.push(t);break;case"Before":case"After":if(r=i.FilteredViewList.findIndex(t=>t.Hash==n),r<0){const t="PictSectionForm-".concat(n);r=i.FilteredViewList.findIndex(e=>e.Hash==t)}if(r<0){this.log.error("No anchor view [".concat(n,"] found to position view [").concat(t.Hash,"] [").concat(e,"]."));break}i.FilteredViewList.splice(o,1),o<r&&--r,"After"===e&&++r,i.FilteredViewList.splice(r,0,t);break;default:this.log.error("Not auto-positioning view with unknown DynamicPlacementMode: ".concat(e))}}return"function"==typeof i.SortFunction&&i.FilteredViewList.sort(i.SortFunction),i=this.onAfterFilterViews(i),i.FilteredViewList}renderSpecificFormSection(t){this.lastRenderedViews=this.filterViews(e=>e.Hash==t),this.regenerateFormSectionTemplates(),this.generateMetatemplate(),this.render()}renderDefaultFormSections(){this.lastRenderedViews=this.filterViews(t=>{var e,i;return null!==(e=null==t||null===(i=t.sectionDefinition)||void 0===i?void 0:i.IncludeInDefaultDynamicRender)&&void 0!==e&&e}),this.regenerateFormSectionTemplates(),this.generateMetatemplate(),this.render()}renderFormSections(t,e){let i=this.filterViews(t,e);for(let t=0;t<i.length;t++)i[t]!==this&&i[t].render()}marshalFormSections(t,e){let i=this.filterViews(t,e);for(let t=0;t<i.length;t++)i[t]!==this&&i[t].marshalToView()}regenerateFormSectionTemplates(t,e){let i=this.filterViews(t,e);for(let t=0;t<i.length;t++){const e=i[t];e!==this&&(e.isPictSectionForm&&e.rebuildCustomTemplate())}this.pict.CSSMap.injectCSS()}generateMetatemplate(t,e){let i="";this.formTemplatePrefix||(this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix),i+="{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Header:Pict.views["').concat(this.Hash,'"]~}');let n=this.filterViews(t,e);for(let t=0;t<n.length;t++){let e=n[t];e!==this&&(e.options.IncludeInMetatemplateSectionGeneration?(i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),e.isPictSectionForm?i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container:Pict.views["').concat(e.Hash,'"]~}'):(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}')),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}')):e.isPictSectionForm||(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}'),i+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}')))}i+="{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Footer:Pict.views["').concat(this.Hash,'"]~}'),this.pict.TemplateProvider.addTemplate(this.options.MetaTemplateHash,i)}updateMetatemplateInDOM(t,e){this.formTemplatePrefix||(this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix);let i,n=this.filterViews(t,e),r=null,o=null;for(let t=0;t<n.length;t++){let e=n[t];if(e===this)continue;if(!e.isPictSectionForm)continue;if(!e.options.IncludeInMetatemplateSectionGeneration)continue;const a=e.options.CustomTargetID||"Pict-".concat(this.UUID,"-").concat(e.options.Hash,"-Wrap");let s=this.pict.ContentAssignment.getElement("#".concat(a));if(s.length>0){const t=s[0];o&&(this.pict.ContentAssignment.insertContentBefore("#".concat(a),i),o=null,i=null),r=t;continue}let c="";e.options.IncludeInMetatemplateSectionGeneration?(c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),e.isPictSectionForm?c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container:Pict.views["').concat(e.Hash,'"]~}'):(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}')),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}')):e.isPictSectionForm||(e.options.CustomTargetID=e.options.DefaultDestinationAddress.replace(/#/,""),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(e.Hash,'"]~}'),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(e.Hash,'"]~}'),c+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(e.Hash,'"]~}'));const l=this.pict.parseTemplate(c,e,null,[this]);r?(this.pict.ContentAssignment.insertContentAfter("#".concat(r.id),l),s=this.pict.ContentAssignment.getElement("#".concat(a)),r=s[0]):(o=a,i=l)}o&&(this.pict.ContentAssignment.appendContent("#Pict-".concat(this.UUID,"-FormContainer"),i),o=null,i=null)}getSectionDefinition(t){if("object"!=typeof t)return this.log.error("getSectionDefinition() called without a valid section object."),!1;if(!("Hash"in t))return this.log.error("getSectionDefinition() called without a valid section object hash."),!1;try{let e=JSON.parse(JSON.stringify(t));return"Name"in e||(e.Name=e.Hash),"Description"in e||(e.Description="PICT Section [".concat(e.Name,"].")),"Groups"in e||(e.Groups=[]),e}catch(t){return this.log.error("getSectionDefinition() failed to parse the section object with error: ".concat(t.message||t)),!1}}getSectionViewFromHash(t){let e="string"==typeof t&&t;if(!e)return this.log.error("getSectionViewFromHash() called without a valid section hash."),!1;let i="PictSectionForm-".concat(e);return i in this.fable.views?this.fable.views[i]:(this.log.error("getSectionViewFromHash() could not find a view for section hash [".concat(e,"].")),!1)}marshalSectionToView(t){const e=(Array.isArray(t)?t:[t]).filter(t=>"string"==typeof t&&t.length>0);for(const t of e){const e=this.getSectionViewFromHash(t);e&&e.marshalToView()}}marshalInputToView(t){const e=(Array.isArray(t)?t:[t]).filter(t=>"string"==typeof t&&t.length>0);if(e.length<1)return;const i=this.filterViews();for(const t of e)for(let e=0;e<i.length;e++){const n=i[e];if(n===this||"function"!=typeof n.getInputFromHash)continue;const r=n.getInputFromHash(t);if(r){n.manualMarshalDataToViewByInput(r);break}}}clearManifestDescription(){this.manifestDescription=null}bootstrapPictFormViewsFromManifest(t,e){let i="object"==typeof t&&t,n=[];if("object"!=typeof i){if(!("DefaultFormManifest"in this.fable.settings)||"object"!=typeof this.fable.settings.DefaultFormManifest||!("Descriptors"in this.fable.settings.DefaultFormManifest))return this.log.error("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() called without a valid manifest, and no settings.DefaultFormManifest was provided."),n;i=this.fable.settings.DefaultFormManifest}if(this.manifestDescription){this.stashedManifestDescription=this.manifestDescription,this.manifestDescription=i;for(const t of Object.entries(this.manifestDescription.Descriptors||{})){var r=_slicedToArray(t,2);const e=r[0],i=r[1];this.stashedManifestDescription.Descriptors[e]?this.log.error("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() found a duplicate descriptor key [".concat(e,"] when merging manifests. The new descriptor will be skipped.")):this.stashedManifestDescription.Descriptors[e]=JSON.parse(JSON.stringify(i))}for(const t of Object.keys(this.manifestDescription.ReferenceManifests||{}))this.stashedManifestDescription.ReferenceManifests[t]?this.log.warn("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() found a duplicate reference manifest key [".concat(t,"] when merging manifests. The new reference manifest will be skipped.")):this.stashedManifestDescription.ReferenceManifests[t]=JSON.parse(JSON.stringify(this.manifestDescription.ReferenceManifests[t]));let t=this.stashedManifestDescription.Sections.findIndex(t=>t.Hash==e);t<0?t=0:++t;for(const e of this.manifestDescription.Sections||[]){const i=JSON.parse(JSON.stringify(e));this.stashedManifestDescription.Sections.splice(t,0,i),++t}}else this.manifestDescription=i;let a=this.fable.instantiateServiceProviderWithoutRegistration("Manifest",this.manifestDescription);if(this.options.AutoPopulateDefaultObject){const t=this.pict.providers.DataBroker.marshalDestinationObject;"object"==typeof t&&a.populateDefaults(t)}if("Sections"in this.manifestDescription&&Array.isArray(this.manifestDescription.Sections))for(let t=0;t<this.manifestDescription.Sections.length;t++){let e=this.getSectionDefinition(this.manifestDescription.Sections[t]);e&&n.push(e)}let s={},c=Object.keys(a.elementDescriptors);for(let t=0;t<c.length;t++){let e=a.elementDescriptors[c[t]];e&&this.pict.manifest.addDescriptor(c[t],e),"object"==typeof e&&"PictForm"in e&&"object"==typeof e.PictForm&&"Section"in e.PictForm&&"string"==typeof e.PictForm.Section&&(s[e.PictForm.Section]=!0)}let l=Object.keys(s);for(let t=0;t<l.length;t++){n.find(e=>e.Hash==l[t])||n.push(this.getSectionDefinition({Hash:l[t]}))}for(let t=0;t<n.length;t++){let e="PictSectionForm-".concat(n[t].Hash);if(e in this.fable.views){this.log.info("getSectionList() found an existing view for section [".concat(n[t].Hash,"] so will be skipped."));continue}let i=JSON.parse(JSON.stringify(n[t]));"Manifests"in i||(i.Manifests={}),i.Manifests.Section=this.manifestDescription,this.pict.addView(e,i,o)}if("PickLists"in this.manifestDescription){let t=Object.keys(this.manifestDescription.PickLists);for(let e=0;e<t.length;e++){let i=this.manifestDescription.PickLists[t[e]];this.pict.providers.DynamicMetaLists.buildList(i)}}for(let t=0;t<n.length;t++){let e=n[t];"CustomCSS"in e&&"string"==typeof e.CustomCSS&&this.pict.CSSMap.addCSS("PSF-SectionCSS-".concat(e.Hash),e.CustomCSS)}return this.stashedManifestDescription&&(this.manifestDescription=this.stashedManifestDescription,delete this.stashedManifestDescription),n}triggerGlobalInputEvent(t,e){const i=e&&"string"==typeof e?e:this.fable.getUUID();e!==i&&this.pict.TransactionTracking.registerTransaction(i);let n="string"==typeof t?t:this.fable.getUUID(),r=Object.keys(this.pict.views),o={},a=null;for(let t=0;t<r.length;t++){let e=this.pict.views[r[t]];e.isPictSectionForm&&(a=e,e.sectionInputEvent(n,o,i))}e!==i&&a&&a.finalizeTransaction(i)}registerEventTransactionAsyncOperation(t,e){this.pict.TransactionTracking.pushToTransactionQueue(t,e,a)}eventTransactionAsyncOperationComplete(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=0,o=!1;for(let t=0;t<i.length;t++){const s=i[t];s.Type===a&&(s.Data===e?(i.splice(t,1),++r,--t):++n),s.Type===c&&(o=!0)}if(0!==r){if(o&&0===n){for(let t=0;t<i.length;t++){const e=i[t];if(e.Type===s){if(i.splice(t,1),--t,"function"!=typeof e.Data){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback was not a function.");continue}try{e.Data()}catch(t){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback error: ".concat(t),{Stack:t.stack})}}}delete this.pict.TransactionTracking.transactions[t]}return r>0}this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete ".concat(t," could not find async operation with hash ").concat(e,"."))}finalizeTransaction(t){this.pict.TransactionTracking.pushToTransactionQueue(t,null,c);const e=this.pict.TransactionTracking.checkTransactionQueue(t);let i=0;for(const t of e)t.Type===a&&++i;if(i>0)return this.pict.log.info("PICT View Metatemplate Helper finalizeTransaction ".concat(t," is waiting on ").concat(i," pending async operations.")),!1;for(let t=0;t<e.length;t++){const i=e[t];if(i.Type===s){if(e.splice(t,1),--t,"function"!=typeof i.Data){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback was not a function.");continue}try{i.Data()}catch(t){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback error: ".concat(t),{Stack:t.stack})}}}return delete this.pict.TransactionTracking.transactions[t],!0}registerOnTransactionCompleteCallback(t,e){const i=this.pict.TransactionTracking.checkTransactionQueue(t);let n=0,r=!1;for(const t of i)t.Type===a&&++n,t.Type===c&&(r=!0);r&&0===n?e():this.pict.TransactionTracking.pushToTransactionQueue(t,e,s)}showSupportViewInlineEditor(){this.pict.addViewSingleton("Pict-Form-DebugViewer",{},this.SupportViewPrototypes.DebugViewer),this.pict.addViewSingleton("Pict-Form-AppDataViewer",{},this.SupportViewPrototypes.AppDataViewer),this.pict.addViewSingleton("Pict-Form-SolverVisualization",{},this.SupportViewPrototypes.SolverVisualization),this.pict.views["Pict-Form-DebugViewer"].bootstrapContainer(),this.pict.views["Pict-Form-DebugViewer"].render()}get isPictMetacontroller(){return!0}},e.exports.default_configuration={AutoRender:!0,AutoPopulateDefaultObject:!0,AutoSolveBeforeRender:!0,AutoPopulateAfterRender:!0,DefaultRenderable:"Pict-Forms-Metacontainer",DefaultDestinationAddress:"#Pict-Form-Container",OnlyRenderDynamicSections:!0,MetaTemplateHash:"Pict-Forms-Metatemplate",Templates:[{Hash:"Pict-Forms-Metatemplate",Template:"\x3c!-- Pict-Forms-Metatemplate HAS NOT BEEN GENERATED; call pict.views.PictFormsMetatemplate.generateMetatemplate() to build the containers --\x3e"}],Renderables:[{RenderableHash:"Pict-Forms-Metacontainer",TemplateHash:"Pict-Forms-Metatemplate",DestinationAddress:"#Pict-Form-Container"}]}},{"../services/Pict-Service-DynamicFormDependencyManager.js":88,"./Pict-View-DynamicForm.js":103,"./support/Pict-View-PSF-AppData-Visualization.js":106,"./support/Pict-View-PSF-DebugViewer.js":107,"./support/Pict-View-PSF-LifeCycle-Visualization.js":108,"./support/Pict-View-PSF-Solver-Visualization.js":109,"./support/Pict-View-PSF-SpecificSolve-Visualization.js":110,"pict-view":38}],105:[function(t,e,i){const n=t("pict-provider"),r={ProviderIdentifier:"Pict-Form-SupportExtensions",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1};e.exports=class extends n{constructor(t,e,i){super(t,Object.assign({},JSON.parse(JSON.stringify(r)),e),i),"Pict-Support"in this.pict.CSSMap.inlineCSSMap||this.pict.CSSMap.addCSS("Pict-Support",'\n\t\t\t\t\t:root{\n\t\t\t\t\t\t--PSF-Global-background-color: #dcdce5;\n\t\t\t\t\t\t--PSF-Global-text-color: var(--theme-color-text-primary, #333333);\n\n\t\t\t\t\t\t--PSFExt-gutter-size: 5px;\n\t\t\t\t\t\t--PSFExt-indentation-size: calc(2 * var(--PSFExt-gutter-size));\n\t\t\t\t\t\t--PSFExt-Global-background-color: #dedede;\n\t\t\t\t\t\t--PSFExt-Global-text-color: var(--theme-color-text-primary, #333333);\n\t\t\t\t\t\t--PSFExt-Section-background-color: var(--theme-color-background-tertiary, #efefef);\n\t\t\t\t\t\t--PSFExt-Section-button-color: #5A52A3;\n\t\t\t\t\t\t--PSFExt-Section-button-text-color: #D8D7E5;\n\t\t\t\t\t\t--PSFExt-Section-token-color: #eAf3a2;\n\t\t\t\t\t\t--PSFExt-Section-label-color: var(--theme-color-text-muted, #999);\n\t\t\t\t\t\t--PSFExt-Section-Data-background-color: var(--theme-color-background-secondary, #fafafa);\n\t\t\t\t\t\t--PSFExt-Section-Group-Header-background-color: #ebebff;\n\t\t\t\t\t\t--PSFExt-Section-Group-Row-Header-background-color: #dcf0f0;\n\t\t\t\t\t\t--PSFExt-Solver-Entry-text-color: #bb4a9c;\n\t\t\t\t\t\t--PSFExt-Section-DynamicInput-background-color: #a3ccd8;\n\t\t\t\t\t\t--PSFExt-Section-DynamicInput-button-color: #2b89a4;\n\t\t\t\t\t\t--PSFExt-Section-DynamicInput-button-text-color: #D8D7E5;\n\t\t\t\t\t}\n\n\t\t\t\t\t/** Wrapping container\t*/\n\t\t\t\t\t#Pict-Form-Extensions-Wrap {\n\t\t\t\t\t\tdisplay:flex;\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\theight: 75vh;\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\tleft: 50%;\n\t\t\t\t\t\ttop: 0px;\n\t\t\t\t\t\twidth: 20vw;\n\t\t\t\t\t\tmin-width: 340px;\n\t\t\t\t\t\tmin-height: 200px;\n\t\t\t\t\t}\n\t\t\t\t\t#Pict-Form-Extension-DragControl {\n\t\t\t\t\t\tbackground-color: #eae;\n\t\t\t\t\t\tcursor: move;\n\t\t\t\t\t\tpadding: 4px 6px;\n\t\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\t\tborder: 1px solid var(--theme-color-text-primary, #111);\n\t\t\t\t\t}\n\t\t\t\t\t#Pict-Form-Extensions-Container { \n\t\t\t\t\t\tflex-grow: 1;\n\t\t\t\t\t\toverflow: auto;\n\t\t\t\t\t\tmargin-top: 2px;\n\t\t\t\t\t\tcolor: var(--PSF-Global-text-color);\n\t\t\t\t\t\tbackground-color: var(--PSF-Global-background-color);\n\t\t\t\t\t\tpadding: 10px;\n\t\t\t\t\t\tborder: 4px double var(--theme-color-text-primary, #111);\n\t\t\t\t\t\tborder-radius: 8px;\n\t\t\t\t\t\tbox-shadow: 2px 2px 10px rgba(0,0,0,0.5);\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t\tfont-family: Arial, sans-serif;\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t}\n\t\t\t\t\t#Pict-Form-Extension-ResizeControl {\n\t\t\t\t\t\tbackground-color: #eae;\n\t\t\t\t\t\tcursor: move;\n\t\t\t\t\t\tpadding: 4px 4px;\n\t\t\t\t\t\tborder-radius: 3px;\n\t\t\t\t\t\tborder: 1px solid var(--theme-color-text-primary, #111);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Extension-Footer {\n\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: 8px;\n\t\t\t\t\t}\n\n\t\t\t\t\t/** Headers\t*/\n\t\t\t\t\t.PSFExt-Extension-Header {\n\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-bottom: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Global-Header {\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Header {\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Content-Header {\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Data-Header {\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tborder-bottom: 1px dotted var(--theme-color-border-default, #ccc);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t/** Section content */\n\t\t\t\t\t.PSFExt-Section { \n\t\t\t\t\t\tmargin: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-background-color);\n\t\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Descriptors { \n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size) 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Group { \n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Buttons {\n\t\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tpadding-bottom: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin: calc(var(--PSFExt-gutter-size) * 2) var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Button { \n\t\t\t\t\t\tdisplay: inline;\n\t\t\t\t\t\tmargin-right: calc(var(--PSFExt-gutter-size) * 0.25);\n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-button-color);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tborder-radius: var(--PSFExt-gutter-size);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Button a { \n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-button-text-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Button a:hover { \n\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Solver-Entry:not(:last-child) {\n\t\t\t\t\t\tborder-bottom: 1px solid var(--theme-color-border-default, #ccc);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Solver-Entry { \n\t\t\t\t\t\tfont-family: "Courier New", "Lucida Console", monospace;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tline-height: 1.2;\n\t\t\t\t\t\tcolor: var(--PSFExt-Solver-Entry-text-color);\n\t\t\t\t\t\tborder-bottom: 1px dotted var(--theme-color-border-default, #ccc);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Solver-Result { \n\t\t\t\t\t\tfont-family: "Courier New", "Lucida Console", monospace;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-top: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tpadding: 0 var(--PSFExt-gutter-size);\n\t\t\t\t\t\tline-height: 1.2;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-ExtraData {\n\t\t\t\t\t\tpadding-top: calc(var(--PSFExt-gutter-size) / 2);\n\t\t\t\t\t\tpadding-bottom: calc(var(--PSFExt-gutter-size) / 2);\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-Data-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Group .PSFExt-Content-Header.PSFExt-Section-Group-Header {\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-Group-Header-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Group .PSFExt-Content-Header.PSFExt-Section-Group-Row-Header {\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-Group-Row-Header-background-color);\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-DeEmphasize { \n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Data { \n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\tline-height: 0.85;\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Data-Table {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tborder-collapse: collapse;\n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\tmargin-top: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tmargin-bottom: var(--PSFExt-gutter-size);\n\t\t\t\t\t\toverflow-x: auto;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Label { \n\t\t\t\t\t\tmin-width: 15%;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tmargin: var(--PSFExt-gutter-size) 0;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Label::after {\n\t\t\t\t\t\tcontent: ": ";\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Hidden { \n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Section-Solver-DynamicInput {\n\t\t\t\t\t\tbackground-color: var(--theme-color-background-panel, #ffffff);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t/** empty states */\n\t\t\t\t\t.PSFExt-Section-Solvers:empty::before {\n\t\t\t\t\t\tcontent: "No Section Solvers Defined";\n\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Group-Solvers:empty::before {\n\t\t\t\t\t\tcontent: "No Group/RecordSet Solvers Defined";\n\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\tcolor: var(--PSFExt-Section-label-color);\n\t\t\t\t\t\tmargin-left: var(--PSFExt-indentation-size);\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\tpadding: var(--PSFExt-gutter-size);\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tfont-size: smaller;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-ExpressionEditbox {\n\t\t\t\t\t\twidth: calc(100% - 20px);\n\t\t\t\t\t\tresize: vertical;\n\t\t\t\t\t\tmin-height: 80px;\n\t\t\t\t\t\tfont-family: monospace;\n\t\t\t\t\t\tfont-size: 0.9em;\n\t\t\t\t\t}\n\t\t\t\t\t.PSFExt-Token {\n\t\t\t\t\t\tbackground-color: var(--PSFExt-Section-token-color);\n\t\t\t\t\t}\n\t\t\t\t',1e3,"Pict-Form-SupportBase"),null==this.pict.TemplateProvider.getTemplate("Pict-Form-Support-Container")&&this.pict.TemplateProvider.addTemplate("Pict-Form-Support-Container",'\n\t\t\t<div id="Pict-Form-Extensions-Wrap">\n\t\t\t\t<p class="PSFExt-Extension-Header"><span id="Pict-Form-Extension-DragControl" class="PSDV-Extension-Header-Controlbar">Pict.Extensions {~TS:Pict-Form-Support-Container-Link:Pict.providers[Pict-Form-SupportExtensions].getSupportViewLinks()~} <a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.toggleClass(\'#Pict-Form-Extensions-Container\', \'PSFExt-Hidden\');{~P~}.ContentAssignment.toggleClass(\'#Pict-Form-Extensions-Footer\', \'PSFExt-Hidden\');">toggle</a></span></p>\n\t\t\t\t<div id="Pict-Form-Extensions-Container"></div>\n\t\t\t\t<p id="Pict-Form-Extensions-Footer" class="PSFExt-Extension-Footer"><span id="Pict-Form-Extension-ResizeControl">Pict.Extensions Resize</span></p>\n\t\t\t</div>\n\t\t\t\t'),null==this.pict.TemplateProvider.getTemplate("Pict-Form-Support-Container-Link")&&this.pict.TemplateProvider.addTemplate("Pict-Form-Support-Container-Link",' [ <a href="{~D:Record.Link~}" onclick="{~D:Record.OnClick~}" data-shortname="{~D:Record.ShortName~}" data-longname="{~D:Record.LongName~}">{~D:Record.ShortName~}</a> ] '),this.SupportViews={}}registerSupportView(t){this.pict.log.info("Registering support view ".concat(t.Hash," with Pict Support Extension provider.")),this.SupportViews[t.Hash]=t}getSupportViewLinks(){let t=[],e=Object.keys(this.SupportViews);for(let i=0;i<e.length;i++){let n=e[i],r=this.SupportViews[n];t.push({Hash:r.Hash,Link:"javascript:void(0);",ShortName:r.DisplayShortName,LongName:r.DisplayLongName,OnClick:"".concat(this.pict.browserAddress,".views['").concat(r.Hash,"'].render()")})}return t}},e.exports.default_configuration=r},{"pict-provider":9}],106:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="FDT",this.DisplayLongName="FormData"}flattenMarshalDestination(){return this.flattenAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination)}flattenAppData(){return this.flattenAddress("AppData")}flattenAddress(t){let e=this.pict.resolveStateFromAddress(t);return this.pict.manifest.objectAddressGeneration.generateAddressses(e)}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-AppData",DefaultRenderable:"Pict-Form-AppData-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-AppData-Content",Template:'\n<div id="Pict-Form-AppData-Content">\n\t<h2 class="PSFAD-Global-Header">Pict Form Data Visualization</h2>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Form Marshal Destination</span> {~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Form Data</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.{~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}\')">Download JSON</a>]\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">AppData</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.AppData\')">Download AppData JSON</a>]\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Fable Settings</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.settings\')">Download fable settings JSON</a>]\n\t</p>\n\t<p class="PSFExt-Data">\n\t\t<span class="PSFExt-Label">Application Options</span> [<a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].downloadJSONObjectAsFile(\'Pict.PictApplication.options\')">Download Application options JSON</a>]\n\t</p>\n\t<div id="PSFExt-Data-Browser" class="PSFExt-Section">\n\t\t{~TVS:Pict-Form-AppData:Context[0].flattenMarshalDestination()~}\n\t</div>\n'},{Hash:"Pict-Form-AppData",Template:'\n\t<div class="PSFExt-Section">\n\t\t<h3 class="PSFExt-Section-Header"><span class="PSFExt-DeEmphasize">Address:</span> \n\t\t\t{~D:Record.Key~}\n\t\t</h3>\n\t\t<div id="PSFExt-AD-{~D:Record.Key~}-Extra" class="PSFExt-Section-ExtraData">\n\t\t\t{~TIfAbs:Pict-Form-AppData-ObjectValueDisplay:Record:Record.Value.DataType^==^Object~}\n\t\t\t{~TIfAbs:Pict-Form-AppData-NotObjectValueDisplay:Record:Record.Value.DataType^!=^Object~}\n\t\t</div>\n\t</div>\n'},{Hash:"Pict-Form-AppData-NotObjectValueDisplay",Template:"\n\t\t\t\t\x3c!-- Not Object Value Display --\x3e\n\t\t\t\t{~TIfAbs:Pict-Form-AppData-ArrayValueDisplay:Record:Record.Value.DataType^==^Array~}\n\t\t\t\t{~TIfAbs:Pict-Form-AppData-PrimitiveValueDisplay:Record:Record.Value.DataType^!=^Array~}\n"},{Hash:"Pict-Form-AppData-ObjectValueDisplay",Template:'\n\t\t\t\x3c!-- Object Value Display --\x3e\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Type</span> Javascript Object {~T:Pict-Form-AppData-ObjectDownloadLink~}\n\t\t\t</p>\n'},{Hash:"Pict-Form-AppData-ArrayValueDisplay",Template:'\n\t\t\t\x3c!-- Array Value Display --\x3e\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Type</span> Array {~TIfAbs:Pict-Form-AppData-ArrayDownloadLink~}\n\n\t\t\t</p>\n'},{Hash:"Pict-Form-AppData-PrimitiveValueDisplay",Template:'\n\t\t\t\x3c!-- Primitive Value Display --\x3e\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Value</span> {~D:Record.Value.Default~}\n\t\t\t</p>\n'},{Hash:"Pict-Form-AppData-ObjectDownloadLink",Template:"[<a href=\"javascript:void(0);\" onclick=\"{~P~}.views['{~D:Context[0].Hash~}'].downloadJSONObjectAsFile('Pict.{~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}')\">Download JSON</a>]"},{Hash:"Pict-Form-AppData-ArrayDownloadLink",Template:"[<a href=\"javascript:void(0);\" onclick=\"{~P~}.views['{~D:Context[0].Hash~}'].downloadJSONObjectAsFile('Pict.{~D:Pict.views.PictFormMetacontroller.viewMarshalDestination~}')\">Download Array</a>]"}],Renderables:[{RenderableHash:"Pict-Form-AppData-Renderable",TemplateHash:"Pict-Form-AppData-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],107:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="ILE",this.DisplayLongName="InlineEditor"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-DebugViewer",DefaultRenderable:"Pict-Form-DebugViewer-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"\n\t/** Dynamic Input Section Overrides */\n\t#PSFExt-DynamicInputSection .PSFExt-Section { \n\t\tmargin: var(--PSFExt-gutter-size);\n\t\tpadding: var(--PSFExt-gutter-size);\n\t\tbackground-color: var(--PSFExt-Section-DynamicInput-background-color);\n\t}\n\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-Section-Button { \n\t\tbackground-color: var(--PSFExt-Section-DynamicInput-button-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-Section-Button a { \n\t\tcolor: var(--PSFExt-Section-DynamicInput-button-text-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-Label,\n\t#PSFExt-DynamicInputSection .PSFExt-Section .PSFExt-DeEmphasize { \n\t\tcolor: var(--PSFExt-Section-DynamicInput-button-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section-Descriptors { \n\t\tborder-left: 5px solid var(--PSFExt-Section-DynamicInput-background-color);\n\t}\n\t#PSFExt-DynamicInputSection .PSFExt-Section-Group { \n\t\tborder-left: 5px solid var(--PSFExt-Section-DynamicInput-button-color);\n\t}\n",Templates:[{Hash:"Pict-Form-DebugViewer-Content",Template:'\n<div id="Pict-Form-DebugViewer-Content">\n\t<h2 class="PSFExt-Global-Header">Pict Inline Form Editing Tool</h2>\n\t{~T:Pict-Form-DebugViewer-MetacontrollerContainer~}\n</div>'},{Hash:"Pict-Form-DebugViewer-MetacontrollerContainer",Template:'\n\t<p class="PSFExt-Data"><span class="PSFExt-Label">Scope:</span> {~D:Context[0].getDynamicState().Scope~}</p>\n\t<ul class="PSFExt-Section-Buttons">\n\t</ul>\n\t<div id="PSFExt-SectionList">\n\t\t{~TS:Pict-Form-DebugViewer-SectionContainer:Context[0].getDynamicState().SectionViews~}\n\t</div>\n\t<hr>\n\t<div id="PSFExt-DynamicInputSection">\n\t\t{~T:Pict-Form-DebugViewer-SectionContainer:Context[0].getDynamicState().DynamicInputView~}\n\t</div>\n'},{Hash:"Pict-Form-DebugViewer-SectionContainer",Template:'\n\t<div id="PSFExt-Section-{~D:Record.Hash~}" class="PSFExt-Section">\n\t\t<h3 class="PSFExt-Section-Header"><span class="PSFExt-DeEmphasize">Section:</span> {~D:Record.sectionDefinition.Name~}</h3>\n\t\t<ul class="PSFExt-Section-Buttons">\n\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Record.View.Hash~}\'].render()">Render</a></li>\n\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.assignContent(\'{~D:Record.View.options.DefaultDestinationAddress~}\',\'\')">Clear</a></li>\n\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.removeClass(\'#PSFExt-{~D:Record.View.Hash~}-Extra\', \'PSFExt-Hidden\')">Extra Data</a></li>\n\t\t</ul>\n\t\t<div id="PSFExt-{~D:Record.View.Hash~}-Extra" class="PSFExt-Hidden PSFExt-Section-ExtraData">\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Description</span> {~D:Record.sectionDefinition.Description~}\n\t\t\t</p>\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Hash</span> {~D:Record.View.Hash~}\n\t\t\t</p>\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">HTML ID</span> {~D:Record.View.sectionDefinition.Macro.HTMLID~}\n\t\t\t</p>\n\t\t\t<h4 class="PSFExt-Content-Header">Section Solvers:</h4>\n\t\t\t<div class="PSFExt-Section-Solvers">{~TS:Pict-Form-DebugViewer-SolverEntry:Record.Solvers[]<<~?ExpressionScope,==,Section?~>>~}</div>\n\t\t\t<h4 class="PSFExt-Content-Header">Tabular/RecordSet Solvers:</h4>\n\t\t\t<div class="PSFExt-Group-Solvers">{~TS:Pict-Form-DebugViewer-SolverEntry:Record.Solvers[]<<~?ExpressionScope,==,Group?~>>~}</div>\n\t\t\t<h4 class="PSFExt-Content-Header">Inputs:</h4>\n\t\t\t<div class="PSFExt-Section-Solver-DynamicInput">\n\t\t\t\t{~TS:Pict-Form-DebugViewer-GroupContainer:Record.View.sectionDefinition.Groups~}\n\t\t\t</div>\n\t\t\t<ul class="PSFExt-Section-Buttons">\n\t\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.addClass(\'#PSFExt-{~D:Record.View.Hash~}-Extra\', \'PSFExt-Hidden\')">Hide Extra Data for {~D:Record.View.Hash~}</a></li>\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n'},{Hash:"Pict-Form-DebugViewer-SolverEntry",Template:'\n\t\t\t<div class="PSFExt-Section-Solver-Entry">\n\t\t\t\t<p class="PSFExt-Solver-Entry">{~D:Record.Expression~}</p>\n\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Last Result</span> <span class="PSFExt-Solver-Result">{~D:Record.LastResult~}</span></p>\n\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Sequence</span> Ordinal [{~D:Record.Ordinal~}] Index [{~D:Record.Index~}]</p>\n\t\t\t</div>\n\t\t\t'},{Hash:"Pict-Form-DebugViewer-GroupContainer",Template:'\n\t\t\t<div class="PSFExt-Section-Group">\n\t\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">\n\t\t\t\t\t<span class="PSFExt-DeEmphasize">Group:</span> {~D:Record.Name~} [idx <em>{~D:Record.GroupIndex~}</em>]\n\t\t\t\t</h5>\n\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Layout</span> {~D:Record.Layout~}</p>\n\t\t\t\t<div class="PSFExt-Section-Rows">\n\t\t\t\t\t{~TS:Pict-Form-DebugViewer-RowContainer:Record.Rows~}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t'},{Hash:"Pict-Form-DebugViewer-RowContainer",Template:'\n\t\t\t\t\t<div class="PSFExt-Section-Descriptors">\n\t\t\t\t\t\t<h6 class="PSFExt-Content-Header PSFExt-Section-Group-Row-Header">\n\t\t\t\t\t\t\t<span class="PSFExt-DeEmphasize">Row:</span> {~D:Record.Hash~}\n\t\t\t\t\t\t</h6>\n\t\t\t\t\t\t{~TS:Pict-Form-DebugViewer-DescriptorContainer:Record.Inputs~}\n\t\t\t\t\t</div>\n'},{Hash:"Pict-Form-DebugViewer-DescriptorContainer",Template:'\n\t\t\t\t\t\t<div class="PSFExt-Section-Descriptor">\n\t\t\t\t\t\t\t<p class="PSFExt-Data-Header"><span class="PSFExt-DeEmphasize">Input:</span> {~D:Record.Name~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Hash</span> {~D:Record.Hash~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">DataType</span> {~D:Record.DataType~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">InputType</span> {~D:Record.PictForm.InputType~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Informary Data Address</span> {~D:Record.PictForm.InformaryDataAddress~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">Input Index</span> {~D:Record.PictForm.InputIndex~}</p>\n\t\t\t\t\t\t\t<p class="PSFExt-Data"><span class="PSFExt-Label">HTML ID</span> {~D:Record.PictForm.Macro.HTMLID~}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t'}],Renderables:[{RenderableHash:"Pict-Form-DebugViewer-Renderable",TemplateHash:"Pict-Form-DebugViewer-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],108:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="LCV",this.DisplayLongName="LifecycleVisulization"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-LifeCycle",DefaultRenderable:"Pict-Form-LifeCycle-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-LifeCycle-Content",Template:'\n<div id="Pict-Form-LifeCycle-Content">\n\t<h2 class="PSFLC-Global-Header">Pict LifeCycle Visualization</h2>\n</div>\n'}],Renderables:[{RenderableHash:"Pict-Form-LifeCycle-Renderable",TemplateHash:"Pict-Form-LifeCycle-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],109:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="SLV",this.DisplayLongName="SolverVisualization"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-Solver",DefaultRenderable:"Pict-Form-Solver-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-Solver-Content",Template:'\n<div id="Pict-Form-Solver-Content">\n\t<h2 class="PSFS-Global-Header">Pict Solver Visualization</h2>\n\t<ul class="PSFExt-Section-Buttons">\n\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.views.PictFormMetacontroller.solve(); {~P~}.views.PictFormMetacontroller.marshalFormSections(); {~P~}.views[\'{~D:Context[0].Hash~}\'].render();">Solve</a></li>\n\t</ul>\n\t{~TS:Pict-Form-Solver-Entries:Context[0].getDynamicState().Solvers~}\n</div>\n'},{Hash:"Pict-Form-Solver-Entries",Template:'\n\t<div id="PSFExt-Section-{~D:Record.Hash~}" class="PSFExt-Section">\n\t\t<h3 class="PSFExt-Section-Header">\n\t\t\t<span class="PSFExt-DeEmphasize">{~D:Record.ExpressionScope~} {~D:Record.SectionOrdinal~}.G.{~D:Record.GroupOrdinal~}</span> Ord</span>{~D:Record.Ordinal~} <span class="PSFExt-DeEmphasize">Ind</span>{~D:Record.Index~}\n\t\t\t[ <a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.toggleClass(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionContainer\', \'PSFExt-Hidden\');">Edit</a> ]\n\t\t\t[ <a href="javascript:void(0);" onclick="{~P~}.ContentAssignment.toggleClass(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExtraDataContainer\', \'PSFExt-Hidden\');">More</a> ]\n\t\t</h3>\n\t\t\n\t\t<div id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionContainer" class="PSFExt-Hidden">\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<textarea id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionEditbox" class="PSFExt-ExpressionEditbox">{~D:Record.Expression~}</textarea>\n\t\t\t</p>\n\t\t\t<ul class="PSFExt-Section-Buttons">\n\t\t\t\t<li class="PSFExt-Section-Button"><a href="javascript:void(0);" onclick="{~P~}.views[\'{~D:Context[0].Hash~}\'].updateExpressionFromElement(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionEditbox\', \'{~D:Record.ExpressionScope~}\', \'{~D:Record.ViewHash~}\', {~D:Record.SectionOrdinal~}, {~D:Record.Index~}, \'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-Display\'); {~P~}.ContentAssignment.addClass(\'#PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExpressionContainer\', \'PSFExt-Hidden\');">Apply</a></li>\n\t\t\t</ul>\n\t\t</div>\n\t\t<div id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-Extra" class="PSFExt-Section-ExtraData">\n\t\t\t<p class="PSFExt-Solver-Entry" id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-Display">{~D:Record.Expression~}</p>\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">Value</span> {~TBT:Record.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record:Pict-Form-RecordValueDisplaySimple~}\n\t\t\t</p>\n\t\t</div>\n\t\t<div id="PSFExt-{~D:Record.ExpressionScope~}-{~D:Record.ViewHash~}-S{~D:Record.SectionOrdinal~}-G{~D:Record.GroupOrdinal~}-{~D:Record.Index~}-ExtraDataContainer" class="PSFExt-Section-ExtraData PSFExt-Hidden">\n\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">{~D:Record.LastResultsObject.PostfixTokenObjects.length~} Postfix Tokens</h5>\n\t\t\t{~TS:Pict-Form-Solver-PostfixToken:Record.LastResultsObject.PostfixTokenObjects~}\n\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">Virtual Symbols</h5>\n\t\t\t{~TVS:Pict-Form-Solver-VirtualSymbols:Record.LastResultsObject.VirtualSymbols~}\n\t\t\t<h5 class="PSFExt-Content-Header PSFExt-Section-Group-Header">{~D:Record.LastResultsObject.PostfixTokenObjects.length~} Postfix Solve List</h5>\n\t\t\t{~TVS:Pict-Form-Solver-PostFixSolveEntry:Record.LastResultsObject.PostfixSolveList~}\n\t\t</div>\n\t</div>\n'},{Hash:"Pict-Form-Solver-PostfixToken",Template:'\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">{~D:Record.Type~}</span> <span class="PSFExt-Token">{~D:Record.Token~}</span>\n\t\t\t</p>\n'},{Hash:"Pict-Form-Solver-VirtualSymbols",Template:'\n\t\t\t<p class="PSFExt-Data">\n\t\t\t\t<span class="PSFExt-Label">{~D:Record.Key~}</span> {~TBT:Record.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record:Pict-Form-RecordValueDisplaySimple~}\n\t\t\t</p>\n'},{Hash:"Pict-Form-RecordValueDisplayComplex",Template:"\n\t\t\t\x3c!-- Complex Value --\x3e\n\t\t\t{~TBT:Record.Value:array:Pict-Form-RecordValueDisplayArray:Record:Pict-Form-RecordValueDisplayObject~}\n"},{Hash:"Pict-Form-RecordValueDisplayObject",Template:"JSON Object\n\t\t\t\x3c!-- RAW Object\n{~DJ:Record.Value~}\n\t\t\t--\x3e"},{Hash:"Pict-Form-RecordValueDisplayArray",Template:"JSON Array ({~D:Record.Value.length~} items)\n\t\t\t\x3c!-- RAW Array\n{~DJ:Record.Value~}\n\t\t\t--\x3e"},{Hash:"Pict-Form-RecordValueDisplaySimple",Template:"{~D:Record.Value~}"},{Hash:"Pict-Form-Solver-PostFixSolveEntry",Template:'\n\t\t\t<div>\n\t\t\t\t<h6 class="PSFExt-Content-Header PSFExt-Data-Header">Postfix Solve Entry #{~D:Record.Key~} Symbol <span class="PSFExt-Token">{~D:Record.Value.VirtualSymbolName~}</span></h6>\n\t\t\t\t<table class="PSFExt-Data-Table">\n\t\t\t\t\t<th>\n\t\t\t\t\t\t<tr><td></td><td>Left</td><td>Operation</td><td>Right</td></tr>\n\t\t\t\t\t</th>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Virtual Symbol</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.VirtualSymbolName~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.Operation.VirtualSymbolName~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.VirtualSymbolName~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Value</td>\n\t\t\t\t\t\t<td> {~TBT:Record.Value.LeftValue.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record.Value.LeftValue:Pict-Form-RecordValueDisplaySimple~} </td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td> {~TBT:Record.Value.RightValue.Value:object,array:Pict-Form-RecordValueDisplayComplex:Record.Value.RightValue:Pict-Form-RecordValueDisplaySimple~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Tokens</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.Token~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.Operation.Token~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.Token~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Type</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.Type~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.Operation.Type~} </td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.Type~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>Solve Layer</td>\n\t\t\t\t\t\t<td> {~D:Record.Value.LeftValue.SolveLayerStack~} </td>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t<td> {~D:Record.Value.RightValue.SolveLayerStack~} </td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</div>\n'}],Renderables:[{RenderableHash:"Pict-Form-Solver-Renderable",TemplateHash:"Pict-Form-Solver-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],110:[function(t,e,i){const n=t("./Pict-View-PSF-SupportBase.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.DisplayShortName="STV",this.DisplayLongName="SpecificSolveTimingVisualization"}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-SpecificSolve",DefaultRenderable:"Pict-Form-SpecificSolve-Renderable",DefaultDestinationAddress:"#Pict-Form-Extensions-Container",RenderOnLoad:!1,CSS:"",Templates:[{Hash:"Pict-Form-SpecificSolve-Content",Template:'\n<div id="Pict-Form-SpecificSolve-Content">\n\t<h2 class="PSFSS-Global-Header">Pict Specific Solve Timing Visualization</h2>\n</div>\n'}],Renderables:[{RenderableHash:"Pict-Form-SpecificSolve-Renderable",TemplateHash:"Pict-Form-SpecificSolve-Content"}]}},{"./Pict-View-PSF-SupportBase.js":111}],111:[function(t,e,i){const n=t("pict-view"),r=t("./Pict-Provider-PSF-Support.js");e.exports=class extends n{constructor(t,e,i){super(t,e,i),this.pict.addProviderSingleton("Pict-Form-SupportExtensions",{},r),this.DisplayShortName="U",this.DisplayLongName="UNDEFINED",this.pict.providers["Pict-Form-SupportExtensions"].registerSupportView(this)}getDynamicState(){if(!("PictFormMetacontroller"in this.pict.views))return this.pict.log.warn("Pict Forms Inline Editor tried to initialize but no metacontroller was found."),{Scope:"ERR_NO_METACONTROLLER",Description:"Error initializing inline editor -- no metacontroller found.",Manifest:this.fable.newManyfest(),Sections:[]};let t=this.pict.views.PictFormMetacontroller,e={Scope:t.manifestDescription.Scope,Description:"",Manifest:t.manifest,ManifestDescription:t.manifestDescription,AllViews:t.filterViews(),SectionViews:[],DynamicInputView:!1,Solvers:[]};for(let t=0;t<e.AllViews.length;t++){let i=e.AllViews[t];i.isPictSectionForm&&"PictFormMetacontroller-DynamicInputs"==i.Hash?e.DynamicInputView=i:i.isPictSectionForm&&e.SectionViews.push({View:i,sectionDefinition:i.sectionDefinition,Solvers:[]})}for(let t=0;t<e.SectionViews.length;t++){let i=e.SectionViews[t].View,n=e.SectionViews[t].Solvers;if(i.isPictSectionForm&&Array.isArray(i.sectionDefinition.Solvers))for(let r=0;r<i.sectionDefinition.Solvers.length;r++){let o=i.sectionDefinition.Solvers[r],a={ViewHash:i.Hash,SectionOrdinal:t,GroupOrdinal:-1,Ordinal:1,Index:r,Expression:"",ExpressionType:"Unknown",ExpressionScope:"Section"};"string"==typeof o?(a.Expression=o,a.ExpressionType="Simple"):"object"==typeof o&&(a.Expression=o.Expression,a.Ordinal=o.Ordinal,a.ExpressionType="Complex"),e.Solvers.push(a),n.push(a)}for(let r=0;r<i.sectionDefinition.Groups.length;r++){let o=i.getGroup(r);if("RecordSetSolvers"in o)for(let a=0;a<o.RecordSetSolvers.length;a++){let s=o.RecordSetSolvers[a],c={ViewHash:i.Hash,SectionOrdinal:t,GroupOrdinal:r,Ordinal:1,Index:a,Expression:"",ExpressionType:"Unknown",ExpressionScope:"Group"};s&&("string"==typeof s?(c.Expression=s,c.ExpressionType="Simple"):"object"==typeof s&&(c.Expression=s.Expression,c.Ordinal=s.Ordinal,c.ExpressionType="Complex")),e.Solvers.push(c),n.push(c)}}n.sort((t,e)=>t.Ordinal<e.Ordinal?-1:t.Ordinal>e.Ordinal?1:"Group"==t.ExpressionScope&&"Section"==e.ExpressionScope?-1:"Section"==t.ExpressionScope&&"Group"==e.ExpressionScope?1:t.Index<e.Index?-1:t.Index>e.Index?1:0)}if(e.Solvers.sort((t,e)=>t.Ordinal<e.Ordinal?-1:t.Ordinal>e.Ordinal?1:"Group"==t.ExpressionScope&&"Section"==e.ExpressionScope?-1:"Section"==t.ExpressionScope&&"Group"==e.ExpressionScope?1:t.Index<e.Index?-1:t.Index>e.Index?1:0),e.LastSolveOutcome=this.pict.providers.DynamicSolver.lastSolveOutcome,"object"==typeof e.LastSolveOutcome)for(let t=0;t<e.Solvers.length;t++){let i=e.Solvers[t];if(i.Ordinal in e.LastSolveOutcome.SolveOrdinals)if("Section"==i.ExpressionScope){let t=e.LastSolveOutcome.SolveOrdinals[i.Ordinal].SectionSolvers;if(Array.isArray(t))for(let e=0;e<t.length;e++){let n=t[e];n.ViewHash==i.ViewHash&&n.Solver.Expression==i.Expression&&(i.LastResult=n.Solver.ResultsObject.RawResult,i.Value=n.Solver.ResultsObject.RawResult,i.LastResultsObject=n.Solver.ResultsObject)}}else if("Group"==i.ExpressionScope){let t=e.LastSolveOutcome.SolveOrdinals[i.Ordinal].GroupSolvers;if(Array.isArray(t))for(let e=0;e<t.length;e++){let n=t[e];n.ViewHash==i.ViewHash&&n.Solver.Expression==i.Expression&&(n.Solver&&"ResultsObject"in n.Solver&&(i.LastResult=n.Solver.ResultsObject.RawResult),n.Solver&&"ResultsObject"in n.Solver&&(i.LastResultsObject=n.Solver.ResultsObject))}}}return e}getSectionSolvers(t){return this.getDynamicState().Solvers.map(e=>{if(e.ViewHash===t)return e})}downloadJSONObjectAsFile(t){try{const e=this.pict.resolveStateFromAddress(t),i="PICT_JSON_".concat(t.replace(".","_"),".json"),n=JSON.stringify(e,null,4);if(!URL||!Blob)return void this.pict.log.error("Browser does not support required features for downloading JSON object from address ".concat(t,"."));const r=new Blob([n],{type:"application/json"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=i,a.click(),URL.revokeObjectURL(o)}catch(e){this.pict.log.error("Error downloading JSON object from address ".concat(t,": ").concat(e.message))}}updateExpressionFromElement(t,e,i,n,r,o){let a=this.pict.ContentAssignment.readContent(t);if(!a)return void this.pict.log.warn("No expression found in element at address ".concat(t,"; cannot update ").concat(e," solver Ordinal ").concat(n," Index ").concat(r,"."));let s=this.pict.views.PictFormMetacontroller,c={Scope:s.manifestDescription.Scope,Description:"",Manifest:s.manifest,ManifestDescription:s.manifestDescription,AllViews:s.filterViews(),SectionViews:[],DynamicInputView:!1,Solvers:[]};for(let t=0;t<c.AllViews.length;t++){let e=c.AllViews[t];e.isPictSectionForm&&"PictFormMetacontroller-DynamicInputs"==e.Hash?c.DynamicInputView=e:e.isPictSectionForm&&c.SectionViews.push({View:e,sectionDefinition:e.sectionDefinition,Solvers:[]})}for(let t=0;t<c.SectionViews.length;t++){let o=c.SectionViews[t].View;c.SectionViews[t].Solvers;if(o.isPictSectionForm&&Array.isArray(o.sectionDefinition.Solvers))for(let s=0;s<o.sectionDefinition.Solvers.length;s++){let c=o.sectionDefinition.Solvers[s];"Section"==e&&t==n&&s==r&&o.Hash==i&&("string"==typeof c?o.sectionDefinition.Solvers[s]=a:"object"==typeof c&&(o.sectionDefinition.Solvers[s].Expression=a))}for(let s=0;s<o.sectionDefinition.Groups.length;s++){let c=o.getGroup(s);if("RecordSetSolvers"in c)for(let l=0;l<c.RecordSetSolvers.length;l++){let p=c.RecordSetSolvers[l];"Group"==e&&t==n&&s==r&&o.Hash==i&&("string"==typeof p?o.sectionDefinition.Solvers[s]=a:"object"==typeof p&&(o.sectionDefinition.Solvers[s].Expression=a))}}}o&&this.pict.ContentAssignment.assignContent(o,a)}bootstrapContainer(){let t=this.options.DefaultDestinationAddress;if(this.pict.ContentAssignment.getElement(this.options.DefaultDestinationAddress).length>0)return!0;let e="Pict-Form-Support-Container";e in this.renderables||(this.renderables[e]={RenderableHash:"Pict-Form-Support-Container",TemplateHash:"Pict-Form-Support-Container",ContentDestinationAddress:"body",RenderMethod:"append_once",TestAddress:"#Pict-Form-Extensions-Container"}),this.renderables[e].TestAddress=t,this.pict.CSSMap.injectCSS(),this.render(e);let i=document.getElementById("Pict-Form-Extensions-Wrap"),n=document.getElementById("Pict-Form-Extension-DragControl");i&&n&&n.addEventListener("mousedown",function(t){let e=t.offsetX+n.clientLeft,r=t.offsetY+n.clientTop;function o(t){t.stopPropagation(),i.style.left=t.clientX-e+"px",i.style.top=t.clientY-r+"px"}window.addEventListener("pointermove",o),window.addEventListener("pointerup",function t(e){window.removeEventListener("pointermove",o),window.removeEventListener("pointerup",t)}),t.preventDefault()});let r=document.getElementById("Pict-Form-Extensions-Wrap"),o=document.getElementById("Pict-Form-Extension-ResizeControl");r&&o&&o.addEventListener("mousedown",function(t){function e(t){t.stopPropagation();let e=t.clientX-r.getBoundingClientRect().left,i=t.clientY-r.getBoundingClientRect().top,n=getComputedStyle(r),o=parseInt(n.minWidth,10),a=parseInt(n.minHeight,10);e<o&&(e=o),i<a&&(i=a),r.style.width=e+"px",r.style.height=i+"px"}window.addEventListener("pointermove",e),window.addEventListener("pointerup",function t(i){window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}),t.preventDefault()})}},e.exports.default_configuration={ViewIdentifier:"Pict-Form-SupportBase",DefaultRenderable:"Pict-Form-SUPPORT-BASE",RenderOnLoad:!1,Templates:[],Renderables:[{RenderableHash:"Pict-Form-SUPPORT-BASE",TemplateHash:"Pict-Form-SUPPORT-BASE-NOTEMPLATE"}]}},{"./Pict-Provider-PSF-Support.js":105,"pict-view":38}]},{},[1])(1)});