pict-section-flow 1.4.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -2
- package/source/Pict-Section-Flow.js +20 -14
- package/source/providers/PictProvider-Flow-Background.js +303 -0
- package/source/providers/PictProvider-Flow-CSS.js +73 -7
- package/source/providers/PictProvider-Flow-Geometry.js +11 -421
- package/source/providers/PictProvider-Flow-Icons.js +12 -0
- package/source/providers/PictProvider-Flow-Layouts.js +107 -0
- package/source/services/PictService-Flow-ConnectionRenderer.js +1 -1
- package/source/services/PictService-Flow-CursorManager.js +113 -0
- package/source/services/PictService-Flow-InteractionManager.js +439 -59
- package/source/services/PictService-Flow-Layout.js +21 -16
- package/source/services/PictService-Flow-PathGenerator.js +30 -417
- package/source/services/PictService-Flow-RenderManager.js +23 -3
- package/source/services/PictService-Flow-ViewportManager.js +102 -0
- package/source/views/PictView-Flow-FloatingToolbar.js +5 -1
- package/source/views/PictView-Flow-Node.js +29 -0
- package/source/views/PictView-Flow-Toolbar.js +50 -3
- package/source/views/PictView-Flow.js +591 -2
- package/.claude/launch.json +0 -11
- package/docs/.nojekyll +0 -0
- package/docs/Architecture.md +0 -163
- package/docs/Custom-Styling.md +0 -275
- package/docs/Data_Model.md +0 -149
- package/docs/Event_System.md +0 -156
- package/docs/Getting_Started.md +0 -237
- package/docs/Implementation_Reference.md +0 -528
- package/docs/Layout_Persistence.md +0 -117
- package/docs/README.md +0 -103
- package/docs/Theme_Integration.md +0 -150
- package/docs/_brand.json +0 -18
- package/docs/_cover.md +0 -17
- package/docs/_playground.json +0 -24
- package/docs/_sidebar.md +0 -57
- package/docs/_topbar.md +0 -8
- package/docs/_version.json +0 -7
- package/docs/api/PictFlowCard.md +0 -216
- package/docs/api/PictFlowCardPropertiesPanel.md +0 -235
- package/docs/api/addConnection.md +0 -101
- package/docs/api/addNode.md +0 -137
- package/docs/api/autoLayout.md +0 -77
- package/docs/api/getFlowData.md +0 -112
- package/docs/api/marshalToView.md +0 -95
- package/docs/api/openPanel.md +0 -128
- package/docs/api/registerHandler.md +0 -174
- package/docs/api/registerNodeType.md +0 -142
- package/docs/api/removeConnection.md +0 -57
- package/docs/api/removeNode.md +0 -80
- package/docs/api/saveLayout.md +0 -152
- package/docs/api/screenToSVGCoords.md +0 -68
- package/docs/api/selectNode.md +0 -116
- package/docs/api/setTheme.md +0 -168
- package/docs/api/setZoom.md +0 -97
- package/docs/api/toggleFullscreen.md +0 -68
- package/docs/card-help/EACH.md +0 -19
- package/docs/card-help/FREAD.md +0 -24
- package/docs/card-help/FWRITE.md +0 -24
- package/docs/card-help/GET.md +0 -22
- package/docs/card-help/ITE.md +0 -23
- package/docs/card-help/LOG.md +0 -23
- package/docs/card-help/NOTE.md +0 -17
- package/docs/card-help/PREV.md +0 -18
- package/docs/card-help/SET.md +0 -27
- package/docs/card-help/SPKL.md +0 -22
- package/docs/card-help/STAT.md +0 -23
- package/docs/card-help/SW.md +0 -25
- package/docs/diagrams/architecture-at-a-glance.excalidraw +0 -4270
- package/docs/diagrams/architecture-at-a-glance.mmd +0 -30
- package/docs/diagrams/architecture-at-a-glance.svg +0 -2
- package/docs/diagrams/data-flow.excalidraw +0 -1451
- package/docs/diagrams/data-flow.mmd +0 -17
- package/docs/diagrams/data-flow.svg +0 -2
- package/docs/diagrams/high-level-design.excalidraw +0 -5767
- package/docs/diagrams/high-level-design.mmd +0 -86
- package/docs/diagrams/high-level-design.svg +0 -2
- package/docs/diagrams/relationships.excalidraw +0 -3852
- package/docs/diagrams/relationships.mmd +0 -9
- package/docs/diagrams/relationships.svg +0 -2
- package/docs/diagrams/service-initialization-sequence.excalidraw +0 -1466
- package/docs/diagrams/service-initialization-sequence.mmd +0 -19
- package/docs/diagrams/service-initialization-sequence.svg +0 -2
- package/docs/diagrams/svg-layer-structure.excalidraw +0 -1060
- package/docs/diagrams/svg-layer-structure.mmd +0 -18
- package/docs/diagrams/svg-layer-structure.svg +0 -2
- package/docs/examples/README.md +0 -9
- package/docs/examples/simple_cards/README.md +0 -677
- package/docs/examples/simple_cards/css/flowexample.css +0 -65
- package/docs/examples/simple_cards/index.html +0 -32
- package/docs/examples/simple_cards/js/pict.min.js +0 -12
- package/docs/examples/simple_cards/pict-section-flow-example-simple-cards.compatible.min.js +0 -1
- package/docs/index.html +0 -38
- package/docs/playground/app.json +0 -6
- package/docs/playground/appdata.json +0 -85
- package/docs/playground/application.js +0 -23
- package/docs/playground/pict.json +0 -17
- package/docs/playground/runtime/pict-application.min.js +0 -2
- package/docs/playground/runtime/pict-section-flow.min.js +0 -2
- package/docs/playground/runtime/pict-section-modal.min.js +0 -2
- package/docs/playground/runtime/pict.min.js +0 -12
- package/docs/retold-catalog.json +0 -244
- package/docs/retold-keyword-index.json +0 -26028
- package/example_applications/simple_cards/css/flowexample.css +0 -65
- package/example_applications/simple_cards/html/index.html +0 -32
- package/example_applications/simple_cards/package.json +0 -52
- package/example_applications/simple_cards/source/Pict-Application-FlowExample-Configuration.json +0 -15
- package/example_applications/simple_cards/source/Pict-Application-FlowExample.js +0 -539
- package/example_applications/simple_cards/source/card-help-content.js +0 -16
- package/example_applications/simple_cards/source/cards/FlowCard-Comment.js +0 -38
- package/example_applications/simple_cards/source/cards/FlowCard-DataPreview.js +0 -44
- package/example_applications/simple_cards/source/cards/FlowCard-Each.js +0 -38
- package/example_applications/simple_cards/source/cards/FlowCard-FileRead.js +0 -56
- package/example_applications/simple_cards/source/cards/FlowCard-FileWrite.js +0 -50
- package/example_applications/simple_cards/source/cards/FlowCard-GetValue.js +0 -37
- package/example_applications/simple_cards/source/cards/FlowCard-IfThenElse.js +0 -49
- package/example_applications/simple_cards/source/cards/FlowCard-LogValues.js +0 -55
- package/example_applications/simple_cards/source/cards/FlowCard-SetValue.js +0 -97
- package/example_applications/simple_cards/source/cards/FlowCard-Sparkline.js +0 -100
- package/example_applications/simple_cards/source/cards/FlowCard-StatusMonitor.js +0 -46
- package/example_applications/simple_cards/source/cards/FlowCard-Switch.js +0 -39
- package/example_applications/simple_cards/source/providers/PictRouter-FlowExample-Configuration.json +0 -22
- package/example_applications/simple_cards/source/sample-flows.js +0 -410
- package/example_applications/simple_cards/source/views/PictView-FlowExample-About.js +0 -184
- package/example_applications/simple_cards/source/views/PictView-FlowExample-BottomBar.js +0 -77
- package/example_applications/simple_cards/source/views/PictView-FlowExample-Documentation.js +0 -325
- package/example_applications/simple_cards/source/views/PictView-FlowExample-FileWriteInfo.js +0 -59
- package/example_applications/simple_cards/source/views/PictView-FlowExample-Layout.js +0 -90
- package/example_applications/simple_cards/source/views/PictView-FlowExample-MainWorkspace.js +0 -453
- package/example_applications/simple_cards/source/views/PictView-FlowExample-TopBar.js +0 -95
- package/scripts/generate-card-help.js +0 -214
- package/source/providers/edges/Edge-Bezier.js +0 -41
- package/source/providers/edges/Edge-Orthogonal.js +0 -37
- package/source/providers/edges/Edge-OrthogonalSnap.js +0 -72
- package/source/providers/edges/Edge-Perimeter-Linear.js +0 -31
- package/source/providers/edges/Edge-Perimeter-Orthogonal.js +0 -39
- package/source/providers/edges/Edge-Perimeter.js +0 -48
- package/source/providers/edges/Edge-PerimeterMath.js +0 -92
- package/source/providers/edges/Edge-Straight.js +0 -24
- package/source/providers/layouts/Layout-Circular.js +0 -203
- package/source/providers/layouts/Layout-Coerce.js +0 -40
- package/source/providers/layouts/Layout-Columnar.js +0 -134
- package/source/providers/layouts/Layout-Custom.js +0 -27
- package/source/providers/layouts/Layout-ForcedFromCenter.js +0 -256
- package/source/providers/layouts/Layout-Grid.js +0 -134
- package/source/providers/layouts/Layout-Layered.js +0 -155
- package/source/providers/layouts/Layout-Rank.js +0 -141
- package/source/providers/layouts/Layout-Staggered.js +0 -131
- package/source/providers/layouts/Layout-Tabular.js +0 -94
- package/test/CardPalette_tests.js +0 -43
- package/test/ConnectionHandleManager_tests.js +0 -717
- package/test/ConnectionRenderer_tests.js +0 -591
- package/test/ConnectionStyle_tests.js +0 -90
- package/test/DataManager_tests.js +0 -859
- package/test/Geometry_tests.js +0 -767
- package/test/InteractionManager_tests.js +0 -279
- package/test/Layout_tests.js +0 -1604
- package/test/NodeView_tests.js +0 -66
- package/test/PanelManager_tests.js +0 -172
- package/test/PathGenerator_tests.js +0 -978
- package/test/PortRenderer_tests.js +0 -376
- package/test/RenderManager_tests.js +0 -756
- package/test/Renderer_tests.js +0 -133
- package/test/SelectionManager_tests.js +0 -185
- package/test/StylePresets_tests.js +0 -153
- package/test/ToolbarExtraButtons_tests.js +0 -138
- package/test/UndirectedConnections_tests.js +0 -70
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";function _regeneratorValues(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],o=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}}}throw new TypeError(_typeof(t)+" is not iterable")}function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var t,e,o="function"==typeof Symbol?Symbol:{},n=o.iterator||"@@iterator",r=o.toStringTag||"@@toStringTag";function i(o,n,r,i){var l=n&&n.prototype instanceof s?n:s,c=Object.create(l.prototype);return _regeneratorDefine2(c,"_invoke",function(o,n,r){var i,s,l,c=0,p=r||[],u=!1,d={p:0,n:0,v:t,a:h,f:h.bind(t,4),d:function(e,o){return i=e,s=0,l=t,d.n=o,a}};function h(o,n){for(s=o,l=n,e=0;!u&&c&&!r&&e<p.length;e++){var r,i=p[e],h=d.p,f=i[2];o>3?(r=f===n)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=t):i[0]<=h&&((r=o<2&&h<i[1])?(s=0,d.v=n,d.n=i[1]):h<f&&(r=o<3||i[0]>n||n>f)&&(i[4]=o,i[5]=n,d.n=f,s=0))}if(r||o>1)return a;throw u=!0,n}return function(r,p,f){if(c>1)throw TypeError("Generator is already running");for(u&&1===p&&h(p,f),s=p,l=f;(e=s<2?t:l)||!u;){i||(s?s<3?(s>1&&(d.n=-1),h(s,l)):d.n=l:d.v=l);try{if(c=2,i){if(s||(r="next"),e=i[r]){if(!(e=e.call(i,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,s<2&&(s=0)}else 1===s&&(e=i.return)&&e.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+r+"' method"),s=1);i=t}else if((e=(u=d.n<0)?l:o.call(n,d))!==a)break}catch(e){i=t,s=1,l=e}finally{c=1}}return{value:e,done:u}}}(o,r,i),!0),c}var a={};function s(){}function l(){}function c(){}e=Object.getPrototypeOf;var p=[][n]?e(e([][n]())):(_regeneratorDefine2(e={},n,function(){return this}),e),u=c.prototype=s.prototype=Object.create(p);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,c):(t.__proto__=c,_regeneratorDefine2(t,r,"GeneratorFunction")),t.prototype=Object.create(u),t}return l.prototype=c,_regeneratorDefine2(u,"constructor",c),_regeneratorDefine2(c,"constructor",l),l.displayName="GeneratorFunction",_regeneratorDefine2(c,r,"GeneratorFunction"),_regeneratorDefine2(u),_regeneratorDefine2(u,r,"Generator"),_regeneratorDefine2(u,n,function(){return this}),_regeneratorDefine2(u,"toString",function(){return"[object Generator]"}),(_regenerator=function(){return{w:i,m:d}})()}function _regeneratorDefine2(t,e,o,n){var r=Object.defineProperty;try{r({},"",{})}catch(t){r=0}_regeneratorDefine2=function(t,e,o,n){function i(e,o){_regeneratorDefine2(t,e,function(t){return this._invoke(e,o,t)})}e?r?r(t,e,{value:o,enumerable:!n,configurable:!n,writable:!n}):t[e]=o:(i("next",0),i("throw",1),i("return",2))},_regeneratorDefine2(t,e,o,n)}function asyncGeneratorStep(t,e,o,n,r,i,a){try{var s=t[i](a),l=s.value}catch(t){return void o(t)}s.done?e(l):Promise.resolve(l).then(n,r)}function _asyncToGenerator(t){return function(){var e=this,o=arguments;return new Promise(function(n,r){var i=t.apply(e,o);function a(t){asyncGeneratorStep(i,n,r,a,s,"next",t)}function s(t){asyncGeneratorStep(i,n,r,a,s,"throw",t)}a(void 0)})}}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 _iterableToArrayLimit(t,e){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var n,r,i,a,s=[],l=!0,c=!1;try{if(i=(o=o.call(t)).next,0===e){if(Object(o)!==o)return;l=!1}else for(;!(l=(n=i.call(o)).done)&&(s.push(n.value),s.length!==e);l=!0);}catch(t){c=!0,r=t}finally{try{if(!l&&null!=o.return&&(a=o.return(),Object(a)!==a))return}finally{if(c)throw r}}return s}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _createForOfIteratorHelper(t,e){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray2(t))||e&&t&&"number"==typeof t.length){o&&(t=o);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,s=!1;return{s:function(){o=o.call(t)},n:function(){var t=o.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==o.return||o.return()}finally{if(s)throw i}}}}function _unsupportedIterableToArray2(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray2(t,e);var o={}.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray2(t,e):void 0}}function _arrayLikeToArray2(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,n=Array(e);o<e;o++)n[o]=t[o];return n}function _defineProperty(t,e,o){return(e=_toPropertyKey2(e))in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var o=0;o<e.length;o++){var n=e[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_toPropertyKey2(n.key),n)}}function _createClass2(t,e,o){return e&&_defineProperties(t.prototype,e),o&&_defineProperties(t,o),Object.defineProperty(t,"prototype",{writable:!1}),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 o=t[Symbol.toPrimitive];if(void 0!==o){var n=o.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 _callSuper(t,e,o){return e=_getPrototypeOf(e),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(e,o||[],_getPrototypeOf(t).constructor):e.apply(t,o))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function(){return!!t})()}function _superPropGet(t,e,o,n){var r=_get(_getPrototypeOf(1&n?t.prototype:t),e,o);return 2&n&&"function"==typeof r?function(t){return r.apply(o,t)}:r}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,o){var n=_superPropBase(t,e);if(n){var r=Object.getOwnPropertyDescriptor(n,e);return r.get?r.get.call(arguments.length<3?t:o):r.value}},_get.apply(null,arguments)}function _superPropBase(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf(t)););return t}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}!function(t){if("object"===("undefined"==typeof exports?"undefined":_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).PictSectionFlowExampleSimpleCards=t()}}(function(){return function t(e,o,n){function r(a,s){if(!o[a]){if(!e[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var p=o[a]={exports:{}};e[a][0].call(p.exports,function(t){return r(e[a][1][t]||t)},p,p.exports,t,e,o,n)}return o[a].exports}for(var i="function"==typeof require&&require,a=0;a<n.length;a++)r(n[a]);return r}({1:[function(t,e,o){e.exports={Name:"Pict Section Flow Example",Hash:"FlowExample",MainViewportViewIdentifier:"FlowExample-Layout",AutoSolveAfterInitialize:!0,AutoRenderMainViewportViewAfterInitialize:!1,AutoRenderViewsAfterInitialize:!1,pict_configuration:{Product:"FlowExample-Pict-Application"}}},{}],2:[function(t,e,o){var n=t("pict-application"),r=t("pict-router"),i=t("pict-section-form"),a=t("pict-section-content"),s=t("./views/PictView-FlowExample-Layout.js"),l=t("./views/PictView-FlowExample-TopBar.js"),c=t("./views/PictView-FlowExample-BottomBar.js"),p=t("./views/PictView-FlowExample-MainWorkspace.js"),u=t("./views/PictView-FlowExample-About.js"),d=t("./views/PictView-FlowExample-Documentation.js"),h=t("./views/PictView-FlowExample-FileWriteInfo.js"),f=function(e){function o(e,n,f){var m;return _classCallCheck(this,o),(m=_callSuper(this,o,[e,n,f])).pict.addProvider("PictRouter",t("./providers/PictRouter-FlowExample-Configuration.json"),r),m.pict.addView("FlowExample-Layout",s.default_configuration,s),m.pict.addView("FlowExample-TopBar",l.default_configuration,l),m.pict.addView("FlowExample-BottomBar",c.default_configuration,c),m.pict.addView("FlowExample-MainWorkspace",p.default_configuration,p),m.pict.addView("FlowExample-About",u.default_configuration,u),m.pict.addView("FlowExample-Documentation",d.default_configuration,d),m.pict.addView("FlowExample-FileWriteInfo",h.default_configuration,h),m.pict.addServiceType("PictFormMetacontroller",i.PictFormMetacontroller),m.pict.addServiceType("PictContentProvider",a.PictContentProvider),m}return _inherits(o,e),_createClass2(o,[{key:"onAfterInitializeAsync",value:function(t){return this.pict.AppData.FlowExample={CurrentRoute:"home"},this.pict.AppData.FlowExample.SampleFlow={Nodes:[{Hash:"node-start",Type:"start",X:50,Y:180,Width:140,Height:80,Title:"Start",Ports:[{Hash:"port-start-out",Direction:"output",Side:"right",Label:"Out"}],Data:{}},{Hash:"node-fread",Type:"FREAD",X:270,Y:160,Width:180,Height:80,Title:"Read Config",Ports:[{Hash:"port-fread-in",Direction:"input",Side:"left",Label:"Path"},{Hash:"port-fread-data",Direction:"output",Side:"right",Label:"Data"},{Hash:"port-fread-err",Direction:"output",Side:"bottom",Label:"Error"}],Data:{}},{Hash:"node-check",Type:"ITE",X:530,Y:140,Width:200,Height:100,Title:"Has Items?",Ports:[{Hash:"port-check-in",Direction:"input",Side:"left",Label:"In"},{Hash:"port-check-then",Direction:"output",Side:"right",Label:"Then"},{Hash:"port-check-else",Direction:"output",Side:"bottom",Label:"Else"}],Data:{}},{Hash:"node-each",Type:"EACH",X:810,Y:120,Width:200,Height:100,Title:"Process Items",Ports:[{Hash:"port-each-in",Direction:"input",Side:"left",Label:"Collection"},{Hash:"port-each-item",Direction:"output",Side:"right",Label:"Item"},{Hash:"port-each-done",Direction:"output",Side:"bottom",Label:"Done"}],Data:{}},{Hash:"node-get",Type:"GET",X:1090,Y:110,Width:170,Height:80,Title:"Read Item",Ports:[{Hash:"port-get-in",Direction:"input",Side:"left",Label:"In"},{Hash:"port-get-value",Direction:"output",Side:"right",Label:"Value"}],Data:{}},{Hash:"node-set",Type:"SET",X:1340,Y:110,Width:170,Height:80,Title:"Transform",Ports:[{Hash:"port-set-in",Direction:"input",Side:"left",Label:"In"},{Hash:"port-set-out",Direction:"output",Side:"right",Label:"Out"}],Data:{}},{Hash:"node-switch",Type:"SW",X:1590,Y:100,Width:200,Height:120,Title:"Route Output",Ports:[{Hash:"port-sw-in",Direction:"input",Side:"left",Label:"In"},{Hash:"port-sw-a",Direction:"output",Side:"right",Label:"Case A"},{Hash:"port-sw-b",Direction:"output",Side:"right",Label:"Case B"},{Hash:"port-sw-default",Direction:"output",Side:"bottom",Label:"Default"}],Data:{}},{Hash:"node-log",Type:"LOG",X:1590,Y:310,Width:160,Height:80,Title:"Log Results",Ports:[{Hash:"port-log-in",Direction:"input",Side:"left",Label:"Values"},{Hash:"port-log-out",Direction:"output",Side:"right",Label:"Pass"}],Data:{}},{Hash:"node-fwrite",Type:"FWRITE",X:1870,Y:160,Width:180,Height:80,Title:"Write Output",Ports:[{Hash:"port-fwrite-path",Direction:"input",Side:"left",Label:"Path"},{Hash:"port-fwrite-data",Direction:"input",Side:"left",Label:"Data"},{Hash:"port-fwrite-done",Direction:"output",Side:"right",Label:"Done"},{Hash:"port-fwrite-err",Direction:"output",Side:"bottom",Label:"Error"}],Data:{}},{Hash:"node-end",Type:"end",X:2130,Y:180,Width:140,Height:80,Title:"End",Ports:[{Hash:"port-end-in",Direction:"input",Side:"left",Label:"In"}],Data:{}},{Hash:"node-log-err",Type:"LOG",X:530,Y:380,Width:160,Height:80,Title:"Log Error",Ports:[{Hash:"port-logerr-in",Direction:"input",Side:"left",Label:"Values"},{Hash:"port-logerr-out",Direction:"output",Side:"right",Label:"Pass"}],Data:{}},{Hash:"node-halt",Type:"halt",X:1870,Y:380,Width:140,Height:80,Title:"Halt",Ports:[{Hash:"port-halt-in",Direction:"input",Side:"left",Label:"In"}],Data:{}},{Hash:"node-status",Type:"STAT",X:50,Y:530,Width:200,Height:110,Title:"Service Health",Ports:[{Hash:"port-stat-in",Direction:"input",Side:"left",Label:"Check"},{Hash:"port-stat-ok",Direction:"output",Side:"right",Label:"Healthy"},{Hash:"port-stat-warn",Direction:"output",Side:"bottom",Label:"Degraded"}],Data:{}},{Hash:"node-preview",Type:"PREV",X:340,Y:530,Width:200,Height:120,Title:"Inspect Payload",Ports:[{Hash:"port-prev-in",Direction:"input",Side:"left",Label:"Data"},{Hash:"port-prev-out",Direction:"output",Side:"right",Label:"Pass"}],Data:{}},{Hash:"node-spark",Type:"SPKL",X:630,Y:530,Width:220,Height:110,Title:"Throughput",Ports:[{Hash:"port-spark-in",Direction:"input",Side:"left",Label:"Values"},{Hash:"port-spark-out",Direction:"output",Side:"right",Label:"Stats"}],Data:{}},{Hash:"node-comment",Type:"NOTE",X:940,Y:540,Width:180,Height:100,Title:"Note",Ports:[],Data:{NoteText:"These four cards demonstrate the three BodyContent renderer types: SVG, HTML, and Canvas."}}],Connections:[{Hash:"conn-1",SourceNodeHash:"node-start",SourcePortHash:"port-start-out",TargetNodeHash:"node-fread",TargetPortHash:"port-fread-in",Data:{}},{Hash:"conn-2",SourceNodeHash:"node-fread",SourcePortHash:"port-fread-data",TargetNodeHash:"node-check",TargetPortHash:"port-check-in",Data:{}},{Hash:"conn-3",SourceNodeHash:"node-check",SourcePortHash:"port-check-then",TargetNodeHash:"node-each",TargetPortHash:"port-each-in",Data:{}},{Hash:"conn-4",SourceNodeHash:"node-each",SourcePortHash:"port-each-item",TargetNodeHash:"node-get",TargetPortHash:"port-get-in",Data:{}},{Hash:"conn-5",SourceNodeHash:"node-get",SourcePortHash:"port-get-value",TargetNodeHash:"node-set",TargetPortHash:"port-set-in",Data:{}},{Hash:"conn-6",SourceNodeHash:"node-set",SourcePortHash:"port-set-out",TargetNodeHash:"node-switch",TargetPortHash:"port-sw-in",Data:{}},{Hash:"conn-7",SourceNodeHash:"node-switch",SourcePortHash:"port-sw-a",TargetNodeHash:"node-fwrite",TargetPortHash:"port-fwrite-data",Data:{}},{Hash:"conn-8",SourceNodeHash:"node-switch",SourcePortHash:"port-sw-b",TargetNodeHash:"node-log",TargetPortHash:"port-log-in",Data:{}},{Hash:"conn-9",SourceNodeHash:"node-switch",SourcePortHash:"port-sw-default",TargetNodeHash:"node-log-err",TargetPortHash:"port-logerr-in",Data:{}},{Hash:"conn-10",SourceNodeHash:"node-each",SourcePortHash:"port-each-done",TargetNodeHash:"node-log",TargetPortHash:"port-log-in",Data:{}},{Hash:"conn-11",SourceNodeHash:"node-log",SourcePortHash:"port-log-out",TargetNodeHash:"node-fwrite",TargetPortHash:"port-fwrite-path",Data:{}},{Hash:"conn-12",SourceNodeHash:"node-fwrite",SourcePortHash:"port-fwrite-done",TargetNodeHash:"node-end",TargetPortHash:"port-end-in",Data:{}},{Hash:"conn-13",SourceNodeHash:"node-fread",SourcePortHash:"port-fread-err",TargetNodeHash:"node-log-err",TargetPortHash:"port-logerr-in",Data:{}},{Hash:"conn-14",SourceNodeHash:"node-check",SourcePortHash:"port-check-else",TargetNodeHash:"node-log-err",TargetPortHash:"port-logerr-in",Data:{}},{Hash:"conn-15",SourceNodeHash:"node-log-err",SourcePortHash:"port-logerr-out",TargetNodeHash:"node-end",TargetPortHash:"port-end-in",Data:{}},{Hash:"conn-16",SourceNodeHash:"node-fwrite",SourcePortHash:"port-fwrite-err",TargetNodeHash:"node-halt",TargetPortHash:"port-halt-in",Data:{}},{Hash:"conn-17",SourceNodeHash:"node-status",SourcePortHash:"port-stat-ok",TargetNodeHash:"node-preview",TargetPortHash:"port-prev-in",Data:{}},{Hash:"conn-18",SourceNodeHash:"node-preview",SourcePortHash:"port-prev-out",TargetNodeHash:"node-spark",TargetPortHash:"port-spark-in",Data:{}}],ViewState:{PanX:0,PanY:0,Zoom:1,SelectedNodeHash:null,SelectedConnectionHash:null}},this.pict.views["FlowExample-Layout"].render(),_superPropGet(o,"onAfterInitializeAsync",this,3)([t])}},{key:"navigateTo",value:function(t){this.pict.providers.PictRouter.navigate(t)}},{key:"showView",value:function(t){t in this.pict.views?(this.pict.AppData.FlowExample.CurrentRoute=t,this.pict.views[t].render()):(this.pict.log.warn("View [".concat(t,"] not found; falling back to main workspace.")),this.pict.views["FlowExample-MainWorkspace"].render())}}])}(n);e.exports=f,e.exports.default_configuration=t("./Pict-Application-FlowExample-Configuration.json")},{"./Pict-Application-FlowExample-Configuration.json":1,"./providers/PictRouter-FlowExample-Configuration.json":16,"./views/PictView-FlowExample-About.js":18,"./views/PictView-FlowExample-BottomBar.js":19,"./views/PictView-FlowExample-Documentation.js":20,"./views/PictView-FlowExample-FileWriteInfo.js":21,"./views/PictView-FlowExample-Layout.js":22,"./views/PictView-FlowExample-MainWorkspace.js":23,"./views/PictView-FlowExample-TopBar.js":24,"pict-application":30,"pict-router":33,"pict-section-content":38,"pict-section-form":95}],3:[function(t,e,o){e.exports={EACH:"<h1>Each (Loop Iterator)</h1><p>The <b>Each</b> node iterates over a collection, executing connected downstream nodes once for each item. When iteration completes, the <b>Done</b> output fires.</p><h2>Ports</h2><ul><li><b>Collection</b> (input) -- an array or iterable to loop over</li><li><b>Item</b> (output) -- fires once per element with the current item</li><li><b>Done</b> (output) -- fires after all items have been processed</li></ul><h2>Behavior</h2><p>When a collection arrives at the input port, the Each node processes items sequentially. For every element in the collection, the <b>Item</b> output is activated with the current element as the payload. After the final element is processed, the <b>Done</b> output fires to signal completion.</p><h2>Tips</h2><ul><li>Connect <b>Item</b> to a processing chain and <b>Done</b> to continuation logic</li><li>Nested loops are supported by chaining multiple Each nodes</li><li>Empty collections skip directly to the <b>Done</b> output</li></ul>",FREAD:"<h1>File Read</h1><p>The <b>File Read</b> node reads the contents of a file from the filesystem and outputs the data.</p><h2>Ports</h2><ul><li><b>Path</b> (input) -- the filesystem path to read</li><li><b>Data</b> (output) -- the file contents on success</li><li><b>Error</b> (output) -- fires if the read operation fails</li></ul><h2>Properties</h2><ul><li><b>FilePath</b> -- the path to the file to read</li><li><b>Encoding</b> -- character encoding for text files (e.g. <code>utf8</code>, <code>ascii</code>)</li></ul><h2>Behavior</h2><p>When triggered, the node reads the file at the configured path. On success, the raw file contents are emitted from the <b>Data</b> output. If the file does not exist or cannot be read, the <b>Error</b> output fires with a descriptive error message.</p><h2>Tips</h2><ul><li>Use a Get Value node upstream to dynamically set the file path</li><li>Pair with a Data Preview node to inspect the file contents</li><li>Connect the <b>Error</b> output to logging or notification nodes for robust error handling</li></ul>",FWRITE:"<h1>File Write</h1><p>The <b>File Write</b> node writes data to a file on the filesystem.</p><h2>Ports</h2><ul><li><b>Path</b> (input) -- the destination filesystem path</li><li><b>Data</b> (input) -- the content to write</li><li><b>Done</b> (output) -- fires after a successful write</li><li><b>Error</b> (output) -- fires if the write operation fails</li></ul><h2>Behavior</h2><p>When both inputs are satisfied, the node writes the provided data to the specified file path. On success the <b>Done</b> output fires. If the write fails (for example due to permissions or a missing directory), the <b>Error</b> output fires with a descriptive error message.</p><h2>Properties Panel</h2><p>The properties panel shows a View-based info panel with details about the configured file path and write options.</p><h2>Tips</h2><ul><li>Directories in the path are not created automatically -- ensure they exist before writing</li><li>Combine with a Set Value node to format data before writing</li><li>Connect the <b>Error</b> output to a Log Values node to capture write failures</li></ul>",GET:"<h1>Get Value</h1><p>The <b>Get Value</b> node retrieves a named variable from the flow context and emits its current value.</p><h2>Ports</h2><ul><li><b>In</b> (input) -- trigger to read the value</li><li><b>Value</b> (output) -- the retrieved value</li></ul><h2>Behavior</h2><p>When triggered, the node looks up a named key in the flow context and emits the stored value from the <b>Value</b> output. If the key does not exist, the output value is <code>undefined</code>.</p><h2>Usage</h2><p>Pair with a <b>Set Value</b> node to establish a read/write variable pattern. The Set Value node stores a value under a named key; the Get Value node retrieves it downstream.</p><h2>Tips</h2><ul><li>Variable names are case-sensitive</li><li>Use descriptive variable names to keep flows readable</li><li>Get Value is especially useful for accessing values set in a different branch of the flow</li></ul>",ITE:"<h1>If-Then-Else</h1><p>The <b>If-Then-Else</b> node evaluates a boolean condition expression and routes the flow to one of two outputs.</p><h2>Ports</h2><ul><li><b>In</b> (input) -- trigger that starts the evaluation</li><li><b>Then</b> (output) -- activated when the condition is <b>true</b></li><li><b>Else</b> (output) -- activated when the condition is <b>false</b></li></ul><h2>Behavior</h2><p>When the input fires, the node evaluates the configured condition expression against the current flow context. If the expression resolves to a truthy value, the <b>Then</b> output is activated. Otherwise, the <b>Else</b> output is activated. Exactly one output fires per evaluation.</p><h2>Configuration</h2><p>Set the condition expression in the node's data properties. The expression is evaluated in the flow context, giving it access to any variables set by upstream Set Value nodes.</p><h2>Tips</h2><ul><li>Chain multiple If-Then-Else nodes for complex branching logic</li><li>Connect the <b>Else</b> output to another If-Then-Else to build else-if chains</li><li>Use descriptive condition expressions to keep the flow self-documenting</li></ul>",LOG:"<h1>Log Values</h1><p>The <b>Log Values</b> node writes incoming data to the console or log output for debugging purposes.</p><h2>Ports</h2><ul><li><b>Values</b> (input, multi) -- accepts one or more connections carrying values to log</li><li><b>Pass</b> (output) -- passes the last received value through unchanged</li></ul><h2>Properties</h2><ul><li><b>LogLevel</b> -- the severity level for the log entry (e.g. <code>info</code>, <code>warn</code>, <code>error</code>, <code>trace</code>)</li><li><b>Format</b> -- an optional format string controlling how values are serialized</li></ul><h2>Behavior</h2><p>When data arrives at any input connection, the node serializes the value and writes it to the configured log output at the specified log level. The data is then forwarded to the <b>Pass</b> output unchanged, so the Log Values node can be inserted inline without disrupting the flow.</p><h2>Tips</h2><ul><li>Use multiple input connections to aggregate log output from parallel branches</li><li>Set the log level to <code>trace</code> during development and <code>warn</code> in production flows</li><li>Insert between any two nodes for quick inline debugging</li></ul>",NOTE:"<h1>Comment</h1><p>The <b>Comment</b> node is a floating annotation for documenting flow logic. It has no input or output ports and does not participate in data flow execution.</p><h2>Usage</h2><p>Drop a Comment node anywhere on the canvas to add context, explain design decisions, or leave notes for collaborators. The note text is stored in the node's <code>Data.NoteText</code> property and displayed directly in the node body.</p><h2>Properties</h2><ul><li><b>NoteText</b> -- the annotation content displayed in the node body</li></ul><h2>Tips</h2><ul><li>Use comments to explain complex branching logic or non-obvious configuration choices</li><li>Comment nodes can be freely repositioned without affecting connections</li><li>Group related comments near the nodes they describe</li></ul>",PREV:"<h1>Data Preview</h1><p>The <b>Data Preview</b> node displays a tabular summary of the data flowing through it. Use it as an inline debugger to inspect field names, types, and current values without interrupting the flow.</p><h2>Ports</h2><ul><li><b>Data</b> (input) -- the data object to inspect</li><li><b>Pass</b> (output) -- passes the data through unchanged</li></ul><h2>Behavior</h2><p>The preview renders a compact table inside the node body showing each field's name, inferred data type, and current value. The node is pass-through: data enters on the left and exits on the right without modification.</p><h2>Tips</h2><ul><li>Insert a Data Preview between two nodes to inspect intermediate state</li><li>The preview updates whenever new data arrives at the input port</li><li>Useful during development for verifying data transformations</li></ul>",SET:"<h1>Set Value</h1><p>The <b>Set Value</b> node assigns a value to a named variable in the flow context.</p><h2>Ports</h2><ul><li><b>In</b> (input) -- trigger to perform the assignment</li><li><b>Out</b> (output) -- fires after the value has been set</li></ul><h2>Properties</h2><ul><li><b>Variable Name</b> -- the key under which the value will be stored</li><li><b>Value Expression</b> -- the expression to evaluate and assign</li></ul><h2>Behavior</h2><p>When triggered, the node evaluates the <b>Value Expression</b> and stores the result under the configured <b>Variable Name</b> in the flow context. Downstream nodes can read this value using a <b>Get Value</b> node with the same variable name.</p><h2>Configuration</h2><p>Open the properties panel to configure the variable name and value expression using the built-in form editor.</p><h2>Tips</h2><ul><li>Variable names are case-sensitive -- use consistent naming conventions</li><li>Value expressions have access to the current flow context</li><li>Use Set Value at the beginning of a flow to initialize default variables</li></ul>",SPKL:"<h1>Sparkline</h1><p>The <b>Sparkline</b> node renders a live sparkline chart visualizing numeric throughput data directly in the node body.</p><h2>Ports</h2><ul><li><b>Values</b> (input) -- a numeric array or stream of values to plot</li><li><b>Stats</b> (output) -- emits computed statistics (min, max, mean) for the data set</li></ul><h2>Behavior</h2><p>The node draws a compact line chart inside the node body using a canvas renderer. As new numeric data arrives at the input, the chart updates to reflect the latest values. The filled area under the line and an endpoint dot provide visual emphasis on the current value.</p><h2>Appearance</h2><p>The chart uses the node's theme color for the line and fill area. The last data point is highlighted with a dot. The sparkline scales automatically to fit the available body area.</p><h2>Tips</h2><ul><li>Connect to any node that produces a numeric array for instant visualization</li><li>Use alongside a Data Preview node for combined visual and tabular inspection</li><li>The Stats output is useful for feeding threshold values into an If-Then-Else node</li></ul>",STAT:"<h1>Status Monitor</h1><p>The <b>Status Monitor</b> node monitors the health status of upstream services and reports availability.</p><h2>Ports</h2><ul><li><b>Check</b> (input, multi) -- accepts connections from one or more services to monitor</li><li><b>Healthy</b> (output) -- fires when all monitored services report healthy</li><li><b>Degraded</b> (output) -- fires when one or more services report degraded status</li></ul><h2>Behavior</h2><p>The node body displays a visual health grid showing the status of each monitored service with colored indicators. Green indicates a healthy service; yellow indicates degraded performance. When all services are healthy, the <b>Healthy</b> output is activated. If any service reports degraded status, the <b>Degraded</b> output fires instead.</p><h2>Appearance</h2><p>The node body renders SVG status circles labeled with service names (e.g. API, DB, Cache, Queue). Port labels appear on hover for a cleaner default appearance.</p><h2>Tips</h2><ul><li>Connect multiple services to the <b>Check</b> input to build a comprehensive health dashboard</li><li>Route the <b>Degraded</b> output to notification or alerting nodes</li><li>Combine with an Each node to check a dynamic list of service endpoints</li></ul>",SW:"<h1>Switch</h1><p>The <b>Switch</b> node routes execution to one of multiple outputs based on a matching value, similar to a switch/case statement in programming.</p><h2>Ports</h2><ul><li><b>In</b> (input) -- the value to match against cases</li><li><b>Case A</b> (output) -- fires when the input matches case A</li><li><b>Case B</b> (output) -- fires when the input matches case B</li><li><b>Default</b> (output) -- fires when the input does not match any defined case</li></ul><h2>Behavior</h2><p>When a value arrives at the input, the node compares it against each configured case. The first matching case's output is activated. If no case matches, the <b>Default</b> output fires. Only one output is activated per evaluation.</p><h2>Configuration</h2><p>Define case match values in the node's data properties. Each case corresponds to one of the named outputs.</p><h2>Tips</h2><ul><li>Add more output ports by extending the card definition for additional cases</li><li>Use the <b>Default</b> output as a catch-all for unexpected values</li><li>Chain a Switch after an If-Then-Else for multi-level routing logic</li><li>Case matching is based on strict equality</li></ul>"}},{}],4:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Comment",Help:r.NOTE||!1,Name:"Annotation",Code:"NOTE",Description:"A floating annotation or comment node for documenting flow logic.",Icon:"NOTE",Tooltip:"Comment: Add a note to the diagram",Category:"Documentation",TitleBarColor:"#f39c12",BodyStyle:{fill:"#fef9e7",stroke:"#f39c12"},Width:180,Height:100,Inputs:[],Outputs:[],ShowTypeLabel:!1,LabelsInFront:!1,BodyContent:{ContentType:"html",Template:'<div style="padding:6px 8px;font-size:10px;line-height:1.5;color:#7d6608;font-style:italic">{~D:Record.Data.NoteText~}</div>'}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],5:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Data Preview",Help:r.PREV||!1,Name:"Inspect Data",Code:"PREV",Description:"Displays a preview of the data flowing through this node.",Icon:"PREV",Tooltip:"Data Preview: View data summary",Category:"Debug",TitleBarColor:"#2980b9",BodyStyle:{fill:"#ebf5fb",stroke:"#2980b9"},Width:200,Height:120,Inputs:[{Name:"Data",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Pass",Side:"right"}],ShowTypeLabel:!1,PortLabelPadding:!0,BodyContent:{ContentType:"html",Template:'<table style="width:100%;border-collapse:collapse;font-size:9px;color:#2c3e50"><tr style="background:#d6eaf8"><td style="padding:3px 5px;font-weight:600">Field</td><td style="padding:3px 5px;font-weight:600">Type</td><td style="padding:3px 5px;font-weight:600">Value</td></tr><tr><td style="padding:2px 5px;border-top:1px solid #d5dbdb">name</td><td style="padding:2px 5px;border-top:1px solid #d5dbdb;color:#8e44ad">str</td><td style="padding:2px 5px;border-top:1px solid #d5dbdb;color:#7f8c8d">"config"</td></tr><tr><td style="padding:2px 5px;border-top:1px solid #d5dbdb">count</td><td style="padding:2px 5px;border-top:1px solid #d5dbdb;color:#8e44ad">num</td><td style="padding:2px 5px;border-top:1px solid #d5dbdb;color:#7f8c8d">42</td></tr><tr><td style="padding:2px 5px;border-top:1px solid #d5dbdb">active</td><td style="padding:2px 5px;border-top:1px solid #d5dbdb;color:#8e44ad">bool</td><td style="padding:2px 5px;border-top:1px solid #d5dbdb;color:var(--theme-color-status-success, #27ae60)">true</td></tr></table>'}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],6:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Each",Help:r.EACH||!1,Name:"Loop Iterator",Code:"EACH",Description:"Iterates over a collection, executing the body for each item.",Icon:"EACH",Tooltip:"Each: Iterate over items in a collection",Category:"Control Flow",TitleBarColor:"#8e44ad",BodyStyle:{fill:"#f5eef8",stroke:"#8e44ad"},Width:200,Height:100,Inputs:[{Name:"Collection",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Item",Side:"right"},{Name:"Done",Side:"bottom"}]},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],7:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"File Read",Help:r.FREAD||!1,Name:"Read File",Code:"FREAD",Description:"Reads the contents of a file from the filesystem.",Icon:"FREAD",Tooltip:"File Read: Read data from a file",Category:"I/O",TitleBarColor:"#2980b9",BodyStyle:{fill:"#eaf2f8",stroke:"#2980b9"},Width:180,Height:80,Inputs:[{Name:"Path",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Data",Side:"right"},{Name:"Error",Side:"bottom"}],PropertiesPanel:{PanelType:"Template",DefaultWidth:280,DefaultHeight:160,Title:"File Read Settings",Configuration:{Templates:[{Hash:"flow-card-file-read-panel",Template:'<div style="padding:4px"><label style="font-size:11px;color:#7f8c8d">File Path</label><div style="font-size:12px;padding:4px 0">{~D:Record.Data.FilePath~}</div><label style="font-size:11px;color:#7f8c8d">Encoding</label><div style="font-size:12px;padding:4px 0">{~D:Record.Data.Encoding~}</div></div>'}],TemplateHash:"flow-card-file-read-panel"}}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],8:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"File Write",Help:r.FWRITE||!1,Name:"Write File",Code:"FWRITE",Description:"Writes data to a file on the filesystem.",Icon:"FWRITE",Tooltip:"File Write: Write data to a file",Category:"I/O",TitleBarColor:"#27ae60",BodyStyle:{fill:"#eafaf1",stroke:"#27ae60"},Width:180,Height:80,Inputs:[{Name:"Path",Side:"left",MinimumInputCount:1,MaximumInputCount:1},{Name:"Data",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Done",Side:"right"},{Name:"Error",Side:"bottom"}],PropertiesPanel:{PanelType:"View",DefaultWidth:260,DefaultHeight:180,Title:"File Write Info",Configuration:{ViewHash:"FlowExample-FileWriteInfo"}}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],9:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Get Value",Help:r.GET||!1,Name:"Read Value",Code:"GET",Description:"Retrieves a named value from the flow context.",Icon:"GET",Tooltip:"Get Value: Read a value from the context",Category:"Data",TitleBarColor:"#2c3e50",BodyStyle:{fill:"#ebedef",stroke:"#2c3e50"},Width:170,Height:80,Inputs:[{Name:"In",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Value",Side:"right"}]},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],10:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"If-Then-Else",Name:"Conditional Branch",Code:"ITE",Description:"Evaluates a condition and routes to the Then or Else branch.",Help:r.ITE||!1,Icon:"ITE",Tooltip:"If-Then-Else: Routes flow based on a boolean condition",Category:"Control Flow",TitleBarColor:"#e67e22",BodyStyle:{fill:"#fef5e7",stroke:"#e67e22"},Width:200,Height:100,Inputs:[{Name:"In",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Then",Side:"right"},{Name:"Else",Side:"bottom"}],PropertiesPanel:{PanelType:"Markdown",DefaultWidth:300,DefaultHeight:200,Title:"If-Then-Else Info",Configuration:{Markdown:"## Conditional Branch\n\nEvaluates a **boolean condition** and routes the flow:\n\n- **Then** output: condition is *true*\n- **Else** output: condition is *false*\n\nSet the condition expression in the node data."}}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],11:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Log Values",Help:r.LOG||!1,Name:"Log to Console",Code:"LOG",Description:"Logs input values to the console or log output.",Icon:"LOG",Tooltip:"Log Values: Output values to the log",Category:"Debug",TitleBarColor:"#7f8c8d",BodyStyle:{fill:"#f2f3f4",stroke:"#7f8c8d"},Width:160,Height:80,Inputs:[{Name:"Values",Side:"left",MinimumInputCount:1,MaximumInputCount:-1}],Outputs:[{Name:"Pass",Side:"right"}],PropertiesPanel:{PanelType:"Template",DefaultWidth:260,DefaultHeight:140,Title:"Log Settings",Configuration:{Templates:[{Hash:"flow-card-log-panel",Template:'<div style="padding:4px"><label style="font-size:11px;color:#7f8c8d">Log Level</label><div style="font-size:12px;padding:4px 0">{~D:Record.Data.LogLevel~}</div><label style="font-size:11px;color:#7f8c8d">Format</label><div style="font-size:12px;padding:4px 0">{~D:Record.Data.Format~}</div></div>'}],TemplateHash:"flow-card-log-panel"}}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],12:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Set Value",Name:"Assign Value",Code:"SET",Description:"Sets a named value in the flow context.",Help:r.SET||!1,Icon:"SET",Tooltip:"Set Value: Assign a value in the context",Category:"Data",TitleBarColor:"#16a085",BodyStyle:{fill:"#e8f8f5",stroke:"#16a085"},Width:170,Height:80,Inputs:[{Name:"In",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Out",Side:"right"}],PropertiesPanel:{PanelType:"Form",DefaultWidth:320,DefaultHeight:200,Title:"Set Value Properties",Configuration:{Manifest:{Scope:"FlowCardSetValue",Sections:[{Name:"Value Assignment",Hash:"SetValueSection",Groups:[{Name:"Settings",Hash:"SetValueGroup"}]}],Descriptors:{"Record.Data.VariableName":{Name:"Variable Name",Hash:"VariableName",DataType:"String",Default:"",PictForm:{Section:"SetValueSection",Group:"SetValueGroup",Row:1,Width:12}},"Record.Data.Expression":{Name:"Value Expression",Hash:"Expression",DataType:"String",Default:"",PictForm:{Section:"SetValueSection",Group:"SetValueGroup",Row:2,Width:12,InputType:"TextArea"}}}}}}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],13:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Sparkline",Help:r.SPKL||!1,Name:"Metric Chart",Code:"SPKL",Description:"Renders a live sparkline visualization of numeric throughput data.",Icon:"SPKL",Tooltip:"Sparkline: Visualize numeric throughput",Category:"Visualization",TitleBarColor:"#c0392b",BodyStyle:{fill:"#fdedec",stroke:"#c0392b"},Width:220,Height:110,Inputs:[{Name:"Values",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Stats",Side:"right"}],ShowTypeLabel:!1,PortLabelsVertical:!0,PortLabelPadding:!0,LabelsInFront:!0,BodyContent:{ContentType:"canvas",RenderCallback:function(t,e,o,n){var r=t.getContext("2d");if(r){var i=t.width,a=t.height,s=[12,19,8,25,15,30,22,18,35,28,14,32,20,26,10,24,33,17,29,21],l=Math.max.apply(null,s),c=Math.min.apply(null,s),p=l-c||1,u=i-12,d=a-12,h=u/(s.length-1);r.beginPath(),r.moveTo(6,a-6);for(var f=0;f<s.length;f++){var m=6+f*h,v=6+d-(s[f]-c)/p*d;r.lineTo(m,v)}r.lineTo(6+u,a-6),r.closePath(),r.fillStyle="rgba(192, 57, 43, 0.12)",r.fill(),r.beginPath();for(var g=0;g<s.length;g++){var w=6+g*h,y=6+d-(s[g]-c)/p*d;0===g?r.moveTo(w,y):r.lineTo(w,y)}r.strokeStyle="#c0392b",r.lineWidth=1.5,r.lineJoin="round",r.lineCap="round",r.stroke();var b=6+(s.length-1)*h,D=6+d-(s[s.length-1]-c)/p*d;r.beginPath(),r.arc(b,D,3,0,2*Math.PI),r.fillStyle="#c0392b",r.fill()}}}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],14:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Status Monitor",Help:r.STAT||!1,Name:"Health Check",Code:"STAT",Description:"Monitors the health status of upstream services and reports availability.",Icon:"STAT",Tooltip:"Status Monitor: Check service health",Category:"Monitoring",TitleBarColor:"#27ae60",BodyStyle:{fill:"#eafaf1",stroke:"#27ae60"},Width:200,Height:110,Inputs:[{Name:"Check",Side:"left",MinimumInputCount:1,MaximumInputCount:-1}],Outputs:[{Name:"Healthy",Side:"right"},{Name:"Degraded",Side:"bottom"}],ShowTypeLabel:!1,PortLabelsOnHover:!0,LabelsInFront:!1,BodyContent:{ContentType:"svg",Template:'<circle cx="30" cy="28" r="6" fill="#27ae60" opacity="0.9"/><text x="42" y="32" font-size="9" fill="#2c3e50">API</text><circle cx="100" cy="28" r="6" fill="#27ae60" opacity="0.9"/><text x="112" y="32" font-size="9" fill="#2c3e50">DB</text><circle cx="30" cy="54" r="6" fill="#f39c12" opacity="0.9"/><text x="42" y="58" font-size="9" fill="#2c3e50">Cache</text><circle cx="100" cy="54" r="6" fill="#27ae60" opacity="0.9"/><text x="112" y="58" font-size="9" fill="#2c3e50">Queue</text>'}},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],15:[function(t,e,o){var n=t("pict-section-flow").PictFlowCard,r=t("../card-help-content"),i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},{Title:"Switch",Help:r.SW||!1,Name:"Multi-way Branch",Code:"SW",Description:"Routes flow to one of multiple cases based on a value.",Icon:"SW",Tooltip:"Switch: Multi-way branch on a value",Category:"Control Flow",TitleBarColor:"#d35400",BodyStyle:{fill:"#fbeee6",stroke:"#d35400"},Width:200,Height:120,Inputs:[{Name:"In",Side:"left",MinimumInputCount:1,MaximumInputCount:1}],Outputs:[{Name:"Case A",Side:"right"},{Name:"Case B",Side:"right"},{Name:"Default",Side:"bottom"}]},o),n])}return _inherits(e,t),_createClass2(e)}(n);e.exports=i},{"../card-help-content":3,"pict-section-flow":41}],16:[function(t,e,o){e.exports={ProviderIdentifier:"Pict-Router",AutoInitialize:!0,AutoInitializeOrdinal:0,Routes:[{path:"/Home",template:"{~LV:Pict.PictApplication.showView(`FlowExample-MainWorkspace`)~}"},{path:"/About",template:"{~LV:Pict.PictApplication.showView(`FlowExample-About`)~}"},{path:"/Documentation",template:"{~LV:Pict.PictApplication.showView(`FlowExample-Documentation`)~}"}]}},{}],17:[function(t,e,o){var n={core:{TitleBarColor:"#ab47bc",BodyStyle:{fill:"#f3e5f5",stroke:"#ab47bc"}},flow:{TitleBarColor:"#78909c",BodyStyle:{fill:"#eceff1",stroke:"#78909c"}},data:{TitleBarColor:"#ff9800",BodyStyle:{fill:"#fff3e0",stroke:"#ff9800"}},"file-io":{TitleBarColor:"#42a5f5",BodyStyle:{fill:"#eaf2f8",stroke:"#42a5f5"}},rest:{TitleBarColor:"#29b6f6",BodyStyle:{fill:"#e1f5fe",stroke:"#29b6f6"}},meadow:{TitleBarColor:"#66bb6a",BodyStyle:{fill:"#e8f5e9",stroke:"#66bb6a"}},pipeline:{TitleBarColor:"#ec407a",BodyStyle:{fill:"#fce4ec",stroke:"#ec407a"}},llm:{TitleBarColor:"#26a69a",BodyStyle:{fill:"#e0f7fa",stroke:"#26a69a"}},ext:{TitleBarColor:"#9c6afe",BodyStyle:{fill:"#ede9fe",stroke:"#9c6afe"}}};function r(t,e,o,r,i){var a={Hash:t,Type:"default",X:o,Y:r,Width:140,Height:70,Title:e,Ports:[{Hash:"".concat(t,"-in"),Direction:"input",Side:"left",Label:"In"},{Hash:"".concat(t,"-out"),Direction:"output",Side:"right",Label:"Out"}],Data:{}};if(i&&n[i]){var s=n[i];a.TitleBarColor=s.TitleBarColor,a.BodyStyle=s.BodyStyle}return a}function i(t,e,o){return{Hash:"c-".concat(t,"-").concat(e).concat(o?"-".concat(o):""),SourceNodeHash:t,SourcePortHash:"".concat(t,"-out"),TargetNodeHash:e,TargetPortHash:"".concat(e,"-in"),Data:{}}}function a(t,e,o,n,r){return{Nodes:t,Connections:e||[],OpenPanels:[],SavedLayouts:[],ViewState:{PanX:0,PanY:0,Zoom:1,SelectedNodeHash:null,SelectedConnectionHash:null,SelectedTetherHash:null},LayoutAlgorithm:o||"Custom",LayoutParameters:n||{},LayoutAutoApply:!!r}}var s={"linear-chain":{Name:"Linear Chain",Description:"A → B → C → D → E → F. Six nodes, single path. Layered (left-to-right) and Tabular (top-to-bottom) read like a story; Circular wastes a ring on what should be a line; ForcedFromCenter is overkill.",Recommended:"Layered",Flow:function(){for(var t=[],e=[],o=0;o<6;o++){var n="lc-".concat(String.fromCharCode(65+o));if(t.push(r(n,String.fromCharCode(65+o),100,100+110*o)),o>0){var s="lc-".concat(String.fromCharCode(65+o-1));e.push(i(s,n))}}return a(t,e)}()},"binary-tree":{Name:"Binary Tree (depth 3)",Description:"Root branches into 2 children, each into 2 grandchildren. Layered shows the hierarchy clearly (depth-by-depth); Circular puts the root at center with leaves on outer ring; Grid loses the parent-child relationships entirely.",Recommended:"Layered",Flow:function(){for(var t=[],e=[],o=["root","l","r","ll","lr","rl","rr"],n=["Root","L","R","LL","LR","RL","RR"],s=[[400,100],[250,240],[550,240],[150,380],[350,380],[450,380],[650,380]],l=0;l<o.length;l++)t.push(r("bt-".concat(o[l]),n[l],s[l][0],s[l][1]));return e.push(i("bt-root","bt-l")),e.push(i("bt-root","bt-r")),e.push(i("bt-l","bt-ll")),e.push(i("bt-l","bt-lr")),e.push(i("bt-r","bt-rl")),e.push(i("bt-r","bt-rr")),a(t,e)}()},"star-hub":{Name:"Star Hub (8 spokes)",Description:"One hub connected to 8 leaves. Circular shines (root at center, spokes evenly around); Layered crowds all 8 spokes in a single second column; ForcedFromCenter does an OK job; Grid ignores the topology completely.",Recommended:"Circular",Flow:function(){var t=[],e=[],o=[{key:"rest",label:"REST API"},{key:"meadow",label:"Meadow"},{key:"data",label:"Transform"},{key:"file-io",label:"File I/O"},{key:"pipeline",label:"Pipeline"},{key:"llm",label:"LLM"},{key:"ext",label:"Extension"},{key:"flow",label:"Control"}];t.push(r("star-hub","Hub",400,350,"core"));for(var n=0;n<o.length;n++){var s=n/o.length*2*Math.PI,l=400+Math.round(240*Math.cos(s)),c=350+Math.round(240*Math.sin(s)),p="star-s".concat(n);t.push(r(p,o[n].label,l,c,o[n].key)),e.push(i("star-hub",p))}return a(t,e)}()},"diamond-lattice":{Name:"Diamond Lattice (DAG)",Description:"Start fans out to 3 paths through 6 middle nodes (with cross-edges) and merges at End. Layered is in its element — the parallel depth structure becomes obvious. Tabular flattens it; Circular loses direction.",Recommended:"Layered",Flow:a([r("dl-start","Start",100,200),r("dl-a","A",300,100),r("dl-b","B",300,250),r("dl-c","C",300,400),r("dl-d","D",550,100),r("dl-e","E",550,250),r("dl-f","F",550,400),r("dl-merge","Merge",800,250),r("dl-end","End",1050,250)],[i("dl-start","dl-a"),i("dl-start","dl-b"),i("dl-start","dl-c"),i("dl-a","dl-d"),i("dl-a","dl-e"),i("dl-b","dl-e"),i("dl-c","dl-e"),i("dl-c","dl-f"),i("dl-d","dl-merge"),i("dl-e","dl-merge"),i("dl-f","dl-merge"),i("dl-merge","dl-end")])},"disconnected-components":{Name:"Disconnected Components",Description:"Three independent chains of 4 nodes each, no cross-edges. Grid and Columnar give each chain equal real estate. Layered piles the 3 roots in one column. ForcedFromCenter clusters them naturally but with no separation guarantee.",Recommended:"Columnar",Flow:function(){for(var t=[],e=[],o=["α","β","γ"],n=0;n<o.length;n++)for(var s=0;s<4;s++){var l="dc-".concat(o[n],"-").concat(s);if(t.push(r(l,"".concat(o[n]).concat(s),150+350*n,100+110*s)),s>0){var c="dc-".concat(o[n],"-").concat(s-1);e.push(i(c,l))}}return a(t,e)}()},"dense-cluster":{Name:"Dense Cluster (near-complete)",Description:"Seven nodes with ~14 edges (each node connects to its two nearest neighbors in both directions). ForcedFromCenter shines — spring forces find a clean radial layout. Layered tries to topo-sort it and produces a wide-and-shallow mess. Circular is also pretty good here.",Recommended:"ForcedFromCenter",Flow:function(){for(var t=[],e=[],o=0;o<7;o++){var n=o/7*2*Math.PI,s=400+Math.round(200*Math.cos(n)),l=300+Math.round(200*Math.sin(n));t.push(r("dn-".concat(o),"N".concat(o),s,l))}for(var c=0;c<7;c++)e.push(i("dn-".concat(c),"dn-".concat((c+1)%7))),e.push(i("dn-".concat(c),"dn-".concat((c+2)%7)));return a(t,e)}()},"cyclic-network":{Name:"Cyclic Network",Description:'Eight nodes in a ring plus one chord. The cycle defeats Kahn topological sort — Layered falls back to a "remaining nodes" pass (correct but ugly). Circular renders the ring cleanly. ForcedFromCenter finds a relaxed equilibrium.',Recommended:"Circular",Flow:function(){for(var t=[],e=[],o=0;o<8;o++){var n=o/8*2*Math.PI,s=400+Math.round(220*Math.cos(n)),l=300+Math.round(220*Math.sin(n));t.push(r("cy-".concat(o),"Z".concat(o),s,l))}for(var c=0;c<8;c++)e.push(i("cy-".concat(c),"cy-".concat((c+1)%8)));return e.push(i("cy-0","cy-4")),a(t,e)}()},"mesh-4x4":{Name:"Mesh 4×4",Description:"16 nodes in a 4×4 grid topology with right/down neighbor edges. Grid is the obvious win (the layout matches the data). Columnar (4 cols, FillOrder=row) also nails it. Layered produces a long zig-zag through 7 layers.",Recommended:"Grid",Flow:function(){for(var t=[],e=[],o=0;o<4;o++)for(var n=0;n<4;n++){var s="mesh-".concat(o,"-").concat(n);t.push(r(s,"(".concat(o,",").concat(n,")"),150+180*n,100+130*o))}for(var l=0;l<4;l++)for(var c=0;c<4;c++)c<3&&e.push(i("mesh-".concat(l,"-").concat(c),"mesh-".concat(l,"-").concat(c+1))),l<3&&e.push(i("mesh-".concat(l,"-").concat(c),"mesh-".concat(l+1,"-").concat(c)));return a(t,e)}()},"floating-widgets":{Name:"Floating Widgets (no edges)",Description:"12 unconnected nodes — exactly the dashboard-builder shape. Grid, Columnar, and Tabular all produce clean deterministic arrangements. Layered, Circular, and ForcedFromCenter degrade gracefully (single layer / single ring / random spread).",Recommended:"Grid",Flow:function(){for(var t=[],e=["Chart","Table","KPI","Gauge","Sparkline","Heatmap","Pie","Bar","Map","Timeline","Note","Image"],o=0;o<e.length;o++){var n=Math.floor(o/4),i=o%4;t.push(r("fw-".concat(o),e[o],150+180*i,100+130*n))}return a(t,[])}()},"wide-fan-out":{Name:"Wide Fan-Out (1 → 12)",Description:"One source node connects to 12 leaves. Circular places the source at center with leaves on a single outer ring — clean and balanced. Layered makes the second column 12 nodes tall. Grid spreads leaves and loses the source-to-leaf relationship.",Recommended:"Circular",Flow:function(){var t=[],e=[];t.push(r("fan-root","Source",100,400));for(var o=0;o<12;o++){var n="fan-leaf-".concat(o);t.push(r(n,"L".concat(o),400+o%4*160,100+130*Math.floor(o/4))),e.push(i("fan-root",n))}return a(t,e)}()}};e.exports={SAMPLE_FLOWS:s,getSampleNames:function(){return Object.keys(s)},getSample:function(t){return s[t]||null}}},{}],18:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e)}(t("pict-view"));e.exports=n,e.exports.default_configuration={ViewIdentifier:"FlowExample-About",DefaultRenderable:"FlowExample-About-Content",DefaultDestinationAddress:"#FlowExample-Content-Container",AutoRender:!1,CSS:"\n\t\t.flowexample-about {\n\t\t\tpadding: 2em;\n\t\t\tmax-width: 800px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\t.flowexample-about-header {\n\t\t\ttext-align: center;\n\t\t\tpadding-bottom: 1.5em;\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-light, #eee);\n\t\t\tmargin-bottom: 2em;\n\t\t}\n\t\t.flowexample-about-header h1 {\n\t\t\tmargin: 0 0 0.25em 0;\n\t\t\tfont-size: 2em;\n\t\t\tfont-weight: 300;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-about-header p {\n\t\t\tmargin: 0;\n\t\t\tcolor: #7f8c8d;\n\t\t\tfont-size: 1.1em;\n\t\t}\n\t\t.flowexample-about h2 {\n\t\t\tmargin: 1.5em 0 0.5em 0;\n\t\t\tfont-weight: 400;\n\t\t\tcolor: #2c3e50;\n\t\t\tfont-size: 1.3em;\n\t\t}\n\t\t.flowexample-about p {\n\t\t\tcolor: var(--theme-color-text-secondary, #555);\n\t\t\tline-height: 1.7;\n\t\t}\n\t\t.flowexample-about-tech {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n\t\t\tgap: 1em;\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\t.flowexample-about-tech-item {\n\t\t\tbackground: #f8f9fa;\n\t\t\tborder: 1px solid #e9ecef;\n\t\t\tborder-radius: 4px;\n\t\t\tpadding: 1em;\n\t\t\ttext-align: center;\n\t\t}\n\t\t.flowexample-about-tech-item strong {\n\t\t\tdisplay: block;\n\t\t\tmargin-bottom: 0.25em;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-about-tech-item span {\n\t\t\tfont-size: 0.85em;\n\t\t\tcolor: var(--theme-color-text-secondary, #666);\n\t\t}\n\t\t.flowexample-about-features {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\n\t\t\tgap: 1em;\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\t.flowexample-about-feature {\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #e0e0e0);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 1.25em;\n\t\t}\n\t\t.flowexample-about-feature h3 {\n\t\t\tmargin: 0 0 0.35em 0;\n\t\t\tfont-size: 1em;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-about-feature p {\n\t\t\tmargin: 0;\n\t\t\tfont-size: 0.9em;\n\t\t}\n\t",Templates:[{Hash:"FlowExample-About-Template",Template:'\n<div class="flowexample-about">\n\t<div class="flowexample-about-header">\n\t\t<h1>About Pict Section Flow</h1>\n\t\t<p>A pure SVG flow diagram component for the Pict framework</p>\n\t</div>\n\n\t<h2>What It Does</h2>\n\t<p>Pict Section Flow provides a self-contained, extensible flow diagram view for Pict applications. It renders nodes and connections as SVG elements, supports drag-and-drop node positioning, interactive connection creation between ports, and viewport panning and zooming — all with zero external diagram library dependencies.</p>\n\n\t<h2>Key Features</h2>\n\t<div class="flowexample-about-features">\n\t\t<div class="flowexample-about-feature">\n\t\t\t<h3>Pure SVG Rendering</h3>\n\t\t\t<p>All diagram elements are rendered as standard SVG, providing native DOM events and CSS styling with no canvas or external libraries required.</p>\n\t\t</div>\n\t\t<div class="flowexample-about-feature">\n\t\t\t<h3>Drag & Drop Nodes</h3>\n\t\t\t<p>Click and drag nodes to reposition them. Connections update in real time with smooth cubic bezier curves.</p>\n\t\t</div>\n\t\t<div class="flowexample-about-feature">\n\t\t\t<h3>Interactive Connections</h3>\n\t\t\t<p>Drag from an output port to an input port to create connections visually. Validation prevents self-connections and duplicates.</p>\n\t\t</div>\n\t\t<div class="flowexample-about-feature">\n\t\t\t<h3>Pan & Zoom</h3>\n\t\t\t<p>Navigate large diagrams with background panning and mouse wheel zoom. Zoom-to-fit centers all nodes automatically.</p>\n\t\t</div>\n\t\t<div class="flowexample-about-feature">\n\t\t\t<h3>Extensible Node Types</h3>\n\t\t\t<p>Register custom node types with different shapes, colors, port configurations, and styles through the Node Type Provider.</p>\n\t\t</div>\n\t\t<div class="flowexample-about-feature">\n\t\t\t<h3>Event Hooks</h3>\n\t\t\t<p>Listen for node selection, movement, connection creation and removal through the Event Handler Provider for full extensibility.</p>\n\t\t</div>\n\t</div>\n\n\t<h2>Built With</h2>\n\t<div class="flowexample-about-tech">\n\t\t<div class="flowexample-about-tech-item">\n\t\t\t<strong>Pict</strong>\n\t\t\t<span>Application Framework</span>\n\t\t</div>\n\t\t<div class="flowexample-about-tech-item">\n\t\t\t<strong>Pict-View</strong>\n\t\t\t<span>View Lifecycle</span>\n\t\t</div>\n\t\t<div class="flowexample-about-tech-item">\n\t\t\t<strong>Pict-Router</strong>\n\t\t\t<span>Hash Routing</span>\n\t\t</div>\n\t\t<div class="flowexample-about-tech-item">\n\t\t\t<strong>SVG</strong>\n\t\t\t<span>Diagram Rendering</span>\n\t\t</div>\n\t\t<div class="flowexample-about-tech-item">\n\t\t\t<strong>Fable</strong>\n\t\t\t<span>Service Architecture</span>\n\t\t</div>\n\t</div>\n\n\t<h2>License</h2>\n\t<p>This project is released under the MIT License. It is part of the Retold ecosystem of tools for building complex data-driven applications.</p>\n</div>\n'}],Renderables:[{RenderableHash:"FlowExample-About-Content",TemplateHash:"FlowExample-About-Template",DestinationAddress:"#FlowExample-Content-Container",RenderMethod:"replace"}]}},{"pict-view":171}],19:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e)}(t("pict-view"));e.exports=n,e.exports.default_configuration={ViewIdentifier:"FlowExample-BottomBar",DefaultRenderable:"FlowExample-BottomBar-Content",DefaultDestinationAddress:"#FlowExample-BottomBar-Container",AutoRender:!1,CSS:"\n\t\t.flowexample-bottombar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\tbackground-color: #2c3e50;\n\t\t\tcolor: #7f8c8d;\n\t\t\tpadding: 0.75em 1.5em;\n\t\t\tfont-size: 0.8em;\n\t\t\tborder-top: 1px solid #34495e;\n\t\t}\n\t\t.flowexample-bottombar a {\n\t\t\tcolor: #95a5a6;\n\t\t\ttext-decoration: none;\n\t\t\tmargin-left: 1em;\n\t\t\ttransition: color 0.15s;\n\t\t}\n\t\t.flowexample-bottombar a:hover {\n\t\t\tcolor: #ecf0f1;\n\t\t}\n\t\t.flowexample-bottombar-links {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.5em;\n\t\t}\n\t",Templates:[{Hash:"FlowExample-BottomBar-Template",Template:'\n<div class="flowexample-bottombar">\n\t<span>Pict Section Flow Example © 2025</span>\n\t<div class="flowexample-bottombar-links">\n\t\t<a href="https://github.com/fable-retold/pict" target="_blank">Pict</a>\n\t\t<a href="https://github.com/fable-retold/fable" target="_blank">Fable</a>\n\t\t<a onclick="{~P~}.PictApplication.navigateTo(\'/About\')">About</a>\n\t</div>\n</div>\n'}],Renderables:[{RenderableHash:"FlowExample-BottomBar-Content",TemplateHash:"FlowExample-BottomBar-Template",DestinationAddress:"#FlowExample-BottomBar-Container",RenderMethod:"replace"}]}},{"pict-view":171}],20:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e)}(t("pict-view"));e.exports=n,e.exports.default_configuration={ViewIdentifier:"FlowExample-Documentation",DefaultRenderable:"FlowExample-Documentation-Content",DefaultDestinationAddress:"#FlowExample-Content-Container",AutoRender:!1,CSS:"\n\t\t.flowexample-docs {\n\t\t\tpadding: 2em;\n\t\t\tmax-width: 800px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\t.flowexample-docs-header {\n\t\t\ttext-align: center;\n\t\t\tpadding-bottom: 1.5em;\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-light, #eee);\n\t\t\tmargin-bottom: 2em;\n\t\t}\n\t\t.flowexample-docs-header h1 {\n\t\t\tmargin: 0 0 0.25em 0;\n\t\t\tfont-size: 2em;\n\t\t\tfont-weight: 300;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-docs-header p {\n\t\t\tmargin: 0;\n\t\t\tcolor: #7f8c8d;\n\t\t\tfont-size: 1.1em;\n\t\t}\n\t\t.flowexample-docs h2 {\n\t\t\tmargin: 1.75em 0 0.5em 0;\n\t\t\tfont-weight: 400;\n\t\t\tcolor: #2c3e50;\n\t\t\tfont-size: 1.3em;\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-light, #eee);\n\t\t\tpadding-bottom: 0.35em;\n\t\t}\n\t\t.flowexample-docs h3 {\n\t\t\tmargin: 1.25em 0 0.35em 0;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #34495e;\n\t\t\tfont-size: 1.05em;\n\t\t}\n\t\t.flowexample-docs p {\n\t\t\tcolor: var(--theme-color-text-secondary, #555);\n\t\t\tline-height: 1.7;\n\t\t}\n\t\t.flowexample-docs code {\n\t\t\tbackground: #f4f4f5;\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tcolor: var(--theme-color-status-error, #e74c3c);\n\t\t}\n\t\t.flowexample-docs pre {\n\t\t\tbackground: #2c3e50;\n\t\t\tcolor: #ecf0f1;\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}\n\t\t.flowexample-docs pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: #ecf0f1;\n\t\t}\n\t\t.flowexample-docs ul {\n\t\t\tcolor: var(--theme-color-text-secondary, #555);\n\t\t\tline-height: 1.8;\n\t\t\tpadding-left: 1.5em;\n\t\t}\n\t\t.flowexample-docs-toc {\n\t\t\tbackground: #f8f9fa;\n\t\t\tborder: 1px solid #e9ecef;\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 1.25em 1.5em;\n\t\t\tmargin-bottom: 2em;\n\t\t}\n\t\t.flowexample-docs-toc h3 {\n\t\t\tmargin: 0 0 0.5em 0;\n\t\t\tfont-size: 0.95em;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-docs-toc ul {\n\t\t\tmargin: 0;\n\t\t\tpadding-left: 1.25em;\n\t\t\tline-height: 1.8;\n\t\t}\n\t\t.flowexample-docs-toc a {\n\t\t\tcolor: #3498db;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.flowexample-docs-toc a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t",Templates:[{Hash:"FlowExample-Documentation-Template",Template:'\n<div class="flowexample-docs">\n\t<div class="flowexample-docs-header">\n\t\t<h1>Documentation</h1>\n\t\t<p>How to use and extend the Pict Section Flow component</p>\n\t</div>\n\n\t<div class="flowexample-docs-toc">\n\t\t<h3>Contents</h3>\n\t\t<ul>\n\t\t\t<li><a href="#getting-started">Getting Started</a></li>\n\t\t\t<li><a href="#data-model">Data Model</a></li>\n\t\t\t<li><a href="#configuration">Configuration</a></li>\n\t\t\t<li><a href="#api-reference">API Reference</a></li>\n\t\t\t<li><a href="#node-types">Node Types</a></li>\n\t\t\t<li><a href="#event-hooks">Event Hooks</a></li>\n\t\t</ul>\n\t</div>\n\n\t<h2 id="getting-started">Getting Started</h2>\n\t<p>Pict Section Flow is a pict-view class that renders an interactive SVG flow diagram. Install it via npm and add it as a view in your Pict application.</p>\n\n\t<h3>Installation</h3>\n\t<pre><code>npm install pict-section-flow</code></pre>\n\n\t<h3>Basic Usage</h3>\n\t<pre><code>const libPictSectionFlow = require(\'pict-section-flow\');\n\n// In your Pict application constructor:\nthis.pict.addView(\'MyFlowDiagram\',\n {\n ViewIdentifier: \'MyFlowDiagram\',\n DefaultRenderable: \'Flow-Container\',\n DefaultDestinationAddress: \'#my-flow-container\',\n FlowDataAddress: \'AppData.MyApp.FlowData\',\n EnableToolbar: true\n },\n libPictSectionFlow\n);</code></pre>\n\n\t<p>The view reads its initial data from <code>FlowDataAddress</code> in AppData, and writes changes back via <code>marshalFromView()</code>.</p>\n\n\t<h2 id="data-model">Data Model</h2>\n\t<p>The flow data is a plain JSON object with three top-level properties:</p>\n\n\t<h3>Nodes</h3>\n\t<pre><code>{\n "Hash": "node-1",\n "Type": "default",\n "X": 100, "Y": 200,\n "Width": 180, "Height": 80,\n "Title": "My Node",\n "Ports": [\n { "Hash": "port-in-1", "Direction": "input",\n "Side": "left", "Label": "In" },\n { "Hash": "port-out-1", "Direction": "output",\n "Side": "right", "Label": "Out" }\n ],\n "Data": {}\n}</code></pre>\n\n\t<h3>Connections</h3>\n\t<pre><code>{\n "Hash": "conn-1",\n "SourceNodeHash": "node-1",\n "SourcePortHash": "port-out-1",\n "TargetNodeHash": "node-2",\n "TargetPortHash": "port-in-1",\n "Data": {}\n}</code></pre>\n\n\t<h3>ViewState</h3>\n\t<pre><code>{\n "PanX": 0, "PanY": 0,\n "Zoom": 1,\n "SelectedNodeHash": null,\n "SelectedConnectionHash": null\n}</code></pre>\n\n\t<h2 id="configuration">Configuration</h2>\n\t<p>These options can be passed when adding the view:</p>\n\t<ul>\n\t\t<li><code>FlowDataAddress</code> — Manifest address for flow data in AppData</li>\n\t\t<li><code>EnableToolbar</code> — Show the toolbar (default: <code>true</code>)</li>\n\t\t<li><code>EnablePanning</code> — Allow background pan (default: <code>true</code>)</li>\n\t\t<li><code>EnableZooming</code> — Allow mouse wheel zoom (default: <code>true</code>)</li>\n\t\t<li><code>EnableNodeDragging</code> — Allow node drag-and-drop (default: <code>true</code>)</li>\n\t\t<li><code>EnableConnectionCreation</code> — Allow port-to-port connection creation (default: <code>true</code>)</li>\n\t\t<li><code>EnableGridSnap</code> — Snap node positions to grid (default: <code>false</code>)</li>\n\t\t<li><code>GridSnapSize</code> — Grid size in pixels (default: <code>20</code>)</li>\n\t\t<li><code>MinZoom</code> / <code>MaxZoom</code> — Zoom limits (default: <code>0.1</code> / <code>5.0</code>)</li>\n\t\t<li><code>ZoomStep</code> — Zoom increment per wheel tick (default: <code>0.1</code>)</li>\n\t</ul>\n\n\t<h2 id="api-reference">API Reference</h2>\n\n\t<h3>Node Operations</h3>\n\t<ul>\n\t\t<li><code>addNode(type, x, y, title, data)</code> — Add a new node</li>\n\t\t<li><code>removeNode(hash)</code> — Remove a node and its connections</li>\n\t\t<li><code>getNode(hash)</code> — Get a node by hash</li>\n\t\t<li><code>selectNode(hash)</code> — Select a node</li>\n\t</ul>\n\n\t<h3>Connection Operations</h3>\n\t<ul>\n\t\t<li><code>addConnection(srcNode, srcPort, tgtNode, tgtPort)</code> — Add a connection</li>\n\t\t<li><code>removeConnection(hash)</code> — Remove a connection</li>\n\t\t<li><code>getConnection(hash)</code> — Get a connection by hash</li>\n\t\t<li><code>selectConnection(hash)</code> — Select a connection</li>\n\t</ul>\n\n\t<h3>View Operations</h3>\n\t<ul>\n\t\t<li><code>renderFlow()</code> — Re-render the entire diagram</li>\n\t\t<li><code>setFlowData(data)</code> — Replace flow data and re-render</li>\n\t\t<li><code>getFlowData()</code> — Get a deep copy of the flow data</li>\n\t\t<li><code>marshalToView()</code> — Load data from AppData into the view</li>\n\t\t<li><code>marshalFromView()</code> — Write view data back to AppData</li>\n\t\t<li><code>deselectAll()</code> — Clear all selections</li>\n\t\t<li><code>deleteSelected()</code> — Delete the selected node or connection</li>\n\t</ul>\n\n\t<h3>Viewport Operations</h3>\n\t<ul>\n\t\t<li><code>setZoom(level, focusX, focusY)</code> — Set zoom level</li>\n\t\t<li><code>zoomToFit()</code> — Fit all nodes in view</li>\n\t\t<li><code>autoLayout()</code> — Auto-arrange nodes left to right</li>\n\t\t<li><code>screenToSVGCoords(x, y)</code> — Convert screen to SVG coordinates</li>\n\t</ul>\n\n\t<h2 id="node-types">Node Types</h2>\n\t<p>Four built-in node types are provided:</p>\n\t<ul>\n\t\t<li><code>default</code> — Standard rectangular node with input and output ports</li>\n\t\t<li><code>start</code> — Rounded green node with output port only</li>\n\t\t<li><code>end</code> — Rounded red node with input port only</li>\n\t\t<li><code>decision</code> — Yellow node with one input and two outputs (Yes/No)</li>\n\t</ul>\n\n\t<h3>Registering Custom Types</h3>\n\t<pre><code>// After the flow view is rendered:\nflowView._NodeTypeProvider.registerNodeType({\n Hash: \'custom-process\',\n Label: \'Custom Process\',\n DefaultWidth: 200,\n DefaultHeight: 100,\n DefaultPorts: [\n { Direction: \'input\', Side: \'left\', Label: \'In\' },\n { Direction: \'output\', Side: \'right\', Label: \'Out\' },\n { Direction: \'output\', Side: \'bottom\', Label: \'Error\' }\n ],\n TitleBarColor: \'#8e44ad\',\n BodyStyle: {\n fill: \'#f5eef8\',\n stroke: \'#8e44ad\'\n }\n});</code></pre>\n\n\t<h2 id="event-hooks">Event Hooks</h2>\n\t<p>Register handlers for flow events through the Event Handler Provider:</p>\n\t<pre><code>flowView._EventHandlerProvider.registerHandler(\n \'onNodeMoved\',\n (node, flowView) => {\n console.log(\'Node moved:\', node.Title,\n \'to\', node.X, node.Y);\n }\n);\n\n// Available events:\n// onNodeSelected, onNodeAdded, onNodeRemoved,\n// onNodeMoved, onConnectionSelected,\n// onConnectionCreated, onConnectionRemoved,\n// onFlowChanged</code></pre>\n\n\t<h2>Project Structure</h2>\n\t<pre><code>pict-section-flow/\n source/\n Pict-Section-Flow.js # Module entry\n views/\n PictView-Flow.js # Main SVG view\n PictView-Flow-Node.js # Node rendering\n PictView-Flow-Toolbar.js # Toolbar controls\n services/\n ...InteractionManager.js # Pointer events\n ...ConnectionRenderer.js # Bezier paths\n ...Layout.js # Auto-layout\n providers/\n ...NodeTypes.js # Node type registry\n ...EventHandler.js # Event hooks</code></pre>\n</div>\n'}],Renderables:[{RenderableHash:"FlowExample-Documentation-Content",TemplateHash:"FlowExample-Documentation-Template",DestinationAddress:"#FlowExample-Content-Container",RenderMethod:"replace"}]}},{"pict-view":171}],21:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e)}(t("pict-view"));e.exports=n,e.exports.default_configuration={ViewIdentifier:"FlowExample-FileWriteInfo",DefaultRenderable:"FileWriteInfo-Content",DefaultDestinationAddress:"#FileWriteInfo-Container",AutoRender:!1,Templates:[{Hash:"FileWriteInfo-Template",Template:'\n<div style="padding:6px;font-size:12px;line-height:1.6;color:#2c3e50">\n\t<div style="margin-bottom:8px">\n\t\t<label style="font-weight:600;font-size:11px;color:#7f8c8d;text-transform:uppercase;letter-spacing:0.5px">Output Path</label>\n\t\t<div style="padding:4px 6px;background:#f8f9fa;border:1px solid var(--theme-color-border-default, #e0e0e0);border-radius:3px;margin-top:2px;font-family:monospace;font-size:11px">{~D:Record.Data.OutputPath~}</div>\n\t</div>\n\t<div style="margin-bottom:8px">\n\t\t<label style="font-weight:600;font-size:11px;color:#7f8c8d;text-transform:uppercase;letter-spacing:0.5px">Write Mode</label>\n\t\t<div style="padding:4px 6px;background:#f8f9fa;border:1px solid var(--theme-color-border-default, #e0e0e0);border-radius:3px;margin-top:2px">{~D:Record.Data.WriteMode~}</div>\n\t</div>\n\t<div style="margin-bottom:8px">\n\t\t<label style="font-weight:600;font-size:11px;color:#7f8c8d;text-transform:uppercase;letter-spacing:0.5px">Encoding</label>\n\t\t<div style="padding:4px 6px;background:#f8f9fa;border:1px solid var(--theme-color-border-default, #e0e0e0);border-radius:3px;margin-top:2px">{~D:Record.Data.Encoding~}</div>\n\t</div>\n\t<div style="padding:6px;background:#eafaf1;border:1px solid var(--theme-color-status-success, #27ae60);border-radius:3px;font-size:11px;color:var(--theme-color-status-success, #27ae60)">\n\t\tThis panel is rendered by a registered pict-view (View panel type).\n\t</div>\n</div>\n'}],Renderables:[{RenderableHash:"FileWriteInfo-Content",TemplateHash:"FileWriteInfo-Template",DestinationAddress:"#FileWriteInfo-Container",RenderMethod:"replace"}]}},{"pict-view":171}],22:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e,[{key:"onAfterRender",value:function(t,o,n,r){return this.pict.views["FlowExample-TopBar"].render(),this.pict.views["FlowExample-BottomBar"].render(),this.pict.views["FlowExample-MainWorkspace"].render(),this.pict.CSSMap.injectCSS(),this.pict.providers.PictRouter&&this.pict.providers.PictRouter.resolve(),_superPropGet(e,"onAfterRender",this,3)([t,o,n,r])}}])}(t("pict-view"));e.exports=n,e.exports.default_configuration={ViewIdentifier:"FlowExample-Layout",DefaultRenderable:"FlowExample-Layout-Shell",DefaultDestinationAddress:"#FlowExample-Application-Container",AutoRender:!1,CSS:"\n\t\t#FlowExample-Application-Container {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\theight: 100vh;\n\t\t\toverflow: hidden;\n\t\t}\n\t\t#FlowExample-TopBar-Container {\n\t\t\tflex-shrink: 0;\n\t\t}\n\t\t#FlowExample-Content-Container {\n\t\t\tflex: 1;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tmin-height: 0;\n\t\t}\n\t\t#FlowExample-BottomBar-Container {\n\t\t\tflex-shrink: 0;\n\t\t}\n\t",Templates:[{Hash:"FlowExample-Layout-Shell-Template",Template:'\n<div id="FlowExample-TopBar-Container"></div>\n<div id="FlowExample-Content-Container"></div>\n<div id="FlowExample-BottomBar-Container"></div>\n'}],Renderables:[{RenderableHash:"FlowExample-Layout-Shell",TemplateHash:"FlowExample-Layout-Shell-Template",DestinationAddress:"#FlowExample-Application-Container",RenderMethod:"replace"}]}},{"pict-view":171}],23:[function(t,e,o){var n=t("pict-view"),r=t("pict-section-flow"),i=t("../sample-flows.js"),a=t("../cards/FlowCard-IfThenElse.js"),s=t("../cards/FlowCard-Switch.js"),l=t("../cards/FlowCard-Each.js"),c=t("../cards/FlowCard-FileRead.js"),p=t("../cards/FlowCard-FileWrite.js"),u=t("../cards/FlowCard-LogValues.js"),d=t("../cards/FlowCard-SetValue.js"),h=t("../cards/FlowCard-GetValue.js"),f=t("../cards/FlowCard-StatusMonitor.js"),m=t("../cards/FlowCard-DataPreview.js"),v=t("../cards/FlowCard-Sparkline.js"),g=t("../cards/FlowCard-Comment.js"),w=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n]))._FlowView=null,r}return _inherits(e,t),_createClass2(e,[{key:"_buildFlowCardNodeTypes",value:function(){for(var t=[a,s,l,c,p,u,d,h,f,m,v,g],e={},o=0;o<t.length;o++){var n=new t[o](this.fable,{},"FlowCard-".concat(o)).getNodeTypeConfiguration();e[n.Hash]=n}return e}},{key:"onAfterRender",value:function(t,o,n,i){this._FlowView||(this._FlowView=this.pict.addView("FlowExample-FlowDiagram",{ViewIdentifier:"FlowExample-FlowDiagram",DefaultRenderable:"Flow-Container",DefaultDestinationAddress:"#FlowExample-Flow-Container",AutoRender:!1,FlowDataAddress:"AppData.FlowExample.SampleFlow",TargetElementAddress:"#Flow-SVG-Container",EnableToolbar:!0,EnablePanning:!0,EnableZooming:!0,EnableNodeDragging:!0,EnableConnectionCreation:!0,EnableGridSnap:!1,GridSnapSize:20,MinZoom:.1,MaxZoom:5,ZoomStep:.1,DefaultNodeType:"default",DefaultNodeWidth:180,DefaultNodeHeight:80,NodeTypes:this._buildFlowCardNodeTypes(),Renderables:[{RenderableHash:"Flow-Container",TemplateHash:"Flow-Container-Template",DestinationAddress:"#FlowExample-Flow-Container",RenderMethod:"replace"}]},r)),this._FlowView.initialRenderComplete=!1,this._FlowView.render();var a=document.getElementById("FlowExample-HelpToggle"),s=document.getElementById("FlowExample-HelpPanel");return a&&s&&a.addEventListener("click",function(){s.classList.toggle("visible"),a.classList.toggle("active")}),this._populateSampleSelector(),_superPropGet(e,"onAfterRender",this,3)([t,o,n,i])}},{key:"_populateSampleSelector",value:function(){var t=document.getElementById("FlowExample-SampleSelect"),e=document.getElementById("FlowExample-SampleDescription"),o=document.getElementById("FlowExample-SampleRecommended");if(t&&e&&o){for(;t.firstChild;)t.removeChild(t.firstChild);var n=document.createElement("option");n.value="__hello-world__",n.textContent="Hello World — multi-feature reference",t.appendChild(n);for(var r=i.getSampleNames(),a=0;a<r.length;a++){var s=i.getSample(r[a]),l=document.createElement("option");l.value=r[a],l.textContent=s.Name,t.appendChild(l)}e.innerHTML="Pick a sample, then open the <strong>Algorithm</strong> popup in the toolbar to compare layouts.",o.style.display="none";var c=this;t.addEventListener("change",function(){var n=t.value;c._loadSample(n,e,o)})}}},{key:"_loadSample",value:function(t,e,o){if(this._FlowView){if("__hello-world__"===t)return this._FlowView.setFlowData(this.pict.AppData.FlowExample.SampleFlow),e.innerHTML="The full reference flow with all card types, properties panels, and an error branch. Originally designed by hand — set <code>LayoutAlgorithm</code> to <em>Layered</em> to see how the auto-layout compares.",void(o.style.display="none");var n=i.getSample(t);n&&(this._FlowView.setFlowData(JSON.parse(JSON.stringify(n.Flow))),e.textContent=n.Description,n.Recommended?(o.style.display="",o.textContent="Try: ".concat(n.Recommended)):o.style.display="none")}}}])}(n);e.exports=w,e.exports.default_configuration={ViewIdentifier:"FlowExample-MainWorkspace",DefaultRenderable:"FlowExample-MainWorkspace-Content",DefaultDestinationAddress:"#FlowExample-Content-Container",AutoRender:!1,CSS:"\n\t\t.flowexample-workspace {\n\t\t\tpadding: 0.75em;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t}\n\t\t.flowexample-workspace-header {\n\t\t\tflex-shrink: 0;\n\t\t\tmargin: 0 0 0.75em 0;\n\t\t\tpadding-bottom: 0.75em;\n\t\t\tborder-bottom: 1px solid var(--theme-color-border-light, #eee);\n\t\t\tdisplay: flex;\n\t\t\talign-items: flex-start;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t\t.flowexample-workspace-header h1 {\n\t\t\tmargin: 0 0 0.25em 0;\n\t\t\tfont-size: 2em;\n\t\t\tfont-weight: 300;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-workspace-header p {\n\t\t\tmargin: 0;\n\t\t\tcolor: #7f8c8d;\n\t\t\tfont-size: 1.1em;\n\t\t}\n\t\t.flowexample-help-toggle {\n\t\t\tflex-shrink: 0;\n\t\t\tmargin-left: 1em;\n\t\t\twidth: 36px;\n\t\t\theight: 36px;\n\t\t\tborder-radius: 50%;\n\t\t\tborder: 2px solid #3498db;\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tcolor: #3498db;\n\t\t\tfont-size: 1.2em;\n\t\t\tfont-weight: 700;\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttransition: background 0.15s, color 0.15s;\n\t\t}\n\t\t.flowexample-help-toggle:hover {\n\t\t\tbackground: #3498db;\n\t\t\tcolor: var(--theme-color-background-panel, #fff);\n\t\t}\n\t\t.flowexample-help-toggle.active {\n\t\t\tbackground: #3498db;\n\t\t\tcolor: var(--theme-color-background-panel, #fff);\n\t\t}\n\t\t#FlowExample-Flow-Container {\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t}\n\t\t.flowexample-sample-bar {\n\t\t\tflex-shrink: 0;\n\t\t\tmargin: 0 0 0.75em 0;\n\t\t\tpadding: 0.6em 0.75em;\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tborder: 1px solid var(--theme-color-border-light, #dee2e6);\n\t\t\tborder-radius: 6px;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.6em;\n\t\t\tflex-wrap: wrap;\n\t\t}\n\t\t.flowexample-sample-bar label {\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #2c3e50;\n\t\t\tfont-size: 0.9em;\n\t\t}\n\t\t.flowexample-sample-bar select {\n\t\t\tpadding: 0.35em 0.55em;\n\t\t\tborder: 1px solid #ced4da;\n\t\t\tborder-radius: 4px;\n\t\t\tbackground: #fff;\n\t\t\tfont-size: 0.95em;\n\t\t\tmin-width: 220px;\n\t\t}\n\t\t.flowexample-sample-description {\n\t\t\tflex: 1;\n\t\t\tmin-width: 280px;\n\t\t\tcolor: #5a6470;\n\t\t\tfont-size: 0.85em;\n\t\t\tline-height: 1.4;\n\t\t}\n\t\t.flowexample-sample-recommended {\n\t\t\tpadding: 0.2em 0.55em;\n\t\t\tbackground: #eaf6ee;\n\t\t\tcolor: #1f7a3f;\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 0.8em;\n\t\t\tfont-weight: 600;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\t.flowexample-help-panel {\n\t\t\tflex-shrink: 0;\n\t\t\tdisplay: none;\n\t\t\tmargin-bottom: 0.75em;\n\t\t\tpadding: 1.5em;\n\t\t\tbackground: #f8f9fa;\n\t\t\tborder: 1px solid #dee2e6;\n\t\t\tborder-radius: 8px;\n\t\t}\n\t\t.flowexample-help-panel.visible {\n\t\t\tdisplay: block;\n\t\t}\n\t\t.flowexample-help-panel h3 {\n\t\t\tmargin: 0 0 1em 0;\n\t\t\tfont-size: 1.1em;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-hints {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(auto-fill, minmax(220px, 1fr));\n\t\t\tgap: 1em;\n\t\t}\n\t\t.flowexample-hint {\n\t\t\tbackground: var(--theme-color-background-panel, #fff);\n\t\t\tborder: 1px solid var(--theme-color-border-default, #e0e0e0);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 1em 1.25em;\n\t\t}\n\t\t.flowexample-hint h4 {\n\t\t\tmargin: 0 0 0.35em 0;\n\t\t\tfont-size: 0.95em;\n\t\t\tcolor: #2c3e50;\n\t\t}\n\t\t.flowexample-hint p {\n\t\t\tmargin: 0;\n\t\t\tcolor: var(--theme-color-text-secondary, #666);\n\t\t\tfont-size: 0.85em;\n\t\t\tline-height: 1.5;\n\t\t}\n\t\t.flowexample-hint code {\n\t\t\tbackground: #f4f4f5;\n\t\t\tpadding: 0.1em 0.3em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tcolor: var(--theme-color-status-error, #e74c3c);\n\t\t}\n\t",Templates:[{Hash:"FlowExample-MainWorkspace-Template",Template:'\n<div class="flowexample-workspace">\n\t<div class="flowexample-workspace-header">\n\t\t<div>\n\t\t\t<h1>Flow Diagram</h1>\n\t\t\t<p>Build flow diagrams from cards. Open the Card Palette to browse available cards, or select a node type from the dropdown and click + Add Node.</p>\n\t\t</div>\n\t\t<button class="flowexample-help-toggle" id="FlowExample-HelpToggle" title="Toggle help">?</button>\n\t</div>\n\t<div class="flowexample-help-panel" id="FlowExample-HelpPanel">\n\t\t<h3>Quick Reference</h3>\n\t\t<div class="flowexample-hints">\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Add Nodes</h4>\n\t\t\t\t<p>Select a node type from the dropdown and click <code>+ Add Node</code> in the toolbar.</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Connect Nodes</h4>\n\t\t\t\t<p>Drag from a green output port to a blue input port to create a connection.</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Move Nodes</h4>\n\t\t\t\t<p>Click and drag any node to reposition it. Connections update automatically.</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Pan & Zoom</h4>\n\t\t\t\t<p>Click and drag the background to pan. Use the mouse wheel to zoom in and out.</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Delete</h4>\n\t\t\t\t<p>Select a node or connection and press <code>Delete</code> or click the Delete button.</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Auto Layout</h4>\n\t\t\t\t<p>Click <code>Auto Layout</code> in the toolbar to automatically arrange nodes left to right.</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Properties Panel</h4>\n\t\t\t\t<p>Double-click a node to open its properties panel (if the card type defines one).</p>\n\t\t\t</div>\n\t\t\t<div class="flowexample-hint">\n\t\t\t\t<h4>Save Layouts</h4>\n\t\t\t\t<p>Use the Layouts toolbar to save, restore, and delete named arrangement snapshots.</p>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class="flowexample-sample-bar">\n\t\t<label for="FlowExample-SampleSelect">Sample graph:</label>\n\t\t<select id="FlowExample-SampleSelect"></select>\n\t\t<span class="flowexample-sample-recommended" id="FlowExample-SampleRecommended"></span>\n\t\t<span class="flowexample-sample-description" id="FlowExample-SampleDescription">Pick a sample, then open the <strong>Algorithm</strong> popup in the toolbar to compare layouts.</span>\n\t</div>\n\t<div id="FlowExample-Flow-Container"></div>\n</div>\n'}],Renderables:[{RenderableHash:"FlowExample-MainWorkspace-Content",TemplateHash:"FlowExample-MainWorkspace-Template",DestinationAddress:"#FlowExample-Content-Container",RenderMethod:"replace"}]}},{"../cards/FlowCard-Comment.js":4,"../cards/FlowCard-DataPreview.js":5,"../cards/FlowCard-Each.js":6,"../cards/FlowCard-FileRead.js":7,"../cards/FlowCard-FileWrite.js":8,"../cards/FlowCard-GetValue.js":9,"../cards/FlowCard-IfThenElse.js":10,"../cards/FlowCard-LogValues.js":11,"../cards/FlowCard-SetValue.js":12,"../cards/FlowCard-Sparkline.js":13,"../cards/FlowCard-StatusMonitor.js":14,"../cards/FlowCard-Switch.js":15,"../sample-flows.js":17,"pict-section-flow":41,"pict-view":171}],24:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e)}(t("pict-view"));e.exports=n,e.exports.default_configuration={ViewIdentifier:"FlowExample-TopBar",DefaultRenderable:"FlowExample-TopBar-Content",DefaultDestinationAddress:"#FlowExample-TopBar-Container",AutoRender:!1,CSS:"\n\t\t.flowexample-topbar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\tbackground-color: #2c3e50;\n\t\t\tcolor: #ecf0f1;\n\t\t\tpadding: 0 1.5em;\n\t\t\theight: 56px;\n\t\t\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\tz-index: 100;\n\t\t}\n\t\t.flowexample-topbar-brand {\n\t\t\tfont-size: 1.25em;\n\t\t\tfont-weight: 600;\n\t\t\tletter-spacing: 0.02em;\n\t\t\tcolor: #ecf0f1;\n\t\t\ttext-decoration: none;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.flowexample-topbar-brand:hover {\n\t\t\tcolor: var(--theme-color-background-panel, #fff);\n\t\t}\n\t\t.flowexample-topbar-nav {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.25em;\n\t\t}\n\t\t.flowexample-topbar-nav a {\n\t\t\tcolor: #bdc3c7;\n\t\t\ttext-decoration: none;\n\t\t\tpadding: 0.5em 0.75em;\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 0.9em;\n\t\t\ttransition: background-color 0.15s, color 0.15s;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.flowexample-topbar-nav a:hover {\n\t\t\tbackground-color: #34495e;\n\t\t\tcolor: var(--theme-color-background-panel, #fff);\n\t\t}\n\t",Templates:[{Hash:"FlowExample-TopBar-Template",Template:'\n<div class="flowexample-topbar">\n\t<a class="flowexample-topbar-brand" onclick="{~P~}.PictApplication.navigateTo(\'/Home\')">Pict Section Flow</a>\n\t<div class="flowexample-topbar-nav">\n\t\t<a onclick="{~P~}.PictApplication.navigateTo(\'/Home\')">Home</a>\n\t\t<a onclick="{~P~}.PictApplication.navigateTo(\'/About\')">About</a>\n\t\t<a onclick="{~P~}.PictApplication.navigateTo(\'/Documentation\')">Documentation</a>\n\t</div>\n</div>\n'}],Renderables:[{RenderableHash:"FlowExample-TopBar-Content",TemplateHash:"FlowExample-TopBar-Template",DestinationAddress:"#FlowExample-TopBar-Container",RenderMethod:"replace"}]}},{"pict-view":171}],25:[function(t,e,o){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"}}},{}],26:[function(t,e,o){var n=t("../package.json"),r=function(){return _createClass2(function t(e,o,r){_classCallCheck(this,t),this.fable,this.UUID,this.options,this.services,this.servicesMap,"object"===_typeof(e)&&e.isFable?this.connectFable(e):this.fable=!1,this._PackageFableServiceProvider=n,this.fable?(this.UUID=e.getUUID(),this.options="object"===_typeof(o)?o:{}):(this.options="object"!==_typeof(e)||e.isFable?"object"===_typeof(o)?o:{}:e,this.UUID="CORE-SVC-".concat(Math.floor(89999*Math.random()+1e4))),this.serviceType="Unknown-".concat(this.UUID),this.Hash="string"==typeof r?r:this.fable||"string"!=typeof o?"".concat(this.UUID):o},[{key:"connectFable",value:function(t){if("object"!==_typeof(t)||!t.isFable){var 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":25}],27:[function(t,e,o){!function(t,n){"object"===_typeof(o)&&void 0!==e?n(o):n((t="undefined"!=typeof globalThis?globalThis:t||self).marked={})}(this,function(t){function e(t,e){for(var o=0;o<e.length;o++){var n=e[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t},o.apply(this,arguments)}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,n=new Array(e);o<e;o++)n[o]=t[o];return n}function r(t,e){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=function(t,e){if(t){if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){o&&(t=o);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 i(t){var e=function(t,e){if("object"!==_typeof(t)||null===t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var n=o.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=/[&<>"']/,l=new RegExp(s.source,"g"),c=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,p=new RegExp(c.source,"g"),u={"&":"&","<":"<",">":">",'"':""","'":"'"},d=function(t){return u[t]};function h(t,e){if(e){if(s.test(t))return t.replace(l,d)}else if(c.test(t))return t.replace(p,d);return t}var f=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function m(t){return t.replace(f,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 v=/(^|[^\[])\^/g;function g(t,e){t="string"==typeof t?t:t.source,e=e||"";var o={replace:function(e,n){return n=(n=n.source||n).replace(v,"$1"),t=t.replace(e,n),o},getRegex:function(){return new RegExp(t,e)}};return o}var w=/[^\w:]/g,y=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function b(t,e,o){if(t){var n;try{n=decodeURIComponent(m(o)).replace(w,"").toLowerCase()}catch(t){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}e&&!y.test(o)&&(o=function(t,e){D[" "+t]||(P.test(t)?D[" "+t]=t+"/":D[" "+t]=x(t,"/",!0));t=D[" "+t];var o=-1===t.indexOf(":");return"//"===e.substring(0,2)?o?e:t.replace(T,"$1")+e:"/"===e.charAt(0)?o?e:t.replace(S,"$1")+e:t+e}(e,o));try{o=encodeURI(o).replace(/%25/g,"%")}catch(t){return null}return o}var D={},P=/^[^:]+:\/*[^/]*$/,T=/^([^:]+:)[\s\S]*$/,S=/^([^:]+:\/*[^/]*)[\s\S]*$/;var F={exec:function(){}};function C(t,e){var o=t.replace(/\|/g,function(t,e,o){for(var n=!1,r=e;--r>=0&&"\\"===o[r];)n=!n;return n?"|":" |"}).split(/ \|/),n=0;if(o[0].trim()||o.shift(),o.length>0&&!o[o.length-1].trim()&&o.pop(),o.length>e)o.splice(e);else for(;o.length<e;)o.push("");for(;n<o.length;n++)o[n]=o[n].trim().replace(/\\\|/g,"|");return o}function x(t,e,o){var n=t.length;if(0===n)return"";for(var r=0;r<n;){var i=t.charAt(n-r-1);if(i!==e||o){if(i===e||!o)break;r++}else r++}return t.slice(0,n-r)}function _(t,e){if(e<1)return"";for(var o="";e>1;)1&e&&(o+=t),e>>=1,t+=t;return o+t}function A(t,e,o,n){var r=e.href,i=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:o,href:r,title:i,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,s}return{type:"image",raw:o,href:r,title:i,text:h(a)}}var I=function(){function e(e){this.options=e||t.defaults}var o=e.prototype;return o.space=function(t){var e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}},o.code=function(t){var e=this.rules.block.code.exec(t);if(e){var o=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?o:x(o,"\n")}}},o.fences=function(t){var e=this.rules.block.fences.exec(t);if(e){var o=e[0],n=function(t,e){var o=t.match(/^(\s+)(?:```)/);if(null===o)return e;var n=o[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")}(o,e[3]||"");return{type:"code",raw:o,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:n}}},o.heading=function(t){var e=this.rules.block.heading.exec(t);if(e){var o=e[2].trim();if(/#$/.test(o)){var n=x(o,"#");this.options.pedantic?o=n.trim():n&&!/ $/.test(n)||(o=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:o,tokens:this.lexer.inline(o)}}},o.hr=function(t){var e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}},o.blockquote=function(t){var e=this.rules.block.blockquote.exec(t);if(e){var o=e[0].replace(/^ *>[ \t]?/gm,""),n=this.lexer.state.top;this.lexer.state.top=!0;var r=this.lexer.blockTokens(o);return this.lexer.state.top=n,{type:"blockquote",raw:e[0],tokens:r,text:o}}},o.list=function(t){var e=this.rules.block.list.exec(t);if(e){var o,n,r,i,a,s,l,c,p,u,d,h,f=e[1].trim(),m=f.length>1,v={type:"list",raw:"",ordered:m,start:m?+f.slice(0,-1):"",loose:!1,items:[]};f=m?"\\d{1,9}\\"+f.slice(-1):"\\"+f,this.options.pedantic&&(f=m?f:"[*+-]");for(var g=new RegExp("^( {0,3}"+f+")((?:[\t ][^\\n]*)?(?:\\n|$))");t&&(h=!1,e=g.exec(t))&&!this.rules.block.hr.test(t);){if(o=e[0],t=t.substring(o.length),c=e[2].split("\n",1)[0].replace(/^\t+/,function(t){return" ".repeat(3*t.length)}),p=t.split("\n",1)[0],this.options.pedantic?(i=2,d=c.trimLeft()):(i=(i=e[2].search(/[^ ]/))>4?1:i,d=c.slice(i),i+=e[1].length),s=!1,!c&&/^ *$/.test(p)&&(o+=p+"\n",t=t.substring(p.length+1),h=!0),!h)for(var w=new RegExp("^ {0,"+Math.min(3,i-1)+"}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))"),y=new RegExp("^ {0,"+Math.min(3,i-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),b=new RegExp("^ {0,"+Math.min(3,i-1)+"}(?:```|~~~)"),D=new RegExp("^ {0,"+Math.min(3,i-1)+"}#");t&&(p=u=t.split("\n",1)[0],this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!b.test(p))&&!D.test(p)&&!w.test(p)&&!y.test(t);){if(p.search(/[^ ]/)>=i||!p.trim())d+="\n"+p.slice(i);else{if(s)break;if(c.search(/[^ ]/)>=4)break;if(b.test(c))break;if(D.test(c))break;if(y.test(c))break;d+="\n"+p}s||p.trim()||(s=!0),o+=u+"\n",t=t.substring(u.length+1),c=p.slice(i)}v.loose||(l?v.loose=!0:/\n *\n *$/.test(o)&&(l=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(d))&&(r="[ ] "!==n[0],d=d.replace(/^\[[ xX]\] +/,"")),v.items.push({type:"list_item",raw:o,task:!!n,checked:r,loose:!1,text:d}),v.raw+=o}v.items[v.items.length-1].raw=o.trimRight(),v.items[v.items.length-1].text=d.trimRight(),v.raw=v.raw.trimRight();var P=v.items.length;for(a=0;a<P;a++)if(this.lexer.state.top=!1,v.items[a].tokens=this.lexer.blockTokens(v.items[a].text,[]),!v.loose){var T=v.items[a].tokens.filter(function(t){return"space"===t.type}),S=T.length>0&&T.some(function(t){return/\n.*\n/.test(t.raw)});v.loose=S}if(v.loose)for(a=0;a<P;a++)v.items[a].loose=!0;return v}},o.html=function(t){var e=this.rules.block.html.exec(t);if(e){var o={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]);o.type="paragraph",o.text=n,o.tokens=this.lexer.inline(n)}return o}},o.def=function(t){var e=this.rules.block.def.exec(t);if(e){var o=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:o,raw:e[0],href:n,title:r}}},o.table=function(t){var e=this.rules.block.table.exec(t);if(e){var o={type:"table",header:C(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(o.header.length===o.align.length){o.raw=e[0];var n,r,i,a,s=o.align.length;for(n=0;n<s;n++)/^ *-+: *$/.test(o.align[n])?o.align[n]="right":/^ *:-+: *$/.test(o.align[n])?o.align[n]="center":/^ *:-+ *$/.test(o.align[n])?o.align[n]="left":o.align[n]=null;for(s=o.rows.length,n=0;n<s;n++)o.rows[n]=C(o.rows[n],o.header.length).map(function(t){return{text:t}});for(s=o.header.length,r=0;r<s;r++)o.header[r].tokens=this.lexer.inline(o.header[r].text);for(s=o.rows.length,r=0;r<s;r++)for(a=o.rows[r],i=0;i<a.length;i++)a[i].tokens=this.lexer.inline(a[i].text);return o}}},o.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])}},o.paragraph=function(t){var e=this.rules.block.paragraph.exec(t);if(e){var o="\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:o,tokens:this.lexer.inline(o)}}},o.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])}},o.escape=function(t){var e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:h(e[1])}},o.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]}},o.link=function(t){var e=this.rules.inline.link.exec(t);if(e){var o=e[2].trim();if(!this.options.pedantic&&/^</.test(o)){if(!/>$/.test(o))return;var n=x(o.slice(0,-1),"\\");if((o.length-n.length)%2==0)return}else{var r=function(t,e){if(-1===t.indexOf(e[1]))return-1;for(var o=t.length,n=0,r=0;r<o;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 i=(0===e[0].indexOf("!")?5:4)+e[1].length+r;e[2]=e[2].substring(0,r),e[0]=e[0].substring(0,i).trim(),e[3]=""}}var a=e[2],s="";if(this.options.pedantic){var l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(a);l&&(a=l[1],s=l[3])}else s=e[3]?e[3].slice(1,-1):"";return a=a.trim(),/^</.test(a)&&(a=this.options.pedantic&&!/>$/.test(o)?a.slice(1):a.slice(1,-1)),A(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)}},o.reflink=function(t,e){var o;if((o=this.rules.inline.reflink.exec(t))||(o=this.rules.inline.nolink.exec(t))){var n=(o[2]||o[1]).replace(/\s+/g," ");if(!(n=e[n.toLowerCase()])){var r=o[0].charAt(0);return{type:"text",raw:r,text:r}}return A(o,n,o[0],this.lexer)}},o.emStrong=function(t,e,o){void 0===o&&(o="");var n=this.rules.inline.emStrong.lDelim.exec(t);if(n&&(!n[3]||!o.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&&(""===o||this.rules.inline.punctuation.exec(o))){var i,a,s=n[0].length-1,l=s,c=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(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(a=i.length,n[3]||n[4])l+=a;else if(!((n[5]||n[6])&&s%3)||(s+a)%3){if(!((l-=a)>0)){a=Math.min(a,a+l+c);var u=t.slice(0,s+n.index+(n[0].length-i.length)+a);if(Math.min(s,a)%2){var d=u.slice(1,-1);return{type:"em",raw:u,text:d,tokens:this.lexer.inlineTokens(d)}}var h=u.slice(2,-2);return{type:"strong",raw:u,text:h,tokens:this.lexer.inlineTokens(h)}}}else c+=a}}},o.codespan=function(t){var e=this.rules.inline.code.exec(t);if(e){var o=e[2].replace(/\n/g," "),n=/[^ ]/.test(o),r=/^ /.test(o)&&/ $/.test(o);return n&&r&&(o=o.substring(1,o.length-1)),o=h(o,!0),{type:"codespan",raw:e[0],text:o}}},o.br=function(t){var e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}},o.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])}},o.autolink=function(t,e){var o,n,r=this.rules.inline.autolink.exec(t);if(r)return n="@"===r[2]?"mailto:"+(o=h(this.options.mangle?e(r[1]):r[1])):o=h(r[1]),{type:"link",raw:r[0],text:o,href:n,tokens:[{type:"text",raw:o,text:o}]}},o.url=function(t,e){var o;if(o=this.rules.inline.url.exec(t)){var n,r;if("@"===o[2])r="mailto:"+(n=h(this.options.mangle?e(o[0]):o[0]));else{var i;do{i=o[0],o[0]=this.rules.inline._backpedal.exec(o[0])[0]}while(i!==o[0]);n=h(o[0]),r="www."===o[1]?"http://"+o[0]:o[0]}return{type:"link",raw:o[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},o.inlineText=function(t,e){var o,n=this.rules.inline.text.exec(t);if(n)return o=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:o}},e}(),k={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:F,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?'|\([^()]*\))/};k.def=g(k.def).replace("label",k._label).replace("title",k._title).getRegex(),k.bullet=/(?:[*+-]|\d{1,9}[.)])/,k.listItemStart=g(/^( *)(bull) */).replace("bull",k.bullet).getRegex(),k.list=g(k.list).replace(/bull/g,k.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+k.def.source+")").getRegex(),k._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",k._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,k.html=g(k.html,"i").replace("comment",k._comment).replace("tag",k._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),k.paragraph=g(k._paragraph).replace("hr",k.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",k._tag).getRegex(),k.blockquote=g(k.blockquote).replace("paragraph",k.paragraph).getRegex(),k.normal=o({},k),k.gfm=o({},k.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),k.gfm.table=g(k.gfm.table).replace("hr",k.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",k._tag).getRegex(),k.gfm.paragraph=g(k._paragraph).replace("hr",k.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",k.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",k._tag).getRegex(),k.pedantic=o({},k.normal,{html:g("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",k._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:F,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:g(k.normal._paragraph).replace("hr",k.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",k.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var H={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:F,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:F,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function R(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 M(t){var e,o,n="",r=t.length;for(e=0;e<r;e++)o=t.charCodeAt(e),Math.random()>.5&&(o="x"+o.toString(16)),n+="&#"+o+";";return n}H._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",H.punctuation=g(H.punctuation).replace(/punctuation/g,H._punctuation).getRegex(),H.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,H.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,H._comment=g(k._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),H.emStrong.lDelim=g(H.emStrong.lDelim).replace(/punct/g,H._punctuation).getRegex(),H.emStrong.rDelimAst=g(H.emStrong.rDelimAst,"g").replace(/punct/g,H._punctuation).getRegex(),H.emStrong.rDelimUnd=g(H.emStrong.rDelimUnd,"g").replace(/punct/g,H._punctuation).getRegex(),H._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,H._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,H._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])?)+(?![-_])/,H.autolink=g(H.autolink).replace("scheme",H._scheme).replace("email",H._email).getRegex(),H._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,H.tag=g(H.tag).replace("comment",H._comment).replace("attribute",H._attribute).getRegex(),H._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,H._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,H._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,H.link=g(H.link).replace("label",H._label).replace("href",H._href).replace("title",H._title).getRegex(),H.reflink=g(H.reflink).replace("label",H._label).replace("ref",k._label).getRegex(),H.nolink=g(H.nolink).replace("ref",k._label).getRegex(),H.reflinkSearch=g(H.reflinkSearch,"g").replace("reflink",H.reflink).replace("nolink",H.nolink).getRegex(),H.normal=o({},H),H.pedantic=o({},H.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:g(/^!?\[(label)\]\((.*?)\)/).replace("label",H._label).getRegex(),reflink:g(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",H._label).getRegex()}),H.gfm=o({},H.normal,{escape:g(H.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.!#$%&'*+\/=?_`{\|}~-]+@)))/}),H.gfm.url=g(H.gfm.url,"i").replace("email",H.gfm._extended_email).getRegex(),H.breaks=o({},H.gfm,{br:g(H.br).replace("{2,}","*").getRegex(),text:g(H.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});var V=function(){function o(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||t.defaults,this.options.tokenizer=this.options.tokenizer||new I,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 o={block:k.normal,inline:H.normal};this.options.pedantic?(o.block=k.pedantic,o.inline=H.pedantic):this.options.gfm&&(o.block=k.gfm,this.options.breaks?o.inline=H.breaks:o.inline=H.gfm),this.tokenizer.rules=o}o.lex=function(t,e){return new o(e).lex(t)},o.lexInline=function(t,e){return new o(e).inlineTokens(t)};var n,r,i,a=o.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 o,n,r,i,a=this;for(void 0===e&&(e=[]),t=this.options.pedantic?t.replace(/\t/g," ").replace(/^ +$/gm,""):t.replace(/^( *)(\t+)/gm,function(t,e,o){return e+" ".repeat(o.length)});t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(n){return!!(o=n.call({lexer:a},t,e))&&(t=t.substring(o.raw.length),e.push(o),!0)})))if(o=this.tokenizer.space(t))t=t.substring(o.raw.length),1===o.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(o);else if(o=this.tokenizer.code(t))t=t.substring(o.raw.length),!(n=e[e.length-1])||"paragraph"!==n.type&&"text"!==n.type?e.push(o):(n.raw+="\n"+o.raw,n.text+="\n"+o.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(o=this.tokenizer.fences(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.heading(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.hr(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.blockquote(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.list(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.html(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.def(t))t=t.substring(o.raw.length),!(n=e[e.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title}):(n.raw+="\n"+o.raw,n.text+="\n"+o.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(o=this.tokenizer.table(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.lheading(t))t=t.substring(o.raw.length),e.push(o);else if(r=t,this.options.extensions&&this.options.extensions.startBlock&&function(){var e=1/0,o=t.slice(1),n=void 0;a.options.extensions.startBlock.forEach(function(t){"number"==typeof(n=t.call({lexer:this},o))&&n>=0&&(e=Math.min(e,n))}),e<1/0&&e>=0&&(r=t.substring(0,e+1))}(),this.state.top&&(o=this.tokenizer.paragraph(r)))n=e[e.length-1],i&&"paragraph"===n.type?(n.raw+="\n"+o.raw,n.text+="\n"+o.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(o),i=r.length!==t.length,t=t.substring(o.raw.length);else if(o=this.tokenizer.text(t))t=t.substring(o.raw.length),(n=e[e.length-1])&&"text"===n.type?(n.raw+="\n"+o.raw,n.text+="\n"+o.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(o);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 o,n,r,i=this;void 0===e&&(e=[]);var a,s,l,c=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(c));)p.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,a.index)+"["+_("a",a[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,a.index)+"["+_("a",a[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,a.index+a[0].length-2)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;t;)if(s||(l=""),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(n){return!!(o=n.call({lexer:i},t,e))&&(t=t.substring(o.raw.length),e.push(o),!0)})))if(o=this.tokenizer.escape(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.tag(t))t=t.substring(o.raw.length),(n=e[e.length-1])&&"text"===o.type&&"text"===n.type?(n.raw+=o.raw,n.text+=o.text):e.push(o);else if(o=this.tokenizer.link(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.reflink(t,this.tokens.links))t=t.substring(o.raw.length),(n=e[e.length-1])&&"text"===o.type&&"text"===n.type?(n.raw+=o.raw,n.text+=o.text):e.push(o);else if(o=this.tokenizer.emStrong(t,c,l))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.codespan(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.br(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.del(t))t=t.substring(o.raw.length),e.push(o);else if(o=this.tokenizer.autolink(t,M))t=t.substring(o.raw.length),e.push(o);else if(this.state.inLink||!(o=this.tokenizer.url(t,M))){if(r=t,this.options.extensions&&this.options.extensions.startInline&&function(){var e=1/0,o=t.slice(1),n=void 0;i.options.extensions.startInline.forEach(function(t){"number"==typeof(n=t.call({lexer:this},o))&&n>=0&&(e=Math.min(e,n))}),e<1/0&&e>=0&&(r=t.substring(0,e+1))}(),o=this.tokenizer.inlineText(r,R))t=t.substring(o.raw.length),"_"!==o.raw.slice(-1)&&(l=o.raw.slice(-1)),s=!0,(n=e[e.length-1])&&"text"===n.type?(n.raw+=o.raw,n.text+=o.text):e.push(o);else if(t){var u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}throw new Error(u)}}else t=t.substring(o.raw.length),e.push(o);return e},n=o,i=[{key:"rules",get:function(){return{block:k,inline:H}}}],(r=null)&&e(n.prototype,r),i&&e(n,i),Object.defineProperty(n,"prototype",{writable:!1}),o}(),E=function(){function e(e){this.options=e||t.defaults}var o=e.prototype;return o.code=function(t,e,o){var n=(e||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(t,n);null!=r&&r!==t&&(o=!0,t=r)}return t=t.replace(/\n$/,"")+"\n",n?'<pre><code class="'+this.options.langPrefix+h(n)+'">'+(o?t:h(t,!0))+"</code></pre>\n":"<pre><code>"+(o?t:h(t,!0))+"</code></pre>\n"},o.blockquote=function(t){return"<blockquote>\n"+t+"</blockquote>\n"},o.html=function(t){return t},o.heading=function(t,e,o,n){return this.options.headerIds?"<h"+e+' id="'+(this.options.headerPrefix+n.slug(o))+'">'+t+"</h"+e+">\n":"<h"+e+">"+t+"</h"+e+">\n"},o.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"},o.list=function(t,e,o){var n=e?"ol":"ul";return"<"+n+(e&&1!==o?' start="'+o+'"':"")+">\n"+t+"</"+n+">\n"},o.listitem=function(t){return"<li>"+t+"</li>\n"},o.checkbox=function(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},o.paragraph=function(t){return"<p>"+t+"</p>\n"},o.table=function(t,e){return e&&(e="<tbody>"+e+"</tbody>"),"<table>\n<thead>\n"+t+"</thead>\n"+e+"</table>\n"},o.tablerow=function(t){return"<tr>\n"+t+"</tr>\n"},o.tablecell=function(t,e){var o=e.header?"th":"td";return(e.align?"<"+o+' align="'+e.align+'">':"<"+o+">")+t+"</"+o+">\n"},o.strong=function(t){return"<strong>"+t+"</strong>"},o.em=function(t){return"<em>"+t+"</em>"},o.codespan=function(t){return"<code>"+t+"</code>"},o.br=function(){return this.options.xhtml?"<br/>":"<br>"},o.del=function(t){return"<del>"+t+"</del>"},o.link=function(t,e,o){if(null===(t=b(this.options.sanitize,this.options.baseUrl,t)))return o;var n='<a href="'+t+'"';return e&&(n+=' title="'+e+'"'),n+=">"+o+"</a>"},o.image=function(t,e,o){if(null===(t=b(this.options.sanitize,this.options.baseUrl,t)))return o;var n='<img src="'+t+'" alt="'+o+'"';return e&&(n+=' title="'+e+'"'),n+=this.options.xhtml?"/>":">"},o.text=function(t){return t},e}(),L=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,o){return""+o},e.image=function(t,e,o){return""+o},e.br=function(){return""},t}(),N=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 o=t,n=0;if(this.seen.hasOwnProperty(o)){n=this.seen[t];do{o=t+"-"+ ++n}while(this.seen.hasOwnProperty(o))}return e||(this.seen[t]=n,this.seen[o]=0),o},e.slug=function(t,e){void 0===e&&(e={});var o=this.serialize(t);return this.getNextSafeSlug(o,e.dryrun)},t}(),O=function(){function e(e){this.options=e||t.defaults,this.options.renderer=this.options.renderer||new E,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new L,this.slugger=new N}e.parse=function(t,o){return new e(o).parse(t)},e.parseInline=function(t,o){return new e(o).parseInline(t)};var o=e.prototype;return o.parse=function(t,e){void 0===e&&(e=!0);var o,n,r,i,a,s,l,c,p,u,d,h,f,v,g,w,y,b,D,P="",T=t.length;for(o=0;o<T;o++)if(u=t[o],!(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[u.type])||!1===(D=this.options.extensions.renderers[u.type].call({parser:this},u))&&["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(u.type))switch(u.type){case"space":continue;case"hr":P+=this.renderer.hr();continue;case"heading":P+=this.renderer.heading(this.parseInline(u.tokens),u.depth,m(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":P+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(c="",l="",i=u.header.length,n=0;n<i;n++)l+=this.renderer.tablecell(this.parseInline(u.header[n].tokens),{header:!0,align:u.align[n]});for(c+=this.renderer.tablerow(l),p="",i=u.rows.length,n=0;n<i;n++){for(l="",a=(s=u.rows[n]).length,r=0;r<a;r++)l+=this.renderer.tablecell(this.parseInline(s[r].tokens),{header:!1,align:u.align[r]});p+=this.renderer.tablerow(l)}P+=this.renderer.table(c,p);continue;case"blockquote":p=this.parse(u.tokens),P+=this.renderer.blockquote(p);continue;case"list":for(d=u.ordered,h=u.start,f=u.loose,i=u.items.length,p="",n=0;n<i;n++)w=(g=u.items[n]).checked,y=g.task,v="",g.task&&(b=this.renderer.checkbox(w),f?g.tokens.length>0&&"paragraph"===g.tokens[0].type?(g.tokens[0].text=b+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=b+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:b}):v+=b),v+=this.parse(g.tokens,f),p+=this.renderer.listitem(v,y,w);P+=this.renderer.list(p,d,h);continue;case"html":P+=this.renderer.html(u.text);continue;case"paragraph":P+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(p=u.tokens?this.parseInline(u.tokens):u.text;o+1<T&&"text"===t[o+1].type;)p+="\n"+((u=t[++o]).tokens?this.parseInline(u.tokens):u.text);P+=e?this.renderer.paragraph(p):p;continue;default:var S='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(S);throw new Error(S)}else P+=D||"";return P},o.parseInline=function(t,e){e=e||this.renderer;var o,n,r,i="",a=t.length;for(o=0;o<a;o++)if(n=t[o],!(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":i+=e.text(n.text);break;case"html":i+=e.html(n.text);break;case"link":i+=e.link(n.href,n.title,this.parseInline(n.tokens,e));break;case"image":i+=e.image(n.href,n.title,n.text);break;case"strong":i+=e.strong(this.parseInline(n.tokens,e));break;case"em":i+=e.em(this.parseInline(n.tokens,e));break;case"codespan":i+=e.codespan(n.text);break;case"br":i+=e.br();break;case"del":i+=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 i+=r||"";return i},e}(),G=function(){function e(e){this.options=e||t.defaults}var o=e.prototype;return o.preprocess=function(t){return t},o.postprocess=function(t){return t},e}();function B(t,e){return function(n,r,i){"function"==typeof r&&(i=r,r=null);var a=o({},r),s=function(t,e,o){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):o?void o(null,r):r}if(e)return Promise.reject(n);if(!o)throw n;o(n)}}((r=o({},j.defaults,a)).silent,r.async,i);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),i){var l,c=r.highlight;try{r.hooks&&(n=r.hooks.preprocess(n)),l=t(n,r)}catch(t){return s(t)}var p=function(t){var o;if(!t)try{r.walkTokens&&j.walkTokens(l,r.walkTokens),o=e(l,r),r.hooks&&(o=r.hooks.postprocess(o))}catch(e){t=e}return r.highlight=c,t?s(t):i(null,o)};if(!c||c.length<3)return p();if(delete r.highlight,!l.length)return p();var u=0;return j.walkTokens(l,function(t){"code"===t.type&&(u++,setTimeout(function(){c(t.text,t.lang,function(e,o){if(e)return p(e);null!=o&&o!==t.text&&(t.text=o,t.escaped=!0),0===--u&&p()})},0))}),void(0===u&&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(j.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 d=t(n,r);r.walkTokens&&j.walkTokens(d,r.walkTokens);var f=e(d,r);return r.hooks&&(f=r.hooks.postprocess(f)),f}catch(t){return s(t)}}}function j(t,e,o){return B(V.lex,O.parse)(t,e,o)}G.passThroughHooks=new Set(["preprocess","postprocess"]),j.options=j.setOptions=function(e){var n;return j.defaults=o({},j.defaults,e),n=j.defaults,t.defaults=n,j},j.getDefaults=a,j.defaults=t.defaults,j.use=function(){for(var t=j.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=o({},e);if(n.async=j.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 o=t.renderers[e.name];t.renderers[e.name]=o?function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=e.renderer.apply(this,n);return!1===i&&(i=o.apply(this,n)),i}: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=j.defaults.renderer||new E,o=function(o){var n=t[o];t[o]=function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];var s=e.renderer[o].apply(t,i);return!1===s&&(s=n.apply(t,i)),s}};for(var r in e.renderer)o(r);n.renderer=t}(),e.tokenizer&&function(){var t=j.defaults.tokenizer||new I,o=function(o){var n=t[o];t[o]=function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];var s=e.tokenizer[o].apply(t,i);return!1===s&&(s=n.apply(t,i)),s}};for(var r in e.tokenizer)o(r);n.tokenizer=t}(),e.hooks&&function(){var t=j.defaults.hooks||new G,o=function(o){var n=t[o];G.passThroughHooks.has(o)?t[o]=function(r){if(j.defaults.async)return Promise.resolve(e.hooks[o].call(t,r)).then(function(e){return n.call(t,e)});var i=e.hooks[o].call(t,r);return n.call(t,i)}:t[o]=function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];var s=e.hooks[o].apply(t,i);return!1===s&&(s=n.apply(t,i)),s}};for(var r in e.hooks)o(r);n.hooks=t}(),e.walkTokens){var r=j.defaults.walkTokens;n.walkTokens=function(t){var o=[];return o.push(e.walkTokens.call(this,t)),r&&(o=o.concat(r.call(this,t))),o}}j.setOptions(n)})},j.walkTokens=function(t,e){for(var o,n=[],i=function(){var t=o.value;switch(n=n.concat(e.call(j,t)),t.type){case"table":for(var i,a=r(t.header);!(i=a()).done;){var s=i.value;n=n.concat(j.walkTokens(s.tokens,e))}for(var l,c=r(t.rows);!(l=c()).done;)for(var p,u=r(l.value);!(p=u()).done;){var d=p.value;n=n.concat(j.walkTokens(d.tokens,e))}break;case"list":n=n.concat(j.walkTokens(t.items,e));break;default:j.defaults.extensions&&j.defaults.extensions.childTokens&&j.defaults.extensions.childTokens[t.type]?j.defaults.extensions.childTokens[t.type].forEach(function(o){n=n.concat(j.walkTokens(t[o],e))}):t.tokens&&(n=n.concat(j.walkTokens(t.tokens,e)))}},a=r(t);!(o=a()).done;)i();return n},j.parseInline=B(V.lexInline,O.parseInline),j.Parser=O,j.parser=O.parse,j.Renderer=E,j.TextRenderer=L,j.Lexer=V,j.lexer=V.lex,j.Tokenizer=I,j.Slugger=N,j.Hooks=G,j.parse=j;var z=j.options,U=j.setOptions,W=j.use,Y=j.walkTokens,q=j.parseInline,X=j,J=O.parse,K=V.lex;t.Hooks=G,t.Lexer=V,t.Parser=O,t.Renderer=E,t.Slugger=N,t.TextRenderer=L,t.Tokenizer=I,t.getDefaults=a,t.lexer=K,t.marked=j,t.options=z,t.parse=X,t.parseInline=q,t.parser=J,t.setOptions=U,t.use=W,t.walkTokens=Y})},{}],28:[function(t,e,o){var n,r;n="undefined"!=typeof self?self:this,r=function(){return function(){var t={407:function(t,e,o){o.d(e,{default:function(){return M}});var n=/([:*])(\w+)/g,r=/\*/g,i=/\/\?/g;function a(t){return void 0===t&&(t="/"),m()?location.pathname+location.search+location.hash:t}function s(t){return t.replace(/\/+$/,"").replace(/^\/+/,"")}function l(t){return"string"==typeof t}function c(t){return t&&t.indexOf("#")>=0&&t.split("#").pop()||""}function p(t){var e=s(t).split(/\?(.*)?$/);return[s(e[0]),e.slice(1).join("")]}function u(t){for(var e={},o=t.split("&"),n=0;n<o.length;n++){var r=o[n].split("=");if(""!==r[0]){var i=decodeURIComponent(r[0]);e[i]?(Array.isArray(e[i])||(e[i]=[e[i]]),e[i].push(decodeURIComponent(r[1]||""))):e[i]=decodeURIComponent(r[1]||"")}}return e}function d(t,e){var o,a=p(s(t.currentLocationPath)),d=a[0],h=a[1],f=""===h?null:u(h),m=[];if(l(e.path)){if(o="(?:/^|^)"+s(e.path).replace(n,function(t,e,o){return m.push(o),"([^/]+)"}).replace(r,"?(?:.*)").replace(i,"/?([^/]+|)")+"$",""===s(e.path)&&""===s(d))return{url:d,queryString:h,hashString:c(t.to),route:e,data:null,params:f}}else o=e.path;var v=new RegExp(o,""),g=d.match(v);if(g){var w=l(e.path)?function(t,e){return 0===e.length?null:t?t.slice(1,t.length).reduce(function(t,o,n){return null===t&&(t={}),t[e[n]]=decodeURIComponent(o),t},null):null}(g,m):g.groups?g.groups:g.slice(1);return{url:s(d.replace(new RegExp("^"+t.instance.root),"")),queryString:h,hashString:c(t.to),route:e,data:w,params:f}}return!1}function h(){return!("undefined"==typeof window||!window.history||!window.history.pushState)}function f(t,e){return void 0===t[e]||!0===t[e]}function m(){return"undefined"!=typeof window}function v(t,e){return void 0===t&&(t=[]),void 0===e&&(e={}),t.filter(function(t){return t}).forEach(function(t){["before","after","already","leave"].forEach(function(o){t[o]&&(e[o]||(e[o]=[]),e[o].push(t[o]))})}),e}function g(t,e,o){var n=e||{},r=0;!function e(){t[r]?Array.isArray(t[r])?(t.splice.apply(t,[r,1].concat(t[r][0](n)?t[r][1]:t[r][2])),e()):t[r](n,function(t){void 0===t||!0===t?(r+=1,e()):o&&o(n)}):o&&o(n)}()}function w(t,e){void 0===t.currentLocationPath&&(t.currentLocationPath=t.to=a(t.instance.root)),t.currentLocationPath=t.instance._checkForAHash(t.currentLocationPath),e()}function y(t,e){for(var o=0;o<t.instance.routes.length;o++){var n=d(t,t.instance.routes[o]);if(n&&(t.matches||(t.matches=[]),t.matches.push(n),"ONE"===t.resolveOptions.strategy))return void e()}e()}function b(t,e){t.navigateOptions&&(void 0!==t.navigateOptions.shouldResolve&&console.warn('"shouldResolve" is deprecated. Please check the documentation.'),void 0!==t.navigateOptions.silent&&console.warn('"silent" is deprecated. Please check the documentation.')),e()}function D(t,e){!0===t.navigateOptions.force?(t.instance._setCurrent([t.instance._pathToMatchObject(t.to)]),e(!1)):e()}g.if=function(t,e,o){return Array.isArray(e)||(e=[e]),Array.isArray(o)||(o=[o]),[t,e,o]};var P=m(),T=h();function S(t,e){if(f(t.navigateOptions,"updateBrowserURL")){var o=("/"+t.to).replace(/\/\//g,"/"),n=P&&t.resolveOptions&&!0===t.resolveOptions.hash;T?(history[t.navigateOptions.historyAPIMethod||"pushState"](t.navigateOptions.stateObj||{},t.navigateOptions.title||"",n?"#"+o:o),location&&location.hash&&(t.instance.__freezeListening=!0,setTimeout(function(){if(!n){var e=location.hash;location.hash="",location.hash=e}t.instance.__freezeListening=!1},1))):P&&(window.location.href=t.to)}e()}function F(t,e){var o=t.instance;o.lastResolved()?g(o.lastResolved().map(function(e){return function(o,n){if(e.route.hooks&&e.route.hooks.leave){var r,i=t.instance.matchLocation(e.route.path,t.currentLocationPath,!1);r="*"!==e.route.path?!i:!(t.matches&&t.matches.find(function(t){return e.route.path===t.route.path})),f(t.navigateOptions,"callHooks")&&r?g(e.route.hooks.leave.map(function(e){return function(o,n){return e(function(e){!1===e?t.instance.__markAsClean(t):n()},t.matches&&t.matches.length>0?1===t.matches.length?t.matches[0]:t.matches:void 0)}}).concat([function(){return n()}])):n()}else n()}}),{},function(){return e()}):e()}function C(t,e){f(t.navigateOptions,"updateState")&&t.instance._setCurrent(t.matches),e()}var x=[function(t,e){var o=t.instance.lastResolved();if(o&&o[0]&&o[0].route===t.match.route&&o[0].url===t.match.url&&o[0].queryString===t.match.queryString)return o.forEach(function(e){e.route.hooks&&e.route.hooks.already&&f(t.navigateOptions,"callHooks")&&e.route.hooks.already.forEach(function(e){return e(t.match)})}),void e(!1);e()},function(t,e){t.match.route.hooks&&t.match.route.hooks.before&&f(t.navigateOptions,"callHooks")?g(t.match.route.hooks.before.map(function(e){return function(o,n){return e(function(e){!1===e?t.instance.__markAsClean(t):n()},t.match)}}).concat([function(){return e()}])):e()},function(t,e){f(t.navigateOptions,"callHandler")&&t.match.route.handler(t.match),t.instance.updatePageLinks(),e()},function(t,e){t.match.route.hooks&&t.match.route.hooks.after&&f(t.navigateOptions,"callHooks")&&t.match.route.hooks.after.forEach(function(e){return e(t.match)}),e()}],_=[F,function(t,e){var o=t.instance._notFoundRoute;if(o){t.notFoundHandled=!0;var n=p(t.currentLocationPath),r=n[0],i=n[1],a=c(t.to);o.path=s(r);var l={url:o.path,queryString:i,hashString:a,data:null,route:o,params:""!==i?u(i):null};t.matches=[l],t.match=l}e()},g.if(function(t){return t.notFoundHandled},x.concat([C]),[function(t,e){t.resolveOptions&&!1!==t.resolveOptions.noMatchWarning&&void 0!==t.resolveOptions.noMatchWarning||console.warn('Navigo: "'+t.currentLocationPath+"\" didn't match any of the registered routes."),e()},function(t,e){t.instance._setCurrent(null),e()}])];function A(){return(A=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t}).apply(this,arguments)}function I(t,e){var o=0;F(t,function n(){o!==t.matches.length?g(x,A({},t,{match:t.matches[o]}),function(){o+=1,n()}):C(t,e)})}function k(t){t.instance.__markAsClean(t)}function H(){return(H=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t}).apply(this,arguments)}var R="[data-navigo]";function M(t,e){var o,n=e||{strategy:"ONE",hash:!1,noMatchWarning:!1,linksSelector:R},r=this,i="/",f=null,P=[],T=!1,F=h(),C=m();function x(t){return t.indexOf("#")>=0&&(t=!0===n.hash?t.split("#")[1]||"/":t.split("#")[0]),t}function A(t){return s(i+"/"+s(t))}function M(t,e,o,n){return t=l(t)?A(t):t,{name:n||s(String(t)),path:t,handler:e,hooks:v(o)}}function V(t,e){if(!r.__dirty){r.__dirty=!0,t=t?s(i)+"/"+s(t):void 0;var o={instance:r,to:t,currentLocationPath:t,navigateOptions:{},resolveOptions:H({},n,e)};return g([w,y,g.if(function(t){var e=t.matches;return e&&e.length>0},I,_)],o,k),!!o.matches&&o.matches}r.__waiting.push(function(){return r.resolve(t,e)})}function E(t,e){if(r.__dirty)r.__waiting.push(function(){return r.navigate(t,e)});else{r.__dirty=!0,t=s(i)+"/"+s(t);var o={instance:r,to:t,navigateOptions:e||{},resolveOptions:e&&e.resolveOptions?e.resolveOptions:n,currentLocationPath:x(t)};g([b,D,y,g.if(function(t){var e=t.matches;return e&&e.length>0},I,_),S,k],o,k)}}function L(){if(C)return(C?[].slice.call(document.querySelectorAll(n.linksSelector||R)):[]).forEach(function(t){"false"!==t.getAttribute("data-navigo")&&"_blank"!==t.getAttribute("target")?t.hasListenerAttached||(t.hasListenerAttached=!0,t.navigoHandler=function(e){if((e.ctrlKey||e.metaKey)&&"a"===e.target.tagName.toLowerCase())return!1;var o=t.getAttribute("href");if(null==o)return!1;if(o.match(/^(http|https)/)&&"undefined"!=typeof URL)try{var n=new URL(o);o=n.pathname+n.search}catch(t){}var i=function(t){if(!t)return{};var e,o=t.split(","),n={};return o.forEach(function(t){var o=t.split(":").map(function(t){return t.replace(/(^ +| +$)/g,"")});switch(o[0]){case"historyAPIMethod":n.historyAPIMethod=o[1];break;case"resolveOptionsStrategy":e||(e={}),e.strategy=o[1];break;case"resolveOptionsHash":e||(e={}),e.hash="true"===o[1];break;case"updateBrowserURL":case"callHandler":case"updateState":case"force":n[o[0]]="true"===o[1]}}),e&&(n.resolveOptions=e),n}(t.getAttribute("data-navigo-options"));T||(e.preventDefault(),e.stopPropagation(),r.navigate(s(o),i))},t.addEventListener("click",t.navigoHandler)):t.hasListenerAttached&&t.removeEventListener("click",t.navigoHandler)}),r}function N(t,e,o){var n=P.find(function(e){return e.name===t}),r=null;if(n){if(r=n.path,e)for(var a in e)r=r.replace(":"+a,e[a]);r=r.match(/^\//)?r:"/"+r}return r&&o&&!o.includeRoot&&(r=r.replace(new RegExp("^/"+i),"")),r}function O(t){var e=p(s(t)),n=e[0],r=e[1],i=""===r?null:u(r);return{url:n,queryString:r,hashString:c(t),route:M(n,function(){},[o],n),data:null,params:i}}function G(t,e,o){return"string"==typeof e&&(e=B(e)),e?(e.hooks[t]||(e.hooks[t]=[]),e.hooks[t].push(o),function(){e.hooks[t]=e.hooks[t].filter(function(t){return t!==o})}):(console.warn("Route doesn't exists: "+e),function(){})}function B(t){return"string"==typeof t?P.find(function(e){return e.name===A(t)}):P.find(function(e){return e.handler===t})}t?i=s(t):console.warn('Navigo requires a root path in its constructor. If not provided will use "/" as default.'),this.root=i,this.routes=P,this.destroyed=T,this.current=f,this.__freezeListening=!1,this.__waiting=[],this.__dirty=!1,this.__markAsClean=function(t){t.instance.__dirty=!1,t.instance.__waiting.length>0&&t.instance.__waiting.shift()()},this.on=function(t,e,n){var r=this;return"object"!=_typeof(t)||t instanceof RegExp?("function"==typeof t&&(n=e,e=t,t=i),P.push(M(t,e,[o,n])),this):(Object.keys(t).forEach(function(e){if("function"==typeof t[e])r.on(e,t[e]);else{var n=t[e],i=n.uses,a=n.as,s=n.hooks;P.push(M(e,i,[o,s],a))}}),this)},this.off=function(t){return this.routes=P=P.filter(function(e){return l(t)?s(e.path)!==s(t):"function"==typeof t?t!==e.handler:String(e.path)!==String(t)}),this},this.resolve=V,this.navigate=E,this.navigateByName=function(t,e,o){var n=N(t,e);return null!==n&&(E(n.replace(new RegExp("^/?"+i),""),o),!0)},this.destroy=function(){this.routes=P=[],F&&window.removeEventListener("popstate",this.__popstateListener),this.destroyed=T=!0},this.notFound=function(t,e){return r._notFoundRoute=M("*",t,[o,e],"__NOT_FOUND__"),this},this.updatePageLinks=L,this.link=function(t){return"/"+i+"/"+s(t)},this.hooks=function(t){return o=t,this},this.extractGETParameters=function(t){return p(x(t))},this.lastResolved=function(){return f},this.generate=N,this.getLinkPath=function(t){return t.getAttribute("href")},this.match=function(t){var e={instance:r,currentLocationPath:t,to:t,navigateOptions:{},resolveOptions:n};return y(e,function(){}),!!e.matches&&e.matches},this.matchLocation=function(t,e,o){void 0===e||void 0!==o&&!o||(e=A(e));var n={instance:r,to:e,currentLocationPath:e};return w(n,function(){}),"string"==typeof t&&(t=void 0===o||o?A(t):t),d(n,{name:String(t),path:t,handler:function(){},hooks:{}})||!1},this.getCurrentLocation=function(){return O(s(a(i)).replace(new RegExp("^"+i),""))},this.addBeforeHook=G.bind(this,"before"),this.addAfterHook=G.bind(this,"after"),this.addAlreadyHook=G.bind(this,"already"),this.addLeaveHook=G.bind(this,"leave"),this.getRoute=B,this._pathToMatchObject=O,this._clean=s,this._checkForAHash=x,this._setCurrent=function(t){return f=r.current=t},function(){F&&(this.__popstateListener=function(){r.__freezeListening||V()},window.addEventListener("popstate",this.__popstateListener))}.call(this),L.call(this)}}},e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={exports:{}};return t[n](r,r.exports,o),r.exports}return o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(407)}().default},"object"==_typeof(o)&&"object"==_typeof(e)?e.exports=r():"object"==_typeof(o)?o.Navigo=r():n.Navigo=r()},{}],29:[function(t,e,o){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"}}},{}],30:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../package.json"),i={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-"},a=function(t){function e(t,o,n){var a;_classCallCheck(this,e);var s="object"===_typeof(t.settings.PictApplicationConfiguration)?t.settings.PictApplicationConfiguration:{};(a=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(i)),s,o),n])).options,a.log,a.fable,a.UUID,a.Hash,a.servicesMap,a.serviceType="PictApplication",a._Package=r,a.pict=a.fable,a.AppData=a.fable.AppData,a.Bundle=a.fable.Bundle,a.initializeTimestamp,a.lastSolvedTimestamp,a.lastLoginTimestamp,a.lastMarshalFromViewsTimestamp,a.lastMarshalToViewsTimestamp,a.lastAutoRenderTimestamp,a.lastLoadDataTimestamp;var l=Object.keys(a.options.Manifests);if(l.length>0)for(var c=0;c<l.length;c++){var p=l[c];a.fable.instantiateServiceProvider("Manifest",a.options.Manifests[p],p)}return a}return _inherits(e,t),_createClass2(e,[{key:"onPreSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onPreSolve:")),!0}},{key:"onPreSolveAsync",value:function(t){return this.onPreSolve(),t()}},{key:"onBeforeSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeSolve:")),!0}},{key:"onBeforeSolveAsync",value:function(t){return this.onBeforeSolve(),t()}},{key:"onSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onSolve:")),!0}},{key:"onSolveAsync",value:function(t){return this.onSolve(),t()}},{key:"solve",value:function(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing solve() function..."));for(var t=Object.keys(this.pict.providers),e=[],o=0;o<t.length;o++){var n=this.pict.providers[t[o]];n.options.AutoSolveWithApp&&e.push(n)}e.sort(function(t,e){return t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal});for(var r=0;r<e.length;r++)e[r].solve(e[r]);this.onBeforeSolve();for(var i=Object.keys(this.pict.views),a=[],s=0;s<i.length;s++){var l=this.pict.views[i[s]];l.options.AutoInitialize&&a.push(l)}a.sort(function(t,e){return t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal});for(var c=0;c<a.length;c++)a[c].solve();return this.onSolve(),this.onAfterSolve(),this.lastSolvedTimestamp=this.fable.log.getTimeStamp(),!0}},{key:"solveAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate");o.anticipate(this.onBeforeSolveAsync.bind(this));var n="function"==typeof t&&t;n||(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," solveAsync Auto Callback Error: ").concat(t),t)});for(var r=Object.keys(this.pict.providers),i=[],a=0;a<r.length;a++){var s=this.pict.providers[r[a]];s.options.AutoSolveWithApp&&i.push(s)}i.sort(function(t,e){return t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal});for(var l=0;l<i.length;l++)o.anticipate(i[l].solveAsync.bind(i[l]));for(var c=Object.keys(this.pict.views),p=[],u=0;u<c.length;u++){var d=this.pict.views[c[u]];d.options.AutoSolveWithApp&&p.push(d)}p.sort(function(t,e){return t.options.AutoSolveOrdinal-e.options.AutoSolveOrdinal});for(var h=0;h<p.length;h++)o.anticipate(p[h].solveAsync.bind(p[h]));o.anticipate(this.onSolveAsync.bind(this)),o.anticipate(this.onAfterSolveAsync.bind(this)),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," solveAsync() complete.")),e.lastSolvedTimestamp=e.fable.log.getTimeStamp(),n(t)})}},{key:"onAfterSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterSolve:")),!0}},{key:"onAfterSolveAsync",value:function(t){return this.onAfterSolve(),t()}},{key:"onBeforeLoginAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeLoginAsync:")),t()}},{key:"onLoginAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onLoginAsync:")),t()}},{key:"loginAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),n=t;"function"!=typeof n&&(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," loginAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeLoginAsync.bind(this)),o.anticipate(this.onLoginAsync.bind(this)),o.anticipate(this.onAfterLoginAsync.bind(this)),this.options.AutoLoadDataAfterLogin&&o.anticipate(function(t){if(!e.isLoggedIn())return t();e.pict.LogNoisiness>1&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," auto loading data after login...")),e.loadDataAsync(function(e){t(e)})}),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," loginAsync() complete.")),e.lastLoginTimestamp=e.fable.log.getTimeStamp(),n(t)})}},{key:"isLoggedIn",value:function(){return!0}},{key:"onAfterLoginAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterLoginAsync:")),t()}},{key:"onBeforeLoadDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeLoadDataAsync:")),t()}},{key:"onLoadDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onLoadDataAsync:")),t()}},{key:"loadDataAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),n=t;"function"!=typeof n&&(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," loadDataAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeLoadDataAsync.bind(this));for(var r=Object.keys(this.pict.providers),i=[],a=0;a<r.length;a++){var s=this.pict.providers[r[a]];s.options.AutoLoadDataWithApp&&i.push(s)}i.sort(function(t,e){return t.options.AutoLoadDataOrdinal-e.options.AutoLoadDataOrdinal});for(var l=0,c=i;l<c.length;l++){var p=c[l];o.anticipate(p.onBeforeLoadDataAsync.bind(p))}o.anticipate(this.onLoadDataAsync.bind(this));for(var u=0,d=i;u<d.length;u++){var h=d[u];o.anticipate(h.onLoadDataAsync.bind(h))}o.anticipate(this.onAfterLoadDataAsync.bind(this));for(var f=0,m=i;f<m.length;f++){var v=m[f];o.anticipate(v.onAfterLoadDataAsync.bind(v))}o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," loadDataAsync() complete.")),e.lastLoadDataTimestamp=e.fable.log.getTimeStamp(),n(t)})}},{key:"onAfterLoadDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterLoadDataAsync:")),t()}},{key:"onBeforeSaveDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeSaveDataAsync:")),t()}},{key:"onSaveDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onSaveDataAsync:")),t()}},{key:"saveDataAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),n=t;"function"!=typeof n&&(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," saveDataAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeSaveDataAsync.bind(this));for(var r=Object.keys(this.pict.providers),i=[],a=0;a<r.length;a++){var s=this.pict.providers[r[a]];s.options.AutoSaveDataWithApp&&i.push(s)}i.sort(function(t,e){return t.options.AutoSaveDataOrdinal-e.options.AutoSaveDataOrdinal});for(var l=0,c=i;l<c.length;l++){var p=c[l];o.anticipate(p.onBeforeSaveDataAsync.bind(p))}o.anticipate(this.onSaveDataAsync.bind(this));for(var u=0,d=i;u<d.length;u++){var h=d[u];o.anticipate(h.onSaveDataAsync.bind(h))}o.anticipate(this.onAfterSaveDataAsync.bind(this));for(var f=0,m=i;f<m.length;f++){var v=m[f];o.anticipate(v.onAfterSaveDataAsync.bind(v))}o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," saveDataAsync() complete.")),e.lastSaveDataTimestamp=e.fable.log.getTimeStamp(),n(t)})}},{key:"onAfterSaveDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterSaveDataAsync:")),t()}},{key:"onBeforeInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeInitialize:")),!0}},{key:"onBeforeInitializeAsync",value:function(t){return this.onBeforeInitialize(),t()}},{key:"onInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onInitialize:")),!0}},{key:"onInitializeAsync",value:function(t){return this.onInitialize(),t()}},{key:"initialize",value:function(){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(var t=0;t<this.options.ConfigurationOnlyViews.length;t++){var 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();for(var o=Object.keys(this.pict.providers),n=[],r=0;r<o.length;r++){var i=this.pict.providers[o[r]];i.options.AutoInitialize&&n.push(i)}n.sort(function(t,e){return t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal});for(var a=0;a<n.length;a++)n[a].initialize();for(var s=Object.keys(this.pict.views),l=[],c=0;c<s.length;c++){var p=this.pict.views[s[c]];p.options.AutoInitialize&&l.push(p)}l.sort(function(t,e){return t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal});for(var u=0;u<l.length;u++)l[u].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}},{key:"initializeAsync",value:function(t){var e=this;this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," initializeAsync:"));var o="function"==typeof t&&t;if(o||(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.")),o=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.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(o);var n=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(var r=0;r<this.options.ConfigurationOnlyViews.length;r++){var i=void 0===this.options.ConfigurationOnlyViews[r].ViewIdentifier?"AutoView-".concat(this.fable.getUUID()):this.options.ConfigurationOnlyViews[r].ViewIdentifier;this.log.info("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," adding configuration only view: ").concat(i)),this.pict.addView(i,this.options.ConfigurationOnlyViews[r])}n.anticipate(this.onBeforeInitializeAsync.bind(this)),n.anticipate(this.onInitializeAsync.bind(this));for(var a=Object.keys(this.pict.providers),s=[],l=0;l<a.length;l++){var c=this.pict.providers[a[l]];c.options.AutoInitialize&&s.push(c)}s.sort(function(t,e){return t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal});for(var p=0;p<s.length;p++)n.anticipate(s[p].initializeAsync.bind(s[p]));for(var u=Object.keys(this.pict.views),d=[],h=0;h<u.length;h++){var f=this.pict.views[u[h]];f.options.AutoInitialize&&d.push(f)}d.sort(function(t,e){return t.options.AutoInitializeOrdinal-e.options.AutoInitializeOrdinal});for(var m=0;m<d.length;m++){var v=d[m];n.anticipate(v.initializeAsync.bind(v))}n.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...")),n.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...")),n.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...")),n.anticipate(this.renderMainViewportAsync.bind(this))),n.wait(function(t){return t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," initializeAsync Error: ").concat(t.message||t),{stack:t.stack}),e.initializeTimestamp=e.fable.log.getTimeStamp(),e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," initialization complete.")),o()})}},{key:"onAfterInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterInitialize:")),!0}},{key:"onAfterInitializeAsync",value:function(t){return this.onAfterInitialize(),t()}},{key:"onCompletionOfInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onCompletionOfInitialize:")),!0}},{key:"onCompletionOfInitializeAsync",value:function(t){return this.onCompletionOfInitialize(),t()}},{key:"onBeforeMarshalFromViews",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeMarshalFromViews:")),!0}},{key:"onBeforeMarshalFromViewsAsync",value:function(t){return this.onBeforeMarshalFromViews(),t()}},{key:"onMarshalFromViews",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onMarshalFromViews:")),!0}},{key:"onMarshalFromViewsAsync",value:function(t){return this.onMarshalFromViews(),t()}},{key:"marshalFromViews",value:function(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing marshalFromViews() function...")),this.onBeforeMarshalFromViews();for(var t=Object.keys(this.pict.views),e=[],o=0;o<t.length;o++){var n=this.pict.views[t[o]];e.push(n)}for(var r=0;r<e.length;r++)e[r].marshalFromView();return this.onMarshalFromViews(),this.onAfterMarshalFromViews(),this.lastMarshalFromViewsTimestamp=this.fable.log.getTimeStamp(),!0}},{key:"marshalFromViewsAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),n="function"==typeof t&&t;n||(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," marshalFromViewsAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeMarshalFromViewsAsync.bind(this));for(var r=Object.keys(this.pict.views),i=[],a=0;a<r.length;a++){var s=this.pict.views[r[a]];i.push(s)}for(var l=0;l<i.length;l++)o.anticipate(i[l].marshalFromViewAsync.bind(i[l]));o.anticipate(this.onMarshalFromViewsAsync.bind(this)),o.anticipate(this.onAfterMarshalFromViewsAsync.bind(this)),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," marshalFromViewsAsync() complete.")),e.lastMarshalFromViewsTimestamp=e.fable.log.getTimeStamp(),n(t)})}},{key:"onAfterMarshalFromViews",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterMarshalFromViews:")),!0}},{key:"onAfterMarshalFromViewsAsync",value:function(t){return this.onAfterMarshalFromViews(),t()}},{key:"onBeforeMarshalToViews",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeMarshalToViews:")),!0}},{key:"onBeforeMarshalToViewsAsync",value:function(t){return this.onBeforeMarshalToViews(),t()}},{key:"onMarshalToViews",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onMarshalToViews:")),!0}},{key:"onMarshalToViewsAsync",value:function(t){return this.onMarshalToViews(),t()}},{key:"marshalToViews",value:function(){this.pict.LogNoisiness>2&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," executing marshalToViews() function...")),this.onBeforeMarshalToViews();for(var t=Object.keys(this.pict.views),e=[],o=0;o<t.length;o++){var n=this.pict.views[t[o]];e.push(n)}for(var r=0;r<e.length;r++)e[r].marshalToView();return this.onMarshalToViews(),this.onAfterMarshalToViews(),this.lastMarshalToViewsTimestamp=this.fable.log.getTimeStamp(),!0}},{key:"marshalToViewsAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),n="function"==typeof t&&t;n||(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," marshalToViewsAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeMarshalToViewsAsync.bind(this));for(var r=Object.keys(this.pict.views),i=[],a=0;a<r.length;a++){var s=this.pict.views[r[a]];i.push(s)}for(var l=0;l<i.length;l++)o.anticipate(i[l].marshalToViewAsync.bind(i[l]));o.anticipate(this.onMarshalToViewsAsync.bind(this)),o.anticipate(this.onAfterMarshalToViewsAsync.bind(this)),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," marshalToViewsAsync() complete.")),e.lastMarshalToViewsTimestamp=e.fable.log.getTimeStamp(),n(t)})}},{key:"onAfterMarshalToViews",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterMarshalToViews:")),!0}},{key:"onAfterMarshalToViewsAsync",value:function(t){return this.onAfterMarshalToViews(),t()}},{key:"onBeforeRender",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onBeforeRender:")),!0}},{key:"onBeforeRenderAsync",value:function(t){return this.onBeforeRender(),t()}},{key:"render",value:function(t,e,o,n){var r="string"!=typeof t?this.options.MainViewportViewIdentifier:t,i="string"!=typeof e?this.options.MainViewportRenderableHash:e,a="string"!=typeof o?this.options.MainViewportDestinationAddress:o,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(i,"] Destination[").concat(a,"] TemplateDataAddress[").concat(s,"] render:")),this.onBeforeRender();var l="string"==typeof r&&this.servicesMap.PictView[r];return l?(this.onRender(),l.render(i,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)}},{key:"onRender",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onRender:")),!0}},{key:"onRenderAsync",value:function(t){return this.onRender(),t()}},{key:"renderAsync",value:function(t,e,o,n,r){var i=this,a="string"!=typeof t?this.options.MainViewportViewIdentifier:t,s="string"!=typeof e?this.options.MainViewportRenderableHash:e,l="string"!=typeof o?this.options.MainViewportDestinationAddress:o,c="string"!=typeof n?this.options.MainViewportDefaultDataAddress:n,p="function"==typeof r?r:"function"==typeof n?n:"function"==typeof o?o:"function"==typeof e?e:"function"==typeof t&&t;p||(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.")),p=function(t){t&&i.log.error("PictApp [".concat(i.UUID,"]::[").concat(i.Hash,"] ").concat(i.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(s,"] Destination[").concat(l,"] TemplateDataAddress[").concat(c,"] renderAsync:"));var u=this.fable.newAnticipate();u.anticipate(this.onBeforeRenderAsync.bind(this));var d="string"==typeof a&&this.servicesMap.PictView[a];if(!d){var h="PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," could not asynchronously render from View ").concat(a," because it is not a valid view.");return this.pict.LogNoisiness>3&&this.log.error(h),p(new Error(h))}return u.anticipate(this.onRenderAsync.bind(this)),u.anticipate(function(t){d.renderAsync.call(d,s,l,c,t)}),u.anticipate(this.onAfterRenderAsync.bind(this)),u.wait(p)}},{key:"onAfterRender",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," onAfterRender:")),!0}},{key:"onAfterRenderAsync",value:function(t){return this.onAfterRender(),t()}},{key:"renderMainViewport",value:function(){return this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow APPLICATION [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderMainViewport:")),this.render()}},{key:"renderMainViewportAsync",value:function(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)}},{key:"renderAutoViews",value:function(){var t=this;this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," beginning renderAutoViews..."));var e=Object.keys(this.pict.views);e.sort(function(e,o){return t.pict.views[e].options.AutoRenderOrdinal-t.pict.views[o].options.AutoRenderOrdinal});for(var o=0;o<e.length;o++){var n=this.pict.views[e[o]];n.options.AutoRender&&n.render()}this.pict.LogNoisiness>0&&this.log.trace("PictApp [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.Name," renderAutoViewsAsync complete."))}},{key:"renderAutoViewsAsync",value:function(t){var e=this,o=this.fable.instantiateServiceProviderWithoutRegistration("Anticipate"),n="function"==typeof t&&t;n||(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.")),n=function(t){t&&e.log.error("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.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..."));var r=Object.keys(this.pict.views);r.sort(function(t,o){return e.pict.views[t].options.AutoRenderOrdinal-e.pict.views[o].options.AutoRenderOrdinal});for(var i=0;i<r.length;i++){var a=this.pict.views[r[i]];a.options.AutoRender&&o.anticipate(a.renderAsync.bind(a))}o.wait(function(t){return e.lastAutoRenderTimestamp=e.fable.log.getTimeStamp(),e.pict.LogNoisiness>0&&e.log.trace("PictApp [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," renderAutoViewsAsync complete.")),n(t)})}},{key:"isPictApplication",get:function(){return!0}}])}(n);e.exports=a},{"../package.json":29,"fable-serviceproviderbase":26}],31:[function(t,e,o){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"]}}},{}],32:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../package.json"),i={ProviderIdentifier:!1,AutoInitialize:!0,AutoInitializeOrdinal:0,AutoLoadDataWithApp:!0,AutoLoadDataOrdinal:0,AutoSolveWithApp:!0,AutoSolveOrdinal:0,Manifests:{},Templates:[]},a=function(t){function e(t,o,n){var a;_classCallCheck(this,e),(a=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(i)),o),n])).fable,a.pict,a.log,a.options,a.UUID,a.Hash,a.options.ProviderIdentifier||(a.options.ProviderIdentifier="AutoProviderID-".concat(a.fable.getUUID())),a.serviceType="PictProvider",a._Package=r,a.pict=a.fable,a.AppData=a.pict.AppData,a.Bundle=a.pict.Bundle,a.initializeTimestamp=!1,a.lastSolvedTimestamp=!1;for(var s=0;s<a.options.Templates.length;s++){var l=a.options.Templates[s];l.hasOwnProperty("Postfix")&&l.hasOwnProperty("Template")?(l.Source||(l.Source="PictProvider [".concat(a.UUID,"]::[").concat(a.Hash,"] ").concat(a.options.ProviderIdentifier," options object.")),a.pict.TemplateProvider.addDefaultTemplate(l.Prefix,l.Postfix,l.Template,l.Source)):a.log.error("PictProvider [".concat(a.UUID,"]::[").concat(a.Hash,"] ").concat(a.options.ProviderIdentifier," could not load Default Template ").concat(s," in the options array."),l)}return a}return _inherits(e,t),_createClass2(e,[{key:"onBeforeInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onBeforeInitialize:")),!0}},{key:"onBeforeInitializeAsync",value:function(t){return this.onBeforeInitialize(),t()}},{key:"onInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onInitialize:")),!0}},{key:"onInitializeAsync",value:function(t){return this.onInitialize(),t()}},{key:"initialize",value:function(){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)}},{key:"initializeAsync",value:function(t){var e=this;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();var o=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate");this.pict.LogNoisiness>0&&this.log.info("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," beginning initialization...")),o.anticipate(this.onBeforeInitializeAsync.bind(this)),o.anticipate(this.onInitializeAsync.bind(this)),o.anticipate(this.onAfterInitializeAsync.bind(this)),o.wait(function(o){return e.initializeTimestamp=e.pict.log.getTimeStamp(),o?e.log.error("PictProvider [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ProviderIdentifier," initialization failed: ").concat(o.message||o),{Stack:o.stack}):e.pict.LogNoisiness>0&&e.log.info("PictProvider [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ProviderIdentifier," initialization complete.")),t()})}},{key:"onAfterInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onAfterInitialize:")),!0}},{key:"onAfterInitializeAsync",value:function(t){return this.onAfterInitialize(),t()}},{key:"onPreRender",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onPreRender:")),!0}},{key:"onPreRenderAsync",value:function(t){return this.onPreRender(),t()}},{key:"render",value:function(){return this.onPreRender()}},{key:"renderAsync",value:function(t){return this.onPreRender(),t()}},{key:"onPreSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onPreSolve:")),!0}},{key:"onPreSolveAsync",value:function(t){return this.onPreSolve(),t()}},{key:"solve",value:function(){return this.onPreSolve()}},{key:"solveAsync",value:function(t){return this.onPreSolve(),t()}},{key:"onBeforeLoadDataAsync",value:function(t){return t()}},{key:"onLoadDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onLoadDataAsync:")),t()}},{key:"onAfterLoadDataAsync",value:function(t){return t()}},{key:"onBeforeSaveDataAsync",value:function(t){return t()}},{key:"onSaveDataAsync",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictProvider [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ProviderIdentifier," onSaveDataAsync:")),t()}},{key:"onAfterSaveDataAsync",value:function(t){return t()}}])}(n);e.exports=a},{"../package.json":31,"fable-serviceproviderbase":26}],33:[function(t,e,o){var n=t("pict-provider"),r=t("navigo"),i={ProviderIdentifier:"Pict-Router",AutoInitialize:!0,AutoInitializeOrdinal:0,SkipRouteResolveOnAdd:!1},a=function(t){function e(t,o,n){var a;if(_classCallCheck(this,e),(a=_callSuper(this,e,[t,Object.assign({},i,o),n])).router=new r("/",{strategy:"ONE",hash:!0}),a.options.Routes)for(var s=0;s<a.options.Routes.length;s++)a.options.Routes[s].path&&a.options.Routes[s].template?a.addRoute(a.options.Routes[s].path,a.options.Routes[s].template):a.options.Routes[s].path&&a.options.Routes[s].render?a.addRoute(a.options.Routes[s].path,a.options.Routes[s].render):a.pict.log.warn("Route ".concat(s," is missing a render function or template string."));return a.afterPersistView="/Manyfest/Overview",a}return _inherits(e,t),_createClass2(e,[{key:"currentScope",get:function(){var t,e;return null!==(t=null===(e=this.AppData)||void 0===e||null===(e=e.ManyfestRecord)||void 0===e?void 0:e.Scope)&&void 0!==t?t:"Default"}},{key:"forwardToScopedRoute",value:function(t){this.navigate("".concat(t.url,"/").concat(this.currentScope))}},{key:"onInitializeAsync",value:function(t){return _superPropGet(e,"onInitializeAsync",this,3)([t])}},{key:"addRoute",value:function(t,e){var o=this;if("function"==typeof e)this.router.on(t,e);else{if("string"!=typeof e)return void this.pict.log.warn("Route ".concat(t," has an invalid renderable."));this.router.on(t,function(t){o.pict.parseTemplate(e,t,null,o.pict)})}this.options.SkipRouteResolveOnAdd||this.pict.settings.RouterSkipRouteResolveOnAdd||this.resolve()}},{key:"navigate",value:function(t){this.router.navigate(t)}},{key:"navigateCurrent",value:function(){var t="undefined"!=typeof window&&window.location?window.location.hash:"";if(t&&t.length>2&&"#/"!==t){var e=t.replace(/^#/,"");return this.navigate(e),!0}return!1}},{key:"resolve",value:function(){this.router.resolve()}}])}(n);e.exports=a,e.exports.default_configuration=i},{navigo:28,"pict-provider":32}],34:[function(t,e,o){var 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,"&").replace(/</g,"<").replace(/>/g,">")}function i(t,e){var o=t;return e.selectors&&(e.selectors.lastIndex=0,o=o.replace(e.selectors,'<span class="function-name">$1</span>{')),e.properties&&(e.properties.lastIndex=0,o=o.replace(e.properties,'<span class="property">$1</span>:')),e.keywords&&(e.keywords.lastIndex=0,o=o.replace(e.keywords,'<span class="keyword">$1</span>')),e.builtins&&(e.builtins.lastIndex=0,o=o.replace(e.builtins,'<span class="keyword">$1</span>')),e.numbers&&(e.numbers.lastIndex=0,o=o.replace(e.numbers,function(t){return'<span class="number">'.concat(t,"</span>")})),o}function a(t){var e="",o=t,n=o.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>",o=o.substring(n[0].length);for(var i,a=/^(\s+)([a-zA-Z-]+)(?:(\s*=\s*)(["'])([^"']*?)\4)?/;null!==(i=o.match(a));)e+=i[1],e+='<span class="attr-name">'+r(i[2])+"</span>",i[3]&&(e+=r(i[3]),e+='<span class="attr-value">'+r(i[4])+r(i[5])+r(i[4])+"</span>"),o=o.substring(i[0].length);return e+=r(o)}n.js=n.javascript,n.htm=n.html,e.exports=function(t){return function(e){var o=e.textContent,s="string"==typeof t?t.toLowerCase():"javascript",l=n[s];if(l)if(l.tokenizer){var c,p="",u=0,d=l.tagGroupIndex||0;for(l.tokenizer.lastIndex=0;null!==(c=l.tokenizer.exec(o));){if(c.index>u)p+=i(r(o.substring(u,c.index)),l);var h=c[0];c[1]?p+='<span class="comment">'.concat(r(h),"</span>"):d>0&&c[d]?p+=a(h):p+='<span class="string">'.concat(r(h),"</span>"),u=l.tokenizer.lastIndex}if(u<o.length)p+=i(r(o.substring(u)),l);e.innerHTML=p}else e.innerHTML=i(r(o),l);else e.innerHTML=r(o)}},e.exports.LanguageDefinitions=n},{}],35:[function(t,e,o){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"}},{}],36:[function(t,e,o){var n=t("pict-view"),r=t("./Pict-Code-Highlighter.js"),i=t("./Pict-Section-Code-DefaultConfiguration.js"),a=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,Object.assign({},i,o),n])).initialRenderComplete=!1,r.codeJar=null,r._highlightFunction=null,r._language=r.options.Language||"javascript",r}return _inherits(e,t),_createClass2(e,[{key:"onBeforeInitialize",value:function(){return _superPropGet(e,"onBeforeInitialize",this,3)([]),this._codeJarPrototype=null,this.targetElement=!1,this._highlightFunction=r(this._language),_superPropGet(e,"onBeforeInitialize",this,3)([])}},{key:"connectCodeJarPrototype",value:function(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}},{key:"onAfterRender",value:function(t){return this.pict.CSSMap.injectCSS(),this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),_superPropGet(e,"onAfterRender",this,3)([t])}},{key:"onAfterInitialRender",value:function(){var t=this;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;var e=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(!e||e.length<1)return this.log.error("PICT-Code Could not find target element [".concat(this.options.TargetElementAddress,"]!")),this.targetElement=!1,!1;this.targetElement=e[0],this._buildEditorDOM();var o=this._resolveCodeContent(),n={};this.options.Tab&&(n.tab=this.options.Tab),this.options.IndentOn&&(n.indentOn=this.options.IndentOn),this.options.MoveToNewLine&&(n.moveToNewLine=this.options.MoveToNewLine),void 0!==this.options.AddClosing&&(n.addClosing=this.options.AddClosing),void 0!==this.options.CatchTab&&(n.catchTab=this.options.CatchTab),this.customConfigureEditorOptions(n);var r=this._editorElement;if(this.codeJar=this._codeJarPrototype(r,this._highlightFunction,n),this._resetEditorWrapStyles(),o&&this.codeJar.updateCode(o),this.codeJar.onUpdate(function(e){t._updateLineNumbers(),t.onCodeChange(e)}),this._updateLineNumbers(),this._lineNumbersElement){var i=this._lineNumbersElement;r.addEventListener("scroll",function(){i.style.transform="translateY(-"+r.scrollTop+"px)"},{passive:!0})}if(this._syncGutterMetrics(),this._lineNumbersElement&&"function"==typeof ResizeObserver){var a=this;this._editorResizeObserver=new ResizeObserver(function(){a._syncGutterMetrics()}),this._editorResizeObserver.observe(r)}if(this._lineNumbersElement&&"function"==typeof MutationObserver){var s=this;this._editorStyleObserver=new MutationObserver(function(){s._syncGutterMetrics()}),this._editorStyleObserver.observe(r,{attributes:!0,attributeFilter:["style","class"]})}this.options.ReadOnly&&r.setAttribute("contenteditable","false")}},{key:"_buildEditorDOM",value:function(){this.targetElement.innerHTML="";var t=document.createElement("div");if(t.className="pict-code-editor-wrap",this.options.LineNumbers){var e=document.createElement("div");e.className="pict-code-line-numbers",t.appendChild(e),this._lineNumbersElement=e}var o=document.createElement("div");o.className="pict-code-editor language-"+this._language,this.options.LineNumbers||(o.className+=" pict-code-no-line-numbers"),t.appendChild(o),this.targetElement.appendChild(t),this._editorElement=o,this._wrapElement=t}},{key:"_updateLineNumbers",value:function(){if(this.options.LineNumbers&&this._lineNumbersElement&&this._editorElement){for(var t=(this._editorElement.textContent||"").split("\n").length,e="",o=1;o<=t;o++)e+="<span>".concat(o,"</span>");this._lineNumbersElement.innerHTML=e,this._syncGutterMetrics()}}},{key:"_syncGutterMetrics",value:function(){if(this._lineNumbersElement&&this._editorElement&&"undefined"!=typeof window&&"function"==typeof window.getComputedStyle){var 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){var o=this._lineNumbersElement.querySelector("span");if(o){var n=o.getBoundingClientRect().height,r=parseFloat(e);n&&r&&Math.abs(n-r)>.5&&console.warn("[pict-section-code] gutter/editor row-height mismatch: gutter "+n+"px vs editor "+r+"px — line numbers will drift. Check for CSS overriding .pict-code-line-numbers line-height.")}}}}},{key:"syncMetrics",value:function(){this._syncGutterMetrics()}},{key:"_resetEditorWrapStyles",value:function(){this._editorElement&&(this._editorElement.style.whiteSpace="pre",this._editorElement.style.overflowWrap="normal")}},{key:"_resolveCodeContent",value:function(){if(this.options.CodeDataAddress){var t={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options},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||""}},{key:"customConfigureEditorOptions",value:function(t){}},{key:"onCodeChange",value:function(t){if(this.options.CodeDataAddress){var 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)}}},{key:"getCode",value:function(){return this.codeJar?this.codeJar.toString():(this.log.warn("PICT-Code getCode called before editor initialized."),"")}},{key:"setCode",value:function(t){this.codeJar?(this.codeJar.updateCode(t),this._updateLineNumbers()):this.log.warn("PICT-Code setCode called before editor initialized.")}},{key:"setLanguage",value:function(t){var e=this;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){var o=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(o),this.codeJar.onUpdate(function(t){e._updateLineNumbers(),e.onCodeChange(t)})}}},{key:"setHighlightFunction",value:function(t){var e=this;if("function"==typeof t){if(this._highlightFunction=t,this.codeJar){var o=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(o),this.codeJar.onUpdate(function(t){e._updateLineNumbers(),e.onCodeChange(t)})}}else this.log.error("PICT-Code setHighlightFunction requires a function.")}},{key:"setReadOnly",value:function(t){this.options.ReadOnly=t,this._editorElement&&this._editorElement.setAttribute("contenteditable",t?"false":"true")}},{key:"destroy",value:function(){this._editorResizeObserver&&(this._editorResizeObserver.disconnect(),this._editorResizeObserver=null),this._editorStyleObserver&&(this._editorStyleObserver.disconnect(),this._editorStyleObserver=null),this.codeJar&&(this.codeJar.destroy(),this.codeJar=null)}},{key:"marshalToView",value:function(){if(_superPropGet(e,"marshalToView",this,3)([]),this.codeJar&&this.options.CodeDataAddress){var t=this._resolveCodeContent();"string"==typeof t&&(this.codeJar.updateCode(t),this._updateLineNumbers())}}},{key:"marshalFromView",value:function(){_superPropGet(e,"marshalFromView",this,3)([]),this.codeJar&&this.options.CodeDataAddress&&this.onCodeChange(this.codeJar.toString())}}])}(n);e.exports=a,e.exports.default_configuration=i,e.exports.createHighlighter=r;var s=t("./demos");e.exports.demos=s.demos,e.exports.registerWithDocuserve=s.registerWithDocuserve},{"./Pict-Code-Highlighter.js":34,"./Pict-Section-Code-DefaultConfiguration.js":35,"./demos":37,"pict-view":171}],37:[function(t,e,o){var n=t("../Pict-Section-Code.js");function r(t,e,o){var r="demo-code-"+(o.Hash||"unnamed")+"-"+Date.now();e.innerHTML='<div id="'+r+'"></div>';var i={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:o.Language||"javascript",ReadOnly:!!o.ReadOnly,LineNumbers:!1!==o.LineNumbers,Tab:o.Tab||"\t",AddClosing:!1!==o.AddClosing,CatchTab:!1!==o.CatchTab,DefaultCode:o.Code||"// example code\n",AutoRender:!1,RenderOnLoad:!1},a=t.addView(i.ViewIdentifier,i,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)){var s=window.CodeJarModules.hljs,l=i.Language;a._highlightFunction=function(t){t.removeAttribute("data-highlighted"),delete t.dataset.highlighted,t.className=t.className.replace(/\bhljs\b/g,"").replace(/\blanguage-\S+/g,"").trim(),t.classList.add("language-"+l);try{s.highlightElement(t)}catch(t){}}}try{a.render()}catch(t){}return a}var i=[{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=i,e.exports.demos=i,e.exports.registerWithDocuserve=function(t){return t&&t.providers&&t.providers["Docuserve-Demos"]?t.providers["Docuserve-Demos"].registerAll(i):0}},{"../Pict-Section-Code.js":36}],38:[function(t,e,o){e.exports=t("./views/Pict-View-Content.js"),e.exports.PictContentProvider=t("./providers/Pict-Provider-Content.js")},{"./providers/Pict-Provider-Content.js":39,"./views/Pict-View-Content.js":40}],39:[function(t,e,o){var n=t("pict-provider"),r=t("pict-section-code").createHighlighter,i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e,[{key:"highlightCode",value:function(t,e){if(!t)return"";var o={textContent:t,innerHTML:""};return r(e)(o),o.innerHTML}},{key:"generateLineNumbers",value:function(t){if(!t)return"<span>1</span>";for(var e=t.split("\n").length,o="",n=1;n<=e;n++)o+="<span>"+n+"</span>";return o}},{key:"parseMarkdown",value:function(t,e,o,n){var r=this;if(!t)return"";for(var i=t.split("\n"),a=[],s=!1,l=0,c="",p=[],u=!1,d="",h=!1,f=[],m=!1,v=[],g=[],w=function(){g.length>0&&(a.push("<p>"+g.map(function(t){return r.parseInline(t,e,o,n)}).join(" ")+"</p>"),g=[])},y=0;y<i.length;y++){var b=i[y];if(s||!b.trim().match(/^\$\$/))if(m)v.push(b);else{var D=b.match(/^(`{3,})/);if(D){var P=D[1].length;if(s){if(P>=l&&b.trim()===D[1]){if("mermaid"===c)a.push('<pre class="mermaid">'+p.join("\n")+"</pre>");else if("excalidraw"===c){var T=p.join("\n"),S=void 0;try{S=encodeURIComponent(T)}catch(t){S=""}a.push('<div class="pict-excalidraw-fence" data-scene="'+S+'"><div class="pict-excalidraw-fence-loading">Rendering Excalidraw diagram…</div></div>')}else{var F=p.join("\n"),C=this.highlightCode(F,c),x=this.generateLineNumbers(F);a.push('<div class="pict-content-code-wrap"><div class="pict-content-code-line-numbers">'+x+'</div><pre><code class="language-'+this.escapeHTML(c)+'">'+C+"</code></pre></div>")}s=!1,l=0,c="",p=[];continue}p.push(b);continue}w(),u&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1),h&&(a.push("<blockquote>"+this.parseMarkdown(f.join("\n"),e,o,n)+"</blockquote>"),h=!1,f=[]),l=P,c=b.replace(/^`{3,}/,"").trim(),s=!0}else if(s)p.push(b);else if(b.match(/^>\s?/))h||(w(),u&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1),h=!0,f=[]),f.push(b.replace(/^>\s?/,""));else if(h&&(a.push("<blockquote>"+this.parseMarkdown(f.join("\n"),e,o,n)+"</blockquote>"),h=!1,f=[]),b.match(/^(-{3,}|\*{3,}|_{3,})\s*$/))w(),u&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1),a.push("<hr>");else{var _=b.match(/^(#{1,6})\s+(.+)/);if(_){w(),u&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1);var A=_[1].length,I=this.parseInline(_[2],e,o,n),k=_[2].toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-");a.push("<h"+A+' id="'+k+'">'+I+"</h"+A+">")}else{var H=b.match(/^(\s*)[-*+]\s+(.*)/);if(H)w(),u&&"ul"===d||(u&&a.push("ul"===d?"</ul>":"</ol>"),a.push("<ul>"),u=!0,d="ul"),a.push("<li>"+this.parseInline(H[2],e,o,n)+"</li>");else{var R=b.match(/^(\s*)\d+\.\s+(.*)/);if(R)w(),u&&"ol"===d||(u&&a.push("ul"===d?"</ul>":"</ol>"),a.push("<ol>"),u=!0,d="ol"),a.push("<li>"+this.parseInline(R[2],e,o,n)+"</li>");else if(u&&b.match(/^\s+\S/)&&a.length>0&&a[a.length-1].endsWith("</li>")){var M=a.length-1,V=a[M].slice(0,-5);a[M]=V+" "+this.parseInline(b.trim(),e,o,n)+"</li>"}else if(u&&""!==b.trim()&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1),""!==b.trim())if(b.match(/^\|/)&&y+1<i.length&&i[y+1].match(/^\|[\s-:|]+\|/)){w(),u&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1);var E="<table>",L=b.split("|").filter(function(t){return""!==t.trim()});E+="<thead><tr>";for(var N=0;N<L.length;N++)E+="<th>"+this.parseInline(L[N].trim(),e,o,n)+"</th>";for(E+="</tr></thead>",y++,E+="<tbody>";y+1<i.length&&i[y+1].match(/^\|/);){var O=i[++y].split("|").filter(function(t){return""!==t.trim()});E+="<tr>";for(var G=0;G<O.length;G++)E+="<td>"+this.parseInline(O[G].trim(),e,o,n)+"</td>";E+="</tr>"}E+="</tbody></table>",a.push(E)}else g.push(b);else w()}}}}else m?(a.push('<div class="pict-content-katex-display">'+v.join("\n")+"</div>"),m=!1,v=[]):(w(),u&&(a.push("ul"===d?"</ul>":"</ol>"),u=!1),h&&(a.push("<blockquote>"+this.parseMarkdown(f.join("\n"),e,o,n)+"</blockquote>"),h=!1,f=[]),m=!0)}if(w(),u&&a.push("ul"===d?"</ul>":"</ol>"),h&&a.push("<blockquote>"+this.parseMarkdown(f.join("\n"),e,o,n)+"</blockquote>"),s){var B=p.join("\n"),j=this.highlightCode(B,c),z=this.generateLineNumbers(B);a.push('<div class="pict-content-code-wrap"><div class="pict-content-code-line-numbers">'+z+"</div><pre><code>"+j+"</code></pre></div>")}return a.join("\n")}},{key:"parseInline",value:function(t,e,o,n){if(!t)return"";var r=t,i=[];return r=(r=(r=(r=(r=(r=(r=(r=(r=(r=r.replace(/`([^`]+)`/g,function(t,e){var o=i.length;return i.push("<code>"+e+"</code>"),"\0CODEINLINE"+o+"\0"})).replace(/\$([^\$\s][^\$]*?[^\$\s])\$/g,'<span class="pict-content-katex-inline">$1</span>')).replace(/\$([^\$\s])\$/g,'<span class="pict-content-katex-inline">$1</span>')).replace(/!\[([^\]]*)\]\(([^)]+)\)/g,function(t,e,n){var r=n;if("function"==typeof o){var i=o(n,e);i&&(r=i)}return'<img src="'+r+'" alt="'+e+'">'})).replace(/\[([^\]]+)\]\(([^)]+)\)/g,function(t,o,n){if("function"==typeof e){var r=e(n,o);if(r){var i=r.target?' target="'+r.target+'"':"",a=r.rel?' rel="'+r.rel+'"':"";return'<a href="'+r.href+'"'+i+a+">"+o+"</a>"}}return n.match(/^https?:\/\//)?'<a href="'+n+'" target="_blank" rel="noopener">'+o+"</a>":'<a href="'+n+'">'+o+"</a>"})).replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>")).replace(/__([^_]+)__/g,"<strong>$1</strong>")).replace(/\*([^*]+)\*/g,"<em>$1</em>")).replace(/_([^_]+)_/g,"<em>$1</em>")).replace(/\x00CODEINLINE(\d+)\x00/g,function(t,e){return i[parseInt(e)]}),"function"==typeof n&&(r=this._applyVocabularyLinks(r,n)),r}},{key:"_applyVocabularyLinks",value:function(t,e){if(!t||"function"!=typeof e)return t;for(var o={},n=t.split(/(<[^>]+>)/g),r=0,i=["code","a","pre","span"],a=0;a<n.length;a++){var s=n[a];if("<"!==s.charAt(0))r>0||(n[a]=s.replace(/\b([A-Za-z][A-Za-z0-9_-]{1,30})\b/g,function(t,n){if(n.length<3)return t;var r=n.toLowerCase();if(o[r])return t;var i=e(r);if(!i)return t;o[r]=!0;var a=(i.short||"").replace(/"/g,""");return'<span class="pict-vocab-term" data-vocab-slug="'+i.slug+'" data-vocab-title="'+(i.title||"").replace(/"/g,""")+'" data-vocab-short="'+a+'">'+t+"</span>"}));else{var l=s.match(/^<(\w+)/);l&&-1!==i.indexOf(l[1].toLowerCase())&&r++;var c=s.match(/^<\/(\w+)/);c&&-1!==i.indexOf(c[1].toLowerCase())&&(r=Math.max(0,r-1))}}return n.join("")}},{key:"escapeHTML",value:function(t){return t?t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):""}}])}(n);e.exports=i,e.exports.default_configuration={ProviderIdentifier:"Pict-Content",AutoInitialize:!0,AutoInitializeOrdinal:0}},{"pict-provider":32,"pict-section-code":36}],40:[function(t,e,o){var n=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,o,n])}return _inherits(e,t),_createClass2(e,[{key:"displayContent",value:function(t,e){var o=e||"Pict-Content-Body";this.pict.ContentAssignment.assignContent("#"+o,t);var n=document.getElementById(o);n&&n.parentElement&&(n.parentElement.scrollTop=0),n&&!n.classList.contains("pict-content")&&n.classList.add("pict-content"),this.enableFullscreenViewers(o,{skipMermaid:!0}),this.renderMermaidDiagrams(o),this.renderExcalidrawDiagrams(o),this.renderKaTeXEquations(o)}},{key:"renderExcalidrawDiagrams",value:function(t){var e=this;if("undefined"!=typeof document){var o=t||"Pict-Content-Body",n=document.getElementById(o);if(n){var r=n.querySelectorAll(".pict-excalidraw-fence:not([data-rendered])");if(!(r.length<1)){var i="undefined"!=typeof window?window.PictSectionExcalidrawVendor:null;if(i&&"function"==typeof i.exportToSvg)for(var a=function(){var t,o=r[s],n=o.getAttribute("data-scene")||"",a="";try{a=decodeURIComponent(n)}catch(t){a=""}try{t=JSON.parse(a)}catch(t){return e._renderExcalidrawFenceError(o,"Invalid scene JSON: "+t.message),1}var l={elements:t.elements||[],appState:Object.assign({exportEmbedScene:!0},t.appState||{}),files:t.files||{}};i.exportToSvg(l).then(function(t){t&&(t.removeAttribute("width"),t.removeAttribute("height"),t.setAttribute("style","max-width: 100%; height: auto;"),o.innerHTML="",o.appendChild(t),o.setAttribute("data-rendered","true"))}).catch(function(t){e._renderExcalidrawFenceError(o,"Excalidraw render failed: "+(t&&t.message?t.message:t))})},s=0;s<r.length;s++)a();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)}}}}},{key:"_renderExcalidrawFenceError",value:function(t,e){t.setAttribute("data-rendered","true"),t.classList.add("pict-excalidraw-fence-error"),t.innerHTML='<div class="pict-excalidraw-fence-error-message"></div>';var o=t.querySelector(".pict-excalidraw-fence-error-message");o&&(o.textContent=e),this.log&&this.log.warn&&this.log.warn("pict-excalidraw fence: "+e)}},{key:"_initializeMermaidTheme",value:function(){if("undefined"!=typeof mermaid&&"undefined"!=typeof window){var t=getComputedStyle(document.documentElement),e=function(e,o){return(t.getPropertyValue(e)||"").trim()||o};try{mermaid.initialize({startOnLoad:!1,theme:"base",securityLevel:"loose",themeVariables:{primaryColor:e("--theme-color-background-panel","#FAF8F4"),primaryTextColor:e("--theme-color-text-primary","#3D3229"),primaryBorderColor:e("--theme-color-brand-primary","#2E7D74"),secondaryColor:e("--theme-color-background-secondary","#F0EDE8"),secondaryTextColor:e("--theme-color-text-secondary","#5E5549"),secondaryBorderColor:e("--theme-color-border-default","#DDD6CA"),tertiaryColor:e("--theme-color-background-tertiary","#EDE9E3"),tertiaryTextColor:e("--theme-color-text-secondary","#5E5549"),tertiaryBorderColor:e("--theme-color-border-light","#E8E2D7"),background:e("--theme-color-background-panel","#FAF8F4"),mainBkg:e("--theme-color-background-panel","#FAF8F4"),secondBkg:e("--theme-color-background-secondary","#F0EDE8"),lineColor:e("--theme-color-text-secondary","#5E5549"),textColor:e("--theme-color-text-primary","#3D3229"),noteBkgColor:e("--theme-color-background-tertiary","#EDE9E3"),noteTextColor:e("--theme-color-text-primary","#3D3229"),noteBorderColor:e("--theme-color-border-default","#DDD6CA"),errorBkgColor:e("--theme-color-status-error","#D9534F"),errorTextColor:e("--theme-color-text-on-brand","#FFFFFF"),fontFamily:e("--theme-typography-family-sans","inherit")}})}catch(t){this.log&&this.log.warn&&this.log.warn("Mermaid theme init failed: "+t.message)}}}},{key:"_subscribeToThemeChanges",value:function(){if(!this._mermaidThemeSubscribed){var t=this.pict&&this.pict.providers&&this.pict.providers.Theme;if(t&&"function"==typeof t.onApply){var e=this;t.onApply(function(){e._initializeMermaidTheme(),e._refreshMermaidDiagrams()}),this._mermaidThemeSubscribed=!0}}}},{key:"_refreshMermaidDiagrams",value:function(){var t=this;if("undefined"!=typeof mermaid&&"undefined"!=typeof document){var e=document.querySelectorAll("pre.mermaid[data-mermaid-source]");if(!(e.length<1)){for(var o=0;o<e.length;o++){var n=e[o];n.textContent=n.getAttribute("data-mermaid-source"),n.removeAttribute("data-processed"),n.classList.remove("mermaid-rendered")}try{var r=mermaid.run({nodes:e});r&&"function"==typeof r.catch&&r.catch(function(e){t.log&&t.log.warn&&t.log.warn("Mermaid re-render failed: "+(e&&e.message?e.message:e))})}catch(t){this.log&&this.log.warn&&this.log.warn("Mermaid re-render failed: "+t.message)}}}}},{key:"renderMermaidDiagrams",value:function(t){var e=this;if("undefined"!=typeof mermaid){var o=t||"Pict-Content-Body",n=document.getElementById(o);if(n){var r=n.querySelectorAll("pre.mermaid");if(!(r.length<1)){this._initializeMermaidTheme(),this._subscribeToThemeChanges();for(var i=0;i<r.length;i++){var a=r[i];a.hasAttribute("data-mermaid-source")||a.setAttribute("data-mermaid-source",a.textContent)}try{var s=mermaid.run({nodes:r});s&&"function"==typeof s.then?s.then(function(){e.enableFullscreenViewers(o,{onlyMermaid:!0})}).catch(function(t){e.log.error("Mermaid rendering error: "+(t&&t.message?t.message:t))}):this.enableFullscreenViewers(o,{onlyMermaid:!0})}catch(t){this.log.error("Mermaid rendering error: "+t.message)}}}}}},{key:"renderKaTeXEquations",value:function(t){if("undefined"!=typeof katex){var e=t||"Pict-Content-Body",o=document.getElementById(e);if(o){for(var n=o.querySelectorAll(".pict-content-katex-inline"),r=0;r<n.length;r++)try{katex.render(n[r].textContent,n[r],{throwOnError:!1,displayMode:!1})}catch(t){this.log.warn("KaTeX inline error: "+t.message)}for(var i=o.querySelectorAll(".pict-content-katex-display"),a=0;a<i.length;a++)try{katex.render(i[a].textContent,i[a],{throwOnError:!1,displayMode:!0})}catch(t){this.log.warn("KaTeX display error: "+t.message)}}}}},{key:"enableFullscreenViewers",value:function(t,e){var o=this,n=t||"Pict-Content-Body",r=document.getElementById(n);if(r){var i=e||{};if(!i.onlyMermaid){for(var a=r.querySelectorAll("img:not([data-fullscreen-source])"),s=0;s<a.length;s++){var l=a[s];l.setAttribute("data-fullscreen-source","image");var c=l.getAttribute("alt");if(!c)c=(l.getAttribute("src")||"").split("/").pop().split("?")[0]||"Image";l.setAttribute("data-fullscreen-title",c)}for(var p=r.querySelectorAll(".pict-content-code-wrap:not([data-code-actions-wired])"),u=0;u<p.length;u++)this._wireCodeActions(p[u])}if(!i.skipMermaid)for(var d=r.querySelectorAll("pre.mermaid:not([data-fullscreen-source])"),h=0;h<d.length;h++){var f=d[h];f.querySelector("svg")&&(f.setAttribute("data-fullscreen-source","mermaid"),f.setAttribute("data-fullscreen-title","Mermaid Diagram"))}r.__pictFullscreenWired||(r.__pictFullscreenWired=!0,r.addEventListener("click",function(t){for(var e=t.target;e&&e!==r&&!e.hasAttribute("data-fullscreen-source");)e=e.parentElement;e&&e!==r&&e.hasAttribute("data-fullscreen-source")&&(t.preventDefault(),o._openFullscreen(e))}))}}},{key:"_wireCodeActions",value:function(t){var e=this;if(t&&!t.hasAttribute("data-code-actions-wired")){t.setAttribute("data-code-actions-wired","true");var o=t.querySelector('code[class*="language-"]'),n="Code";if(o){var r=(o.getAttribute("class")||"").match(/language-(\S+)/);r&&(n=r[1]+" code")}t.setAttribute("data-code-language",n);var i=document.createElement("div");i.className="pict-content-code-container";var a=document.createElement("div");a.className="pict-content-code-actions",a.setAttribute("aria-hidden","false");var s=document.createElement("button");s.type="button",s.className="pict-content-code-action-btn",s.setAttribute("aria-label","Open code in fullscreen"),s.setAttribute("title","Open in fullscreen"),s.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>';var l=document.createElement("button");l.type="button",l.className="pict-content-code-action-btn",l.setAttribute("aria-label","Copy code to clipboard"),l.setAttribute("title","Copy code"),l.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>',a.appendChild(s),a.appendChild(l),t.parentNode.insertBefore(i,t),i.appendChild(t),i.appendChild(a),s.addEventListener("click",function(o){o.preventDefault(),o.stopPropagation(),e._openCodeFullscreen(t)}),l.addEventListener("click",function(o){o.preventDefault(),o.stopPropagation(),e._copyCodeToClipboard(t,l)})}}},{key:"_openCodeFullscreen",value:function(t){var e=this._buildFullscreenOverlay();t.setAttribute("data-fullscreen-source","code"),t.setAttribute("data-fullscreen-title",t.getAttribute("data-code-language")||"Code"),e.open(t)}},{key:"_copyCodeToClipboard",value:function(t,e){var o=t.querySelector("code"),n=o?o.textContent:t.textContent,r=function(){e.classList.add("is-copied"),e.setAttribute("title","Copied!"),setTimeout(function(){e.classList.remove("is-copied"),e.setAttribute("title","Copy code")},1400)},i=function(){e.classList.add("is-copy-failed"),e.setAttribute("title","Copy failed"),setTimeout(function(){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(i)}catch(t){}try{var a=document.createElement("textarea");a.value=n,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();var s=document.execCommand("copy");document.body.removeChild(a),s?r():i()}catch(t){i()}}},{key:"_buildFullscreenOverlay",value:function(){if(e._FullscreenOverlay)return e._FullscreenOverlay;var 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);var o={scale:1,translateX:0,translateY:0,isPanning:!1,didPan:!1,currentKind:"",panStartX:0,panStartY:0,panOrigX:0,panOrigY:0,pinchInitialDistance:0,pinchInitialScale:1},n=t.querySelector(".pict-fullscreen-stage"),r=t.querySelector(".pict-fullscreen-content"),i=t.querySelector(".pict-fullscreen-title"),a=function(){r.style.transform="translate("+o.translateX+"px, "+o.translateY+"px) scale("+o.scale+")",n.classList.toggle("is-zoomed",o.scale>1.001)},s=function(t,e,r){var i,s=(i=t)<.5?.5:i>8?8:i,l=n.getBoundingClientRect(),c=void 0!==e?e:l.left+l.width/2,p=void 0!==r?r:l.top+l.height/2,u=c-(l.left+l.width/2),d=p-(l.top+l.height/2),h=s/o.scale;o.translateX=u-h*(u-o.translateX),o.translateY=d-h*(d-o.translateY),o.scale=s,a()},l=function(){o.scale=1,o.translateX=0,o.translateY=0,a()},c=function(){t.setAttribute("hidden",""),r.innerHTML="",l(),document.documentElement.style.removeProperty("overflow"),document.removeEventListener("keydown",p)},p=function(t){"Escape"===t.key?(t.preventDefault(),c()):"+"===t.key||"="===t.key?(t.preventDefault(),s(o.scale+.25)):"-"===t.key||"_"===t.key?(t.preventDefault(),s(o.scale-.25)):"0"===t.key&&(t.preventDefault(),l())};t.addEventListener("click",function(e){o.didPan?o.didPan=!1:e.target!==t&&e.target!==n||c()}),t.querySelectorAll("[data-action]").forEach(function(t){t.addEventListener("click",function(e){e.stopPropagation();var n=t.getAttribute("data-action");"close"===n?c():"zoom-in"===n?s(o.scale+.25):"zoom-out"===n?s(o.scale-.25):"zoom-reset"===n&&l()})}),n.addEventListener("wheel",function(t){if("code"!==o.currentKind){t.preventDefault();var e=.15*(-t.deltaY>0?1:-1);s(o.scale+e,t.clientX,t.clientY)}},{passive:!1}),n.addEventListener("pointerdown",function(t){"code"!==o.currentKind&&(o.scale<=1.001||t.target.closest(".pict-fullscreen-controls")||(o.isPanning=!0,o.panStartX=t.clientX,o.panStartY=t.clientY,o.panOrigX=o.translateX,o.panOrigY=o.translateY,n.setPointerCapture(t.pointerId),n.classList.add("is-panning")))}),n.addEventListener("pointermove",function(t){o.isPanning&&(o.translateX=o.panOrigX+(t.clientX-o.panStartX),o.translateY=o.panOrigY+(t.clientY-o.panStartY),a())});var u=function(t){if(o.isPanning){o.isPanning=!1,o.didPan=!0,n.classList.remove("is-panning");try{n.releasePointerCapture(t.pointerId)}catch(t){}}};n.addEventListener("pointerup",u),n.addEventListener("pointercancel",u);var d={};return n.addEventListener("touchstart",function(t){for(var e=0;e<t.touches.length;e++){var n=t.touches[e];d[n.identifier]={x:n.clientX,y:n.clientY}}if(2===t.touches.length){var r=t.touches[0],i=t.touches[1],a=i.clientX-r.clientX,s=i.clientY-r.clientY;o.pinchInitialDistance=Math.sqrt(a*a+s*s),o.pinchInitialScale=o.scale}},{passive:!0}),n.addEventListener("touchmove",function(t){if(2===t.touches.length&&o.pinchInitialDistance>0){t.preventDefault();var e=t.touches[0],n=t.touches[1],r=n.clientX-e.clientX,i=n.clientY-e.clientY,a=Math.sqrt(r*r+i*i)/o.pinchInitialDistance,l=(e.clientX+n.clientX)/2,c=(e.clientY+n.clientY)/2;s(o.pinchInitialScale*a,l,c)}},{passive:!1}),n.addEventListener("touchend",function(){d={},o.pinchInitialDistance=0}),e._FullscreenOverlay={element:t,content:r,titleEl:i,state:o,open:function(e){var n=e.getAttribute("data-fullscreen-title")||"";i.textContent=n,r.innerHTML="";var a,s=e.getAttribute("data-fullscreen-source");if(o.currentKind=s||"","mermaid"===s){var c=e.querySelector("svg");c?((a=c.cloneNode(!0)).classList.add("pict-fullscreen-mermaid-svg"),a.removeAttribute("style"),a.removeAttribute("width"),a.removeAttribute("height")):a=e.cloneNode(!0)}else"image"===s?(a=e.cloneNode(!0)).classList.add("pict-fullscreen-img"):(a=e.cloneNode(!0)).classList.add("pict-fullscreen-codewrap");r.appendChild(a);for(var u=t.querySelectorAll('[data-action="zoom-in"], [data-action="zoom-out"], [data-action="zoom-reset"]'),d=0;d<u.length;d++)u[d].style.display="code"===s?"none":"";l(),t.removeAttribute("hidden"),document.documentElement.style.overflow="hidden",document.addEventListener("keydown",p)},close:c},e._FullscreenOverlay}},{key:"_openFullscreen",value:function(t){this._buildFullscreenOverlay().open(t)}},{key:"showLoading",value:function(t,e){var o=e||"Pict-Content-Body",n=t||"Loading content...";this.pict.ContentAssignment.assignContent("#"+o,'<div class="pict-content-loading">'+n+"</div>")}}])}(t("pict-view"));e.exports=n,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/* 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.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-view":171}],41:[function(t,e,o){e.exports=t("./views/PictView-Flow.js"),e.exports.PictViewFlowNode=t("./views/PictView-Flow-Node.js"),e.exports.PictViewFlowToolbar=t("./views/PictView-Flow-Toolbar.js"),e.exports.PictViewFlowFloatingToolbar=t("./views/PictView-Flow-FloatingToolbar.js"),e.exports.PictServiceFlowInteractionManager=t("./services/PictService-Flow-InteractionManager.js"),e.exports.PictServiceFlowConnectionRenderer=t("./services/PictService-Flow-ConnectionRenderer.js"),e.exports.PictServiceFlowTether=t("./services/PictService-Flow-Tether.js"),e.exports.PictServiceFlowLayout=t("./services/PictService-Flow-Layout.js"),e.exports.PictServiceFlowPathGenerator=t("./services/PictService-Flow-PathGenerator.js"),e.exports.PictServiceFlowViewportManager=t("./services/PictService-Flow-ViewportManager.js"),e.exports.PictServiceFlowSelectionManager=t("./services/PictService-Flow-SelectionManager.js"),e.exports.PictServiceFlowPanelManager=t("./services/PictService-Flow-PanelManager.js"),e.exports.PictServiceFlowDataManager=t("./services/PictService-Flow-DataManager.js"),e.exports.PictServiceFlowConnectionHandleManager=t("./services/PictService-Flow-ConnectionHandleManager.js"),e.exports.PictServiceFlowRenderManager=t("./services/PictService-Flow-RenderManager.js"),e.exports.PictServiceFlowPortRenderer=t("./services/PictService-Flow-PortRenderer.js"),e.exports.PictProviderFlowNodeTypes=t("./providers/PictProvider-Flow-NodeTypes.js"),e.exports.PictProviderFlowEventHandler=t("./providers/PictProvider-Flow-EventHandler.js"),e.exports.PictProviderFlowLayouts=t("./providers/PictProvider-Flow-Layouts.js"),e.exports.PictProviderFlowSVGHelpers=t("./providers/PictProvider-Flow-SVGHelpers.js"),e.exports.PictProviderFlowGeometry=t("./providers/PictProvider-Flow-Geometry.js"),e.exports.PictProviderFlowPanelChrome=t("./providers/PictProvider-Flow-PanelChrome.js"),e.exports.PictProviderFlowCSS=t("./providers/PictProvider-Flow-CSS.js"),e.exports.PictProviderFlowIcons=t("./providers/PictProvider-Flow-Icons.js"),e.exports.PictProviderFlowConnectorShapes=t("./providers/PictProvider-Flow-ConnectorShapes.js"),e.exports.LayoutAlgorithms={Custom:t("./providers/layouts/Layout-Custom.js"),Layered:t("./providers/layouts/Layout-Layered.js"),ForcedFromCenter:t("./providers/layouts/Layout-ForcedFromCenter.js"),Grid:t("./providers/layouts/Layout-Grid.js"),Circular:t("./providers/layouts/Layout-Circular.js"),Tabular:t("./providers/layouts/Layout-Tabular.js"),Columnar:t("./providers/layouts/Layout-Columnar.js")},e.exports.EdgeThemes={Bezier:t("./providers/edges/Edge-Bezier.js"),Orthogonal:t("./providers/edges/Edge-Orthogonal.js"),Straight:t("./providers/edges/Edge-Straight.js"),OrthogonalSnap:t("./providers/edges/Edge-OrthogonalSnap.js"),Perimeter:t("./providers/edges/Edge-Perimeter.js"),PerimeterLinear:t("./providers/edges/Edge-Perimeter-Linear.js"),PerimeterOrthogonal:t("./providers/edges/Edge-Perimeter-Orthogonal.js")},e.exports.PictFlowCard=t("./PictFlowCard.js"),e.exports.PictFlowCardPropertiesPanel=t("./PictFlowCardPropertiesPanel.js"),e.exports.FlowCardPropertiesPanelTemplate=t("./panels/FlowCardPropertiesPanel-Template.js"),e.exports.FlowCardPropertiesPanelMarkdown=t("./panels/FlowCardPropertiesPanel-Markdown.js"),e.exports.FlowCardPropertiesPanelForm=t("./panels/FlowCardPropertiesPanel-Form.js"),e.exports.FlowCardPropertiesPanelView=t("./panels/FlowCardPropertiesPanel-View.js"),e.exports.PictViewFlowPropertiesPanel=t("./views/PictView-Flow-PropertiesPanel.js")},{"./PictFlowCard.js":42,"./PictFlowCardPropertiesPanel.js":43,"./panels/FlowCardPropertiesPanel-Form.js":44,"./panels/FlowCardPropertiesPanel-Markdown.js":45,"./panels/FlowCardPropertiesPanel-Template.js":46,"./panels/FlowCardPropertiesPanel-View.js":47,"./providers/PictProvider-Flow-CSS.js":48,"./providers/PictProvider-Flow-ConnectorShapes.js":49,"./providers/PictProvider-Flow-EventHandler.js":50,"./providers/PictProvider-Flow-Geometry.js":51,"./providers/PictProvider-Flow-Icons.js":52,"./providers/PictProvider-Flow-Layouts.js":53,"./providers/PictProvider-Flow-NodeTypes.js":54,"./providers/PictProvider-Flow-PanelChrome.js":56,"./providers/PictProvider-Flow-SVGHelpers.js":58,"./providers/edges/Edge-Bezier.js":61,"./providers/edges/Edge-Orthogonal.js":62,"./providers/edges/Edge-OrthogonalSnap.js":63,"./providers/edges/Edge-Perimeter-Linear.js":64,"./providers/edges/Edge-Perimeter-Orthogonal.js":65,"./providers/edges/Edge-Perimeter.js":66,"./providers/edges/Edge-Straight.js":68,"./providers/layouts/Layout-Circular.js":69,"./providers/layouts/Layout-Columnar.js":71,"./providers/layouts/Layout-Custom.js":72,"./providers/layouts/Layout-ForcedFromCenter.js":73,"./providers/layouts/Layout-Grid.js":74,"./providers/layouts/Layout-Layered.js":75,"./providers/layouts/Layout-Tabular.js":76,"./services/PictService-Flow-ConnectionHandleManager.js":77,"./services/PictService-Flow-ConnectionRenderer.js":78,"./services/PictService-Flow-DataManager.js":79,"./services/PictService-Flow-InteractionManager.js":80,"./services/PictService-Flow-Layout.js":81,"./services/PictService-Flow-PanelManager.js":82,"./services/PictService-Flow-PathGenerator.js":83,"./services/PictService-Flow-PortRenderer.js":84,"./services/PictService-Flow-RenderManager.js":85,"./services/PictService-Flow-SelectionManager.js":86,"./services/PictService-Flow-Tether.js":87,"./services/PictService-Flow-ViewportManager.js":88,"./views/PictView-Flow-FloatingToolbar.js":89,"./views/PictView-Flow-Node.js":90,"./views/PictView-Flow-PropertiesPanel.js":91,"./views/PictView-Flow-Toolbar.js":92,"./views/PictView-Flow.js":93}],42:[function(t,e,o){var n=function(t){function e(t,o,n){var r;_classCallCheck(this,e);var i=Object.assign({},e.default_configuration,o);return(r=_callSuper(this,e,[t,i,n])).serviceType="PictFlowCard",r.cardTitle=i.Title?i.Title:"Card",r.cardName=!!i.Name&&i.Name,r.cardCode=i.Code?i.Code:"",r.cardDescription=!!i.Description&&i.Description,r.cardIcon=!!i.Icon&&i.Icon,r.cardPreviewImage=!!i.PreviewImage&&i.PreviewImage,r.cardDocumentation=!!i.Documentation&&i.Documentation,r.cardTooltip=!!i.Tooltip&&i.Tooltip,r.cardHelp=!!i.Help&&i.Help,r.cardEnabled="boolean"!=typeof i.Enabled||i.Enabled,r.cardTitleBarColor=i.TitleBarColor?i.TitleBarColor:"var(--theme-color-text-primary, #2c3e50)",r.cardBodyStyle=i.BodyStyle?i.BodyStyle:{},r.cardWidth="number"==typeof i.Width?i.Width:180,r.cardHeight="number"==typeof i.Height?i.Height:80,r.cardCategory=i.Category?i.Category:"General",r.cardInputs=Array.isArray(i.Inputs)?i.Inputs:[],r.cardOutputs=Array.isArray(i.Outputs)?i.Outputs:[],r.cardPropertiesPanel=i.PropertiesPanel&&"object"===_typeof(i.PropertiesPanel)?i.PropertiesPanel:null,r.cardBodyContent=i.BodyContent&&"object"===_typeof(i.BodyContent)?i.BodyContent:null,r.cardShowTypeLabel="boolean"!=typeof i.ShowTypeLabel||i.ShowTypeLabel,r.cardPortLabelsOnHover="boolean"==typeof i.PortLabelsOnHover&&i.PortLabelsOnHover,r.cardPortLabelsVertical="boolean"==typeof i.PortLabelsVertical&&i.PortLabelsVertical,r.cardPortLabelPadding="boolean"==typeof i.PortLabelPadding&&i.PortLabelPadding,r.cardPortLabelsOutside="boolean"==typeof i.PortLabelsOutside&&i.PortLabelsOutside,r.cardLabelsInFront="boolean"!=typeof i.LabelsInFront||i.LabelsInFront,r}return _inherits(e,t),_createClass2(e,[{key:"getNodeTypeConfiguration",value:function(){for(var t=[],e=0;e<this.cardInputs.length;e++){var o=this.cardInputs[e],n={Hash:null,Direction:"input",Side:o.Side||"left",Label:o.Name||"In ".concat(e+1),MinimumInputCount:"number"==typeof o.MinimumInputCount?o.MinimumInputCount:0,MaximumInputCount:"number"==typeof o.MaximumInputCount?o.MaximumInputCount:-1};o.PortType&&(n.PortType=o.PortType),o.DataType&&(n.DataType=o.DataType),t.push(n)}for(var r=0;r<this.cardOutputs.length;r++){var i=this.cardOutputs[r],a={Hash:null,Direction:"output",Side:i.Side||"right",Label:i.Name||"Out ".concat(r+1)};i.PortType&&(a.PortType=i.PortType),i.DataType&&(a.DataType=i.DataType),t.push(a)}0===t.length&&(t.push({Hash:null,Direction:"input",Side:"left",Label:"In"}),t.push({Hash:null,Direction:"output",Side:"right",Label:"Out"}));var s={Hash:this.cardCode,Label:this.cardTitle,DefaultWidth:this.cardWidth,DefaultHeight:this.cardHeight,DefaultPorts:t,TitleBarColor:this.cardTitleBarColor,BodyStyle:JSON.parse(JSON.stringify(this.cardBodyStyle)),CardMetadata:{Name:this.cardName,Code:this.cardCode,Description:this.cardDescription,Icon:this.cardIcon,PreviewImage:this.cardPreviewImage,Documentation:this.cardDocumentation,Tooltip:this.cardTooltip,Enabled:this.cardEnabled,Category:this.cardCategory,Help:this.cardHelp}};return s.ShowTypeLabel=this.cardShowTypeLabel,s.PortLabelsOnHover=this.cardPortLabelsOnHover,s.PortLabelsVertical=this.cardPortLabelsVertical,s.PortLabelPadding=this.cardPortLabelPadding,s.PortLabelsOutside=this.cardPortLabelsOutside,s.LabelsInFront=this.cardLabelsInFront,this.cardPropertiesPanel&&(s.PropertiesPanel=JSON.parse(JSON.stringify(this.cardPropertiesPanel))),this.cardBodyContent&&(s.BodyContent=JSON.parse(JSON.stringify(this.cardBodyContent)),"function"==typeof this.options.BodyContent.RenderCallback&&(s.BodyContent.RenderCallback=this.options.BodyContent.RenderCallback)),s}},{key:"registerWithFlowView",value:function(t){if(!t||!t._NodeTypeProvider)return this.log.warn("PictFlowCard registerWithFlowView: no valid FlowView or NodeTypeProvider"),!1;var e=this.getNodeTypeConfiguration();return t._NodeTypeProvider.registerNodeType(e)}}])}(t("fable-serviceproviderbase"));e.exports=n,e.exports.default_configuration={Title:"Card",Name:!1,Code:"",Description:!1,Icon:!1,PreviewImage:!1,Documentation:!1,Tooltip:!1,Inputs:[],Outputs:[],Enabled:!0,TitleBarColor:"var(--theme-color-text-primary, #2c3e50)",BodyStyle:{},Width:180,Height:80,Category:"General",PropertiesPanel:null,BodyContent:null,ShowTypeLabel:!0,PortLabelsOnHover:!1,PortLabelsVertical:!1,PortLabelPadding:!1,PortLabelsOutside:!1,LabelsInFront:!0}},{"fable-serviceproviderbase":26}],43:[function(t,e,o){var n=function(t){function e(t,o,n){var r;_classCallCheck(this,e);var i=Object.assign({},e.default_configuration,o);return(r=_callSuper(this,e,[t,i,n])).serviceType="PictFlowCardPropertiesPanel",r.panelType=i.PanelType||"Base",r.panelTitle=i.Title||"Properties",r.panelWidth="number"==typeof i.Width?i.Width:300,r.panelHeight="number"==typeof i.Height?i.Height:200,r._FlowView=null,r._NodeData=null,r._ContentContainer=null,r._Configuration=i.Configuration||{},r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e){this._ContentContainer=t,this._NodeData=e}},{key:"marshalToPanel",value:function(t){this._NodeData=t}},{key:"marshalFromPanel",value:function(t){}},{key:"destroy",value:function(){this._ContentContainer=null,this._NodeData=null}}])}(t("fable-serviceproviderbase"));e.exports=n,e.exports.default_configuration={PanelType:"Base",Title:"Properties",Width:300,Height:200,Configuration:{}}},{"fable-serviceproviderbase":26}],44:[function(t,e,o){var n=t("../PictFlowCardPropertiesPanel.js"),r=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictFlowCardPropertiesPanel-Form",r._Metacontroller=null,r._InjectedSectionHash=null,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,o){if(_superPropGet(e,"render",this,3)([t,o]),this._Configuration&&this._Configuration.Manifest){var n="pict-flow-panel-form-".concat(o.Hash);t.innerHTML='<div id="'.concat(n,'"></div>'),this.fable.AppData.Record=o;try{if(!this._Metacontroller){var r=null;this.fable.servicesMap.hasOwnProperty("PictFormMetacontroller")?r="PictFormMetacontroller":this.fable.servicesMap.hasOwnProperty("PictViewFormMetacontroller")&&(r="PictViewFormMetacontroller"),r&&(this._Metacontroller=this.fable.instantiateServiceProviderWithoutRegistration(r,{ViewIdentifier:"FlowPanelForm-".concat(o.Hash),DefaultDestinationAddress:"#".concat(n),AutoRender:!1,AutoPopulateAfterRender:!0,AutoSolveBeforeRender:!1}))}if(this._Metacontroller&&"function"==typeof this._Metacontroller.injectManifestAndRender){var i="Pict-".concat(this._Metacontroller.UUID,"-FormContainer"),a=t.querySelector("#".concat(n));a&&(a.innerHTML='<div id="'.concat(i,'" class="pict-form"></div>'));var s=JSON.parse(JSON.stringify(this._Configuration.Manifest));this._InjectedSectionHash=s.Hash||null,this._Metacontroller.injectManifestAndRender(s)}else if(this._Metacontroller&&"function"==typeof this._Metacontroller.injectManifest){var l=JSON.parse(JSON.stringify(this._Configuration.Manifest)),c=this._Metacontroller.injectManifest(l);this._InjectedSectionHash=l.Hash||null;var p=t.querySelector("#".concat(n));if(p&&c.length>0){for(var u="",d=0;d<c.length;d++){var h=c[d].options.DefaultDestinationAddress;h&&"#"===h.charAt(0)&&(h=h.substring(1)),u+='<div id="'.concat(h,'" class="pict-form-view"></div>')}p.innerHTML=u;for(var f=0;f<c.length;f++)c[f].render()}}else t.innerHTML="<em>pict-section-form is not available. Install it in your application to use Form panels.</em>"}catch(e){this.log.warn("FlowCardPropertiesPanel-Form render error: ".concat(e.message)),t.innerHTML="<em>Form render error: ".concat(e.message,"</em>")}}else t.innerHTML="<em>No form manifest configured</em>"}},{key:"marshalFromPanel",value:function(t){this._Metacontroller&&"function"==typeof this._Metacontroller.marshalFromView&&this._Metacontroller.marshalFromView()}},{key:"destroy",value:function(){this._Metacontroller=null,this._InjectedSectionHash=null,_superPropGet(e,"destroy",this,3)([])}}])}(n);e.exports=r,e.exports.default_configuration=Object.assign({},n.default_configuration,{PanelType:"Form",Configuration:{Manifest:null}})},{"../PictFlowCardPropertiesPanel.js":43}],45:[function(t,e,o){var n=t("../PictFlowCardPropertiesPanel.js"),r=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictFlowCardPropertiesPanel-Markdown",r._ContentProvider=null,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,o){_superPropGet(e,"render",this,3)([t,o]),this._renderMarkdown()}},{key:"marshalToPanel",value:function(t){_superPropGet(e,"marshalToPanel",this,3)([t]),this._renderMarkdown()}},{key:"_renderMarkdown",value:function(){if(this._ContentContainer&&this._Configuration){var t="";if(this._Configuration.MarkdownAddress&&this._NodeData?t=this.fable.manifest.getValueByHash(this._NodeData,this._Configuration.MarkdownAddress)||"":this._Configuration.Markdown&&(t=this._Configuration.Markdown),t)try{if(this._ContentProvider||this.fable.servicesMap.hasOwnProperty("PictContentProvider")&&(this._ContentProvider=this.fable.instantiateServiceProviderWithoutRegistration("PictContentProvider",{})),this._ContentProvider&&"function"==typeof this._ContentProvider.parseMarkdown){var e=this._ContentProvider.parseMarkdown(t);this._ContentContainer.innerHTML=e,"function"==typeof this._ContentProvider.renderKaTeXEquations&&this._ContentProvider.renderKaTeXEquations(this._ContentContainer),"function"==typeof this._ContentProvider.renderMermaidDiagrams&&this._ContentProvider.renderMermaidDiagrams(this._ContentContainer)}else this._ContentContainer.innerHTML='<pre style="white-space: pre-wrap; font-family: inherit;">'.concat(this._escapeHTML(t),"</pre>")}catch(e){this.log.warn("FlowCardPropertiesPanel-Markdown render error: ".concat(e.message)),this._ContentContainer.innerHTML='<pre style="white-space: pre-wrap; font-family: inherit;">'.concat(this._escapeHTML(t),"</pre>")}else this._ContentContainer.innerHTML="<em>No content</em>"}}},{key:"_escapeHTML",value:function(t){var e=document.createElement("div");return e.textContent=t,e.innerHTML}},{key:"destroy",value:function(){this._ContentProvider=null,_superPropGet(e,"destroy",this,3)([])}}])}(n);e.exports=r,e.exports.default_configuration=Object.assign({},n.default_configuration,{PanelType:"Markdown",Configuration:{Markdown:"",MarkdownAddress:""}})},{"../PictFlowCardPropertiesPanel.js":43}],46:[function(t,e,o){var n=t("../PictFlowCardPropertiesPanel.js"),r=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictFlowCardPropertiesPanel-Template",r._TemplatesRegistered=!1,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,o){if(_superPropGet(e,"render",this,3)([t,o]),this._Configuration&&this._Configuration.Templates){if(!this._TemplatesRegistered){for(var n=this._Configuration.Templates,r=0;r<n.length;r++)n[r].Hash&&n[r].Template&&this.fable.TemplateProvider.addTemplate(n[r].Hash,n[r].Template);this._TemplatesRegistered=!0}this._renderTemplate()}}},{key:"marshalToPanel",value:function(t){_superPropGet(e,"marshalToPanel",this,3)([t]),this._renderTemplate()}},{key:"_renderTemplate",value:function(){if(this._ContentContainer&&this._NodeData){var t=this._Configuration.TemplateHash;if(t){var e=this._NodeData,o=this.fable.parseTemplateByHash(t,e,null,[e]);this._ContentContainer.innerHTML=o}}}}])}(n);e.exports=r,e.exports.default_configuration=Object.assign({},n.default_configuration,{PanelType:"Template",Configuration:{Templates:[],TemplateHash:""}})},{"../PictFlowCardPropertiesPanel.js":43}],47:[function(t,e,o){var n=t("../PictFlowCardPropertiesPanel.js"),r=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictFlowCardPropertiesPanel-View",r._OriginalDestination=null,r._ViewInstance=null,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,o){if(_superPropGet(e,"render",this,3)([t,o]),this._Configuration&&this._Configuration.ViewHash){var n=this._Configuration.ViewHash,r="pict-flow-panel-view-".concat(o.Hash);t.innerHTML='<div id="'.concat(r,'"></div>');try{var i=this.pict||this.fable;i.views&&i.views[n]?(this._ViewInstance=i.views[n],this._OriginalDestination=this._ViewInstance.options.DefaultDestinationAddress,this._ViewInstance.options.DefaultDestinationAddress="#".concat(r),"function"==typeof this._ViewInstance.render&&this._ViewInstance.render()):t.innerHTML='<em>View "'.concat(n,'" not found</em>')}catch(e){this.log.warn("FlowCardPropertiesPanel-View render error: ".concat(e.message)),t.innerHTML="<em>View render error: ".concat(e.message,"</em>")}}else t.innerHTML="<em>No ViewHash configured</em>"}},{key:"marshalFromPanel",value:function(t){this._ViewInstance&&"function"==typeof this._ViewInstance.marshalFromView&&this._ViewInstance.marshalFromView()}},{key:"destroy",value:function(){this._ViewInstance&&this._OriginalDestination&&(this._ViewInstance.options.DefaultDestinationAddress=this._OriginalDestination),this._ViewInstance=null,this._OriginalDestination=null,_superPropGet(e,"destroy",this,3)([])}}])}(n);e.exports=r,e.exports.default_configuration=Object.assign({},n.default_configuration,{PanelType:"View",Configuration:{ViewHash:""}})},{"../PictFlowCardPropertiesPanel.js":43}],48:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={ProviderIdentifier:"PictProviderFlowCSS"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowCSS",i._FlowView=o&&o.FlowView?o.FlowView:null,i}return _inherits(e,t),_createClass2(e,[{key:"getContainerCSS",value:function(){return'\n\t\t.pict-flow-container {\n\t\t\t/* ── Design Tokens ─────────────────────────────────────\n\t\t\t Override these custom properties to theme the flow diagram.\n\t\t\t Node-type classes (.pict-flow-node-{type}) can scope-override\n\t\t\t any variable for per-type variation.\n\n\t\t\t Defaults reference the host application\'s pict-provider-theme\n\t\t\t tokens (--theme-color-*) when available, with hardcoded\n\t\t\t fallbacks so the editor still looks reasonable in unthemed\n\t\t\t contexts. Internal flow themes (sketch, blueprint, etc.) keep\n\t\t\t layering on top via .pict-flow-container scoped overrides. */\n\n\t\t\t/* Text */\n\t\t\t--pf-text-primary: var(--theme-color-text-primary, #2c3e50);\n\t\t\t--pf-text-heading: var(--theme-color-text-primary, #1a252f);\n\t\t\t--pf-text-secondary: var(--theme-color-text-secondary, #7f8c8d);\n\t\t\t--pf-text-tertiary: var(--theme-color-text-muted, #8e99a4);\n\t\t\t--pf-text-placeholder: var(--theme-color-text-placeholder, #95a5a6);\n\n\t\t\t/* Node */\n\t\t\t--pf-node-body-fill: var(--theme-color-background-panel, #ffffff);\n\t\t\t--pf-node-body-stroke: var(--theme-color-border-default, #d0d4d8);\n\t\t\t--pf-node-body-stroke-hover: var(--theme-color-border-strong, #b0b8c0);\n\t\t\t--pf-node-body-stroke-width: 1;\n\t\t\t--pf-node-body-radius: 8px;\n\t\t\t--pf-node-shadow: drop-shadow(0 1px 3px var(--theme-color-shadow-color, rgba(0, 0, 0, 0.10)));\n\t\t\t--pf-node-shadow-hover: drop-shadow(0 2px 6px var(--theme-color-shadow-color, rgba(0, 0, 0, 0.15)));\n\t\t\t--pf-node-shadow-selected: drop-shadow(0 2px 8px rgba(52, 152, 219, 0.25));\n\t\t\t--pf-node-shadow-dragging: drop-shadow(0 4px 12px var(--theme-color-shadow-color, rgba(0, 0, 0, 0.20)));\n\t\t\t--pf-node-title-fill: var(--theme-color-background-panel, #ffffff);\n\t\t\t--pf-node-title-size: 11.5px;\n\t\t\t--pf-node-title-weight: 600;\n\t\t\t--pf-node-title-bar-color: var(--theme-color-text-primary, #2c3e50);\n\t\t\t--pf-node-type-label-fill: var(--theme-color-text-muted, #a0a8b0);\n\t\t\t--pf-node-selected-stroke: var(--theme-color-brand-primary, #3498db);\n\n\t\t\t/* Node Variants */\n\t\t\t--pf-node-start-fill: var(--theme-color-background-hover, #eafaf1);\n\t\t\t--pf-node-start-stroke: var(--theme-color-status-success, #27ae60);\n\t\t\t--pf-node-end-fill: var(--theme-color-background-hover, #e8f8f5);\n\t\t\t--pf-node-end-stroke: var(--theme-color-brand-primary, #1abc9c);\n\t\t\t--pf-node-halt-fill: var(--theme-color-background-hover, #fdedec);\n\t\t\t--pf-node-halt-stroke: var(--theme-color-status-error, #e74c3c);\n\t\t\t--pf-node-decision-fill: var(--theme-color-background-hover, #fff9e6);\n\t\t\t--pf-node-decision-stroke: var(--theme-color-status-warning, #f39c12);\n\n\t\t\t/* ── Color roles ───────────────────────────────────────\n\t\t\t Generic, theme-aware semantic colors that node types and\n\t\t\t individual cards opt into via a ColorRole field. The\n\t\t\t "-soft" variant is the tinted background; the bare role is\n\t\t\t the title-bar / outline / accent stroke.\n\n\t\t\t Hosts can override any of these tokens at .pict-flow-container\n\t\t\t scope (or at their own scope) without touching JS. Built-in\n\t\t\t node types resolve their visuals through these tokens, so\n\t\t\t theming a role automatically retints every card that uses it.\n\n\t\t\t Soft tints use color-mix() — supported in Chrome 111+,\n\t\t\t Safari 16.2+, Firefox 113+. The hardcoded fallbacks keep the\n\t\t\t editor presentable on older engines. */\n\t\t\t--pf-color-success: var(--theme-color-status-success, #27ae60);\n\t\t\t--pf-color-success-soft: color-mix(in srgb, var(--pf-color-success) 12%, transparent);\n\t\t\t--pf-color-warning: var(--theme-color-status-warning, #f39c12);\n\t\t\t--pf-color-warning-soft: color-mix(in srgb, var(--pf-color-warning) 14%, transparent);\n\t\t\t--pf-color-error: var(--theme-color-status-error, #e74c3c);\n\t\t\t--pf-color-error-soft: color-mix(in srgb, var(--pf-color-error) 12%, transparent);\n\t\t\t--pf-color-info: var(--theme-color-status-info, #3498db);\n\t\t\t--pf-color-info-soft: color-mix(in srgb, var(--pf-color-info) 12%, transparent);\n\t\t\t--pf-color-accent: var(--theme-color-brand-accent, #1abc9c);\n\t\t\t--pf-color-accent-soft: color-mix(in srgb, var(--pf-color-accent) 14%, transparent);\n\t\t\t--pf-color-neutral: var(--theme-color-text-primary, #2c3e50);\n\t\t\t--pf-color-neutral-soft: var(--theme-color-background-panel, #ffffff);\n\t\t\t--pf-color-neutral-onfill: var(--theme-color-background-panel, #ffffff);\n\n\t\t\t/* Ports */\n\t\t\t--pf-port-input-fill: var(--theme-color-status-info, #3498db);\n\t\t\t--pf-port-output-fill: var(--theme-color-status-success, #2ecc71);\n\t\t\t--pf-port-stroke: var(--theme-color-background-panel, #ffffff);\n\t\t\t--pf-port-stroke-width: 2;\n\t\t\t--pf-port-label-bg: rgba(255, 253, 240, 0.5);\n\t\t\t--pf-port-label-text: var(--theme-color-text-primary, #2c3e50);\n\n\t\t\t/* Port Type Colors */\n\t\t\t--pf-port-event-in-fill: var(--theme-color-status-info, #3498db);\n\t\t\t--pf-port-event-out-fill: var(--theme-color-status-success, #2ecc71);\n\t\t\t--pf-port-setting-fill: var(--theme-color-status-warning, #e67e22);\n\t\t\t--pf-port-value-fill: var(--theme-color-status-warning, #f1c40f);\n\t\t\t--pf-port-error-fill: var(--theme-color-status-error, #e74c3c);\n\n\t\t\t/* Connection Type Colors (match source port) */\n\t\t\t--pf-connection-event-in-stroke: var(--theme-color-status-info, #3498db);\n\t\t\t--pf-connection-event-out-stroke: var(--theme-color-status-success, #2ecc71);\n\t\t\t--pf-connection-setting-stroke: var(--theme-color-status-warning, #e67e22);\n\t\t\t--pf-connection-value-stroke: var(--theme-color-status-warning, #f1c40f);\n\t\t\t--pf-connection-error-stroke: var(--theme-color-status-error, #e74c3c);\n\n\t\t\t/* Connections */\n\t\t\t--pf-connection-stroke: var(--theme-color-border-strong, #95a5a6);\n\t\t\t--pf-connection-stroke-hover: var(--theme-color-text-secondary, #7f8c8d);\n\t\t\t--pf-connection-selected-stroke: var(--theme-color-brand-primary, #3498db);\n\n\t\t\t/* Panels */\n\t\t\t--pf-panel-bg: var(--theme-color-background-panel, #ffffff);\n\t\t\t--pf-panel-border: var(--theme-color-border-default, #d0d4d8);\n\t\t\t--pf-panel-radius: 8px;\n\t\t\t--pf-panel-shadow: 0 4px 12px var(--theme-color-shadow-color, rgba(0, 0, 0, 0.10)), 0 1px 3px var(--theme-color-shadow-color, rgba(0, 0, 0, 0.06));\n\t\t\t--pf-panel-titlebar-bg: var(--theme-color-background-secondary, #f7f8fa);\n\t\t\t--pf-panel-titlebar-border: var(--theme-color-border-light, #e8eaed);\n\t\t\t--pf-panel-title-color: var(--theme-color-text-primary, #2c3e50);\n\n\t\t\t/* Tabs */\n\t\t\t--pf-tab-text: var(--theme-color-text-muted, #8e99a4);\n\t\t\t--pf-tab-text-hover: var(--theme-color-text-secondary, #5a6a7a);\n\t\t\t--pf-tab-active-border: var(--pf-node-selected-stroke);\n\t\t\t--pf-resize-handle-hover: var(--theme-color-border-light, #e0e3e6);\n\n\t\t\t/* Forms & Inputs */\n\t\t\t--pf-input-border: var(--theme-color-border-default, #d5d8dc);\n\t\t\t--pf-input-border-focus: var(--theme-color-focus-outline, #3498db);\n\t\t\t--pf-divider-light: var(--theme-color-border-light, #ecf0f1);\n\t\t\t--pf-divider-medium: var(--theme-color-border-light, #e8eaed);\n\n\t\t\t/* Buttons */\n\t\t\t--pf-button-border: var(--theme-color-border-default, #bdc3c7);\n\t\t\t--pf-button-hover-border: var(--theme-color-border-strong, #95a5a6);\n\t\t\t--pf-button-hover-bg: var(--theme-color-background-hover, #ecf0f1);\n\t\t\t--pf-button-active-bg: var(--theme-color-background-selected, #d5dbdb);\n\t\t\t--pf-button-danger-text: var(--theme-color-status-error, #e74c3c);\n\t\t\t--pf-button-danger-hover-bg: var(--theme-color-background-hover, #fdedec);\n\t\t\t--pf-button-close-color: var(--theme-color-text-muted, #b0b8c0);\n\n\t\t\t/* Badges */\n\t\t\t--pf-badge-category-bg: var(--theme-color-background-tertiary, #f0f2f4);\n\t\t\t--pf-badge-category-text: var(--theme-color-text-secondary, #6b7b8d);\n\t\t\t--pf-badge-code-bg: var(--theme-color-background-hover, #eaf2f8);\n\t\t\t--pf-badge-code-text: var(--theme-color-status-info, #2980b9);\n\n\t\t\t/* Info Panel */\n\t\t\t--pf-port-item-bg: var(--theme-color-background-secondary, #f8f9fa);\n\n\t\t\t/* Toolbar */\n\t\t\t--pf-toolbar-bg: var(--theme-color-background-panel, #ffffff);\n\t\t\t--pf-toolbar-border: var(--theme-color-border-default, #e0e0e0);\n\n\t\t\t/* Palette Cards */\n\t\t\t--pf-card-border: var(--theme-color-border-default, #d5d8dc);\n\t\t\t--pf-card-hover-bg: var(--theme-color-background-hover, #eaf2f8);\n\t\t\t--pf-card-hover-shadow: 0 1px 3px rgba(52, 152, 219, 0.15);\n\n\t\t\t/* Canvas */\n\t\t\t--pf-canvas-bg: var(--theme-color-background-secondary, #fafafa);\n\t\t\t--pf-grid-stroke: var(--theme-color-border-light, #e8e8e8);\n\n\t\t\tposition: relative;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tmin-height: 400px;\n\t\t\toverflow: hidden;\n\t\t\tbackground-color: var(--pf-canvas-bg);\n\t\t\tborder: 1px solid var(--pf-toolbar-border);\n\t\t\tborder-radius: 4px;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\t\t.pict-flow-svg-container {\n\t\t\tflex: 1;\n\t\t\tmin-height: 0;\n\t\t\tposition: relative;\n\t\t}\n\t\t.pict-flow-svg {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tcursor: grab;\n\t\t\tuser-select: none;\n\t\t\t-webkit-user-select: none;\n\t\t}\n\t\t.pict-flow-svg.panning {\n\t\t\tcursor: grabbing;\n\t\t}\n\t\t.pict-flow-svg.connecting {\n\t\t\tcursor: crosshair;\n\t\t}\n\t\t.pict-flow-grid-pattern line {\n\t\t\tstroke: var(--pf-grid-stroke);\n\t\t\tstroke-width: 0.5;\n\t\t}\n\t\t'}},{key:"getNodeCSS",value:function(){return'\n\t\t.pict-flow-node {\n\t\t\tcursor: pointer;\n\t\t\tfilter: var(--pf-node-shadow);\n\t\t\ttransition: filter 0.2s;\n\t\t}\n\t\t.pict-flow-node:hover {\n\t\t\tfilter: var(--pf-node-shadow-hover);\n\t\t}\n\t\t.pict-flow-node:hover .pict-flow-node-body {\n\t\t\tstroke: var(--pf-node-body-stroke-hover);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node.selected {\n\t\t\tfilter: var(--pf-node-shadow-selected);\n\t\t}\n\t\t.pict-flow-node.selected .pict-flow-node-body {\n\t\t\tstroke: var(--pf-node-selected-stroke);\n\t\t\tstroke-width: 2;\n\t\t}\n\t\t.pict-flow-node.dragging {\n\t\t\topacity: 0.9;\n\t\t\tcursor: grabbing;\n\t\t\tfilter: var(--pf-node-shadow-dragging);\n\t\t}\n\t\t.pict-flow-node-body {\n\t\t\tfill: var(--pf-node-body-fill);\n\t\t\tstroke: var(--pf-node-body-stroke);\n\t\t\tstroke-width: var(--pf-node-body-stroke-width);\n\t\t\trx: var(--pf-node-body-radius);\n\t\t\try: var(--pf-node-body-radius);\n\t\t\ttransition: stroke 0.2s, stroke-width 0.2s;\n\t\t}\n\t\t.pict-flow-node-title-bar {\n\t\t\tfill: var(--pf-node-title-bar-color);\n\t\t\trx: var(--pf-node-body-radius);\n\t\t\try: var(--pf-node-body-radius);\n\t\t}\n\t\t.pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-node-title-bar-color);\n\t\t}\n\t\t.pict-flow-node-title {\n\t\t\tfill: var(--pf-node-title-fill);\n\t\t\tfont-size: var(--pf-node-title-size);\n\t\t\tfont-weight: var(--pf-node-title-weight);\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n\t\t\tletter-spacing: 0.2px;\n\t\t\tpointer-events: none;\n\t\t}\n\t\t.pict-flow-node-type-label {\n\t\t\tfill: var(--pf-node-type-label-fill);\n\t\t\tfont-size: 9.5px;\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n\t\t\ttext-transform: uppercase;\n\t\t\tletter-spacing: 0.3px;\n\t\t\tpointer-events: none;\n\t\t\topacity: 0;\n\t\t\ttransition: opacity 0.2s;\n\t\t}\n\t\t.pict-flow-node:hover .pict-flow-node-type-label {\n\t\t\topacity: 1;\n\t\t}\n\t\t.pict-flow-node-card-code {\n\t\t\topacity: 0;\n\t\t\ttransition: opacity 0.2s;\n\t\t}\n\t\t.pict-flow-node:hover .pict-flow-node-card-code {\n\t\t\topacity: 1;\n\t\t}\n\t\t/* Title-bar icon: invert SVG paths to white for dark title bars */\n\t\t.pict-flow-node-title-icon {\n\t\t\tfilter: brightness(0) invert(1);\n\t\t}\n\t\t'}},{key:"getBodyContentCSS",value:function(){return'\n\t\t.pict-flow-node-body-content {\n\t\t\tpointer-events: none;\n\t\t}\n\t\t.pict-flow-node-body-content-fo {\n\t\t\toverflow: hidden;\n\t\t}\n\t\t.pict-flow-node-body-content-html {\n\t\t\toverflow: hidden;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tbox-sizing: border-box;\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n\t\t\tfont-size: 11px;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t\tpointer-events: auto;\n\t\t}\n\t\t.pict-flow-node-body-content-canvas {\n\t\t\tdisplay: block;\n\t\t\tpointer-events: auto;\n\t\t}\n\t\t'}},{key:"getNodeVariantCSS",value:function(){return"\n\t\t.pict-flow-node-decision .pict-flow-node-body {\n\t\t\tfill: var(--pf-node-decision-fill);\n\t\t\tstroke: var(--pf-node-decision-stroke);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-start .pict-flow-node-body {\n\t\t\tfill: var(--pf-node-start-fill);\n\t\t\tstroke: var(--pf-node-start-stroke);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-end .pict-flow-node-body {\n\t\t\tfill: var(--pf-node-end-fill);\n\t\t\tstroke: var(--pf-node-end-stroke);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-halt .pict-flow-node-body {\n\t\t\tfill: var(--pf-node-halt-fill);\n\t\t\tstroke: var(--pf-node-halt-stroke);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t/* ── Color-role variants ────────────────────────────────\n\t\t Cards opt into a role via ColorRole on the node-type config or\n\t\t a per-node override. The renderer adds .pict-flow-node-color-{role}\n\t\t to the node group, which pulls fill/stroke/title-bar colors from\n\t\t the --pf-color-* tokens — those in turn track the host's\n\t\t --theme-color-* tokens so light/dark/palette swaps propagate.\n\n\t\t Roles deliberately don't override .pict-flow-node-body-content-*\n\t\t styling — the body content's visual identity is the consumer's\n\t\t responsibility. */\n\t\t.pict-flow-node-color-success .pict-flow-node-body {\n\t\t\tfill: var(--pf-color-success-soft);\n\t\t\tstroke: var(--pf-color-success);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-color-success .pict-flow-node-title-bar,\n\t\t.pict-flow-node-color-success .pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-color-success);\n\t\t}\n\t\t.pict-flow-node-color-success .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-color-success);\n\t\t}\n\n\t\t.pict-flow-node-color-warning .pict-flow-node-body {\n\t\t\tfill: var(--pf-color-warning-soft);\n\t\t\tstroke: var(--pf-color-warning);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-color-warning .pict-flow-node-title-bar,\n\t\t.pict-flow-node-color-warning .pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-color-warning);\n\t\t}\n\t\t.pict-flow-node-color-warning .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-color-warning);\n\t\t}\n\n\t\t.pict-flow-node-color-error .pict-flow-node-body {\n\t\t\tfill: var(--pf-color-error-soft);\n\t\t\tstroke: var(--pf-color-error);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-color-error .pict-flow-node-title-bar,\n\t\t.pict-flow-node-color-error .pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-color-error);\n\t\t}\n\t\t.pict-flow-node-color-error .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-color-error);\n\t\t}\n\n\t\t.pict-flow-node-color-info .pict-flow-node-body {\n\t\t\tfill: var(--pf-color-info-soft);\n\t\t\tstroke: var(--pf-color-info);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-color-info .pict-flow-node-title-bar,\n\t\t.pict-flow-node-color-info .pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-color-info);\n\t\t}\n\t\t.pict-flow-node-color-info .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-color-info);\n\t\t}\n\n\t\t.pict-flow-node-color-accent .pict-flow-node-body {\n\t\t\tfill: var(--pf-color-accent-soft);\n\t\t\tstroke: var(--pf-color-accent);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\t\t.pict-flow-node-color-accent .pict-flow-node-title-bar,\n\t\t.pict-flow-node-color-accent .pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-color-accent);\n\t\t}\n\t\t.pict-flow-node-color-accent .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-color-accent);\n\t\t}\n\n\t\t.pict-flow-node-color-neutral .pict-flow-node-body {\n\t\t\tfill: var(--pf-color-neutral-soft);\n\t\t\tstroke: var(--pf-color-neutral);\n\t\t\tstroke-width: 1;\n\t\t}\n\t\t.pict-flow-node-color-neutral .pict-flow-node-title-bar,\n\t\t.pict-flow-node-color-neutral .pict-flow-node-title-bar-bottom {\n\t\t\tfill: var(--pf-color-neutral);\n\t\t}\n\t\t.pict-flow-node-color-neutral .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-color-neutral);\n\t\t}\n\t\t"}},{key:"getPortCSS",value:function(){return'\n\t\t.pict-flow-port {\n\t\t\tcursor: crosshair;\n\t\t\ttransition: r 0.15s, filter 0.15s;\n\t\t\tfilter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.12));\n\t\t}\n\t\t.pict-flow-port.input {\n\t\t\tfill: var(--pf-port-input-fill);\n\t\t\tstroke: var(--pf-port-stroke);\n\t\t\tstroke-width: var(--pf-port-stroke-width);\n\t\t}\n\t\t.pict-flow-port.output {\n\t\t\tfill: var(--pf-port-output-fill);\n\t\t\tstroke: var(--pf-port-stroke);\n\t\t\tstroke-width: var(--pf-port-stroke-width);\n\t\t}\n\t\t.pict-flow-port:hover {\n\t\t\tr: 7;\n\t\t\tfilter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.20));\n\t\t}\n\t\t/* Port type color overrides */\n\t\t.pict-flow-port.port-type-event-in {\n\t\t\tfill: var(--pf-port-event-in-fill);\n\t\t}\n\t\t.pict-flow-port.port-type-event-out {\n\t\t\tfill: var(--pf-port-event-out-fill);\n\t\t}\n\t\t.pict-flow-port.port-type-setting {\n\t\t\tfill: var(--pf-port-setting-fill);\n\t\t}\n\t\t.pict-flow-port.port-type-value {\n\t\t\tfill: var(--pf-port-value-fill);\n\t\t}\n\t\t.pict-flow-port.port-type-error {\n\t\t\tfill: var(--pf-port-error-fill);\n\t\t}\n\t\t.pict-flow-port-label {\n\t\t\tfont-size: 8px;\n\t\t\tfont-weight: 600;\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n\t\t\tpointer-events: none;\n\t\t}\n\t\t/* Port label badge background */\n\t\t.pict-flow-port-label-bg {\n\t\t\tpointer-events: none;\n\t\t}\n\t\t/* Port labels on hover: hidden by default, revealed on node hover */\n\t\t.pict-flow-node-port-labels-hover .pict-flow-port-label,\n\t\t.pict-flow-node-port-labels-hover .pict-flow-port-label-bg {\n\t\t\topacity: 0;\n\t\t\ttransition: opacity 0.2s;\n\t\t}\n\t\t.pict-flow-node-port-labels-hover:hover .pict-flow-port-label,\n\t\t.pict-flow-node-port-labels-hover:hover .pict-flow-port-label-bg {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t/* Port-hint beziers — drawn from the badge to the actual dot\n\t\t when an edge theme has rerouted the connection. Hidden by\n\t\t default; PortRenderer / NodeView toggle data-active on hover. */\n\t\t.pict-flow-port-hint {\n\t\t\tfill: none;\n\t\t\tstroke: var(--pf-connection-stroke-hover, #3498db);\n\t\t\tstroke-width: 1.75;\n\t\t\tstroke-dasharray: 4 3;\n\t\t\tstroke-linecap: round;\n\t\t\topacity: 0;\n\t\t\tpointer-events: none;\n\t\t\ttransition: opacity 0.18s ease;\n\t\t}\n\t\t.pict-flow-port-hint[data-active="true"] {\n\t\t\topacity: 0.7;\n\t\t}\n\n\t\t/* ── Layout-algorithm popup: tightened layout + form styling ── */\n\t\t.pict-flow-popup-layout-algorithm-row {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 4px;\n\t\t\tpadding: 6px 10px 4px;\n\t\t}\n\t\t.pict-flow-popup-layout-algorithm-row > .pict-flow-popup-settings-label {\n\t\t\tfont-size: 10px;\n\t\t\tfont-weight: 700;\n\t\t\ttext-transform: uppercase;\n\t\t\tletter-spacing: 0.05em;\n\t\t\topacity: 0.7;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.pict-flow-popup-layout-algorithm-controls {\n\t\t\tdisplay: flex;\n\t\t\talign-items: stretch;\n\t\t\tgap: 4px;\n\t\t}\n\t\t.pict-flow-popup-layout-algorithm-select {\n\t\t\tflex: 1 1 auto;\n\t\t\tmin-width: 0;\n\t\t}\n\t\t.pict-flow-popup-collapse-toggle {\n\t\t\tflex: 0 0 auto;\n\t\t\twidth: 28px;\n\t\t\tpadding: 0;\n\t\t\tborder: 1px solid var(--pf-button-border, #ccc);\n\t\t\tborder-radius: 3px;\n\t\t\tbackground: var(--pf-toolbar-bg, #fff);\n\t\t\tcolor: var(--pf-text-secondary, #5a6470);\n\t\t\tcursor: pointer;\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttransition: background-color 0.15s, color 0.15s, border-color 0.15s;\n\t\t}\n\t\t.pict-flow-popup-collapse-toggle:hover {\n\t\t\tbackground-color: var(--pf-button-hover-bg, #eef);\n\t\t\tcolor: var(--pf-text-primary, #2c3e50);\n\t\t}\n\t\t/* "Open" state: pressed-in look so the user sees that the form\n\t\t below is being driven by this gear. */\n\t\t.pict-flow-popup-collapse-toggle[aria-expanded="true"] {\n\t\t\tbackground-color: var(--pf-button-active-bg, #d6e4f0);\n\t\t\tcolor: var(--pf-text-primary, #2c3e50);\n\t\t\tborder-color: var(--pf-button-hover-border, #3498db);\n\t\t}\n\t\t.pict-flow-popup-collapse-toggle svg {\n\t\t\tdisplay: block;\n\t\t}\n\t\t/* Subordinate description text — sits under a control (algorithm\n\t\t dropdown, edge-theme dropdown, etc.) and explains it. Indented\n\t\t from the section\'s left edge with a faint left rule so the\n\t\t visual hierarchy is unambiguous: SECTION LABEL > control >\n\t\t description. */\n\t\t.pict-flow-popup-control-description {\n\t\t\tfont-size: 11px;\n\t\t\tline-height: 1.4;\n\t\t\tcolor: var(--pf-text-secondary, #5a6470);\n\t\t\tpadding: 4px 12px 8px 28px;\n\t\t\tmargin-left: 14px;\n\t\t\tborder-left: 2px solid var(--pf-divider-light, #e6e6e6);\n\t\t}\n\n\t\t/* The form host. Acts as the collapsible container around the\n\t\t pict-section-form metacontroller\'s emitted markup. */\n\t\t.pict-flow-popup-layout-form-host {\n\t\t\tmargin: 0 10px 8px;\n\t\t\tpadding: 8px 10px;\n\t\t\tbackground: var(--pf-toolbar-bg, #fafafa);\n\t\t\tborder: 1px solid var(--pf-button-border, #e0e0e0);\n\t\t\tborder-radius: 6px;\n\t\t\toverflow: hidden;\n\t\t\tmax-height: 600px;\n\t\t\ttransition: max-height 0.22s ease, padding 0.22s ease,\n\t\t\t margin 0.22s ease, border-color 0.22s ease, opacity 0.18s ease;\n\t\t\topacity: 1;\n\t\t}\n\t\t.pict-flow-popup-layout-form-host[data-collapsed="true"] {\n\t\t\tmax-height: 0;\n\t\t\tpadding-top: 0;\n\t\t\tpadding-bottom: 0;\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-color: transparent;\n\t\t\topacity: 0;\n\t\t}\n\t\t.pict-flow-popup-layout-form-host > div { width: 100%; }\n\n\t\t/* Form contents — make the auto-rendered sections look professional.\n\t\t The section headings stay visible; the redundant per-section\n\t\t "Group: Defaults" h3 is suppressed. */\n\t\t.pict-flow-popup-layout-form .pict-form-view {\n\t\t\tdisplay: block;\n\t\t}\n\t\t.pict-flow-popup-layout-form .pict-form-section {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\t.pict-flow-popup-layout-form .pict-form-section h2 {\n\t\t\tfont-size: 10px;\n\t\t\tfont-weight: 700;\n\t\t\ttext-transform: uppercase;\n\t\t\tletter-spacing: 0.05em;\n\t\t\topacity: 0.6;\n\t\t\tmargin: 8px 0 4px;\n\t\t\tpadding: 0;\n\t\t\tborder-bottom: 1px solid var(--pf-button-border, #e6e6e6);\n\t\t\tpadding-bottom: 3px;\n\t\t}\n\t\t.pict-flow-popup-layout-form .pict-form-section:first-child h2,\n\t\t.pict-flow-popup-layout-form .pict-form-section h2:first-child {\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t/* Group headings ("Group: Defaults") are noise — every algorithm\n\t\t has exactly one group right now. Hide them. */\n\t\t.pict-flow-popup-layout-form .pict-form-section h3 {\n\t\t\tdisplay: none;\n\t\t}\n\t\t/* Each row of inputs lives in a flat <div> as alternating\n\t\t <span>label</span><input> pairs. Lay them out in a balanced grid. */\n\t\t.pict-flow-popup-layout-form .pict-form-section > div > div {\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 4px 14px;\n\t\t\tmargin: 4px 0;\n\t\t\talign-items: center;\n\t\t}\n\t\t.pict-flow-popup-layout-form .pict-form-section span {\n\t\t\tfont-size: 12px;\n\t\t\tcolor: var(--pf-text-primary, #2c3e50);\n\t\t\tline-height: 1.4;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.pict-flow-popup-layout-form input[type="number"],\n\t\t.pict-flow-popup-layout-form input[type="text"],\n\t\t.pict-flow-popup-layout-form select {\n\t\t\twidth: 88px;\n\t\t\tpadding: 2px 6px;\n\t\t\tborder: 1px solid var(--pf-button-border, #ccc);\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 1.3;\n\t\t\tbackground: #fff;\n\t\t\tcolor: var(--pf-text-primary, #2c3e50);\n\t\t\tmargin-left: -8px; /* tighten gap between label and its input */\n\t\t}\n\t\t.pict-flow-popup-layout-form select {\n\t\t\twidth: auto;\n\t\t\tmin-width: 110px;\n\t\t}\n\t\t.pict-flow-popup-layout-form input[type="number"]:focus,\n\t\t.pict-flow-popup-layout-form input[type="text"]:focus,\n\t\t.pict-flow-popup-layout-form select:focus {\n\t\t\toutline: none;\n\t\t\tborder-color: var(--pf-button-hover-border, #3498db);\n\t\t\tbox-shadow: 0 0 0 2px rgba(52, 152, 219, 0.15);\n\t\t}\n\t\t.pict-flow-popup-layout-form input[type="checkbox"] {\n\t\t\tmargin: 0 4px 0 0;\n\t\t}\n\t\t'}},{key:"getConnectionCSS",value:function(){return"\n\t\t/* Arrowhead markers use CSS-driven fills so they follow --pf-* tokens\n\t\t (which in turn map to host --theme-color-* tokens). The polygon's\n\t\t fill attribute is the fallback when CSS does not reach the marker. */\n\t\t.pict-flow-svg .pict-flow-arrowhead-default {\n\t\t\tfill: var(--pf-connection-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-selected {\n\t\t\tfill: var(--pf-connection-selected-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-tether {\n\t\t\tfill: var(--pf-connection-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-event-in {\n\t\t\tfill: var(--pf-connection-event-in-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-event-out {\n\t\t\tfill: var(--pf-connection-event-out-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-setting {\n\t\t\tfill: var(--pf-connection-setting-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-value {\n\t\t\tfill: var(--pf-connection-value-stroke);\n\t\t}\n\t\t.pict-flow-svg .pict-flow-arrowhead-error {\n\t\t\tfill: var(--pf-connection-error-stroke);\n\t\t}\n\n\t\t.pict-flow-connection {\n\t\t\tfill: none;\n\t\t\tstroke: var(--pf-connection-stroke);\n\t\t\tstroke-width: 2;\n\t\t\tcursor: pointer;\n\t\t\ttransition: stroke 0.15s;\n\t\t}\n\t\t.pict-flow-connection:hover {\n\t\t\tstroke: var(--pf-connection-stroke-hover);\n\t\t\tstroke-width: 3;\n\t\t}\n\t\t.pict-flow-connection.selected {\n\t\t\tstroke: var(--pf-connection-selected-stroke);\n\t\t\tstroke-width: 3;\n\t\t}\n\t\t/* Connection type color overrides (based on source port type) */\n\t\t.pict-flow-connection.conn-type-event-in {\n\t\t\tstroke: var(--pf-connection-event-in-stroke);\n\t\t}\n\t\t.pict-flow-connection.conn-type-event-out {\n\t\t\tstroke: var(--pf-connection-event-out-stroke);\n\t\t}\n\t\t.pict-flow-connection.conn-type-setting {\n\t\t\tstroke: var(--pf-connection-setting-stroke);\n\t\t}\n\t\t.pict-flow-connection.conn-type-value {\n\t\t\tstroke: var(--pf-connection-value-stroke);\n\t\t}\n\t\t.pict-flow-connection.conn-type-error {\n\t\t\tstroke: var(--pf-connection-error-stroke);\n\t\t}\n\t\t.pict-flow-connection-hitarea {\n\t\t\tfill: none;\n\t\t\tstroke: transparent;\n\t\t\tstroke-width: 12;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.pict-flow-drag-connection {\n\t\t\tfill: none;\n\t\t\tstroke: var(--pf-node-selected-stroke);\n\t\t\tstroke-width: 2;\n\t\t\tstroke-dasharray: 6 3;\n\t\t\tpointer-events: none;\n\t\t}\n\t\t"}},{key:"getHandleCSS",value:function(){return"\n\t\t.pict-flow-connection-handle {\n\t\t\tfill: var(--pf-panel-bg);\n\t\t\tstroke: var(--pf-node-selected-stroke);\n\t\t\tstroke-width: 2;\n\t\t\tcursor: grab;\n\t\t\ttransition: r 0.15s;\n\t\t\tfilter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));\n\t\t}\n\t\t.pict-flow-connection-handle:hover {\n\t\t\tr: 8;\n\t\t\tstroke-width: 2.5;\n\t\t}\n\t\t.pict-flow-connection-handle-midpoint {\n\t\t\tfill: var(--pf-panel-bg);\n\t\t\tstroke: var(--pf-port-setting-fill);\n\t\t\tstroke-width: 2;\n\t\t\tcursor: grab;\n\t\t\ttransition: r 0.15s;\n\t\t\tfilter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));\n\t\t}\n\t\t.pict-flow-connection-handle-midpoint:hover {\n\t\t\tr: 8;\n\t\t\tstroke-width: 2.5;\n\t\t}\n\t\t"}},{key:"getTetherCSS",value:function(){return"\n\t\t.pict-flow-tether-line {\n\t\t\tfill: none;\n\t\t\tstroke: var(--pf-connection-stroke);\n\t\t\tstroke-width: 1.5;\n\t\t\tstroke-dasharray: 6 4;\n\t\t\tpointer-events: visibleStroke;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.pict-flow-tether-line.selected {\n\t\t\tstroke: var(--pf-node-selected-stroke);\n\t\t\tstroke-width: 2;\n\t\t}\n\t\t.pict-flow-tether-hitarea {\n\t\t\tfill: none;\n\t\t\tstroke: transparent;\n\t\t\tstroke-width: 10;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.pict-flow-tether-handle {\n\t\t\tfill: var(--pf-panel-bg);\n\t\t\tstroke: var(--pf-node-selected-stroke);\n\t\t\tstroke-width: 2;\n\t\t\tcursor: grab;\n\t\t\ttransition: r 0.15s;\n\t\t\tfilter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));\n\t\t}\n\t\t.pict-flow-tether-handle:hover {\n\t\t\tr: 8;\n\t\t\tstroke-width: 2.5;\n\t\t}\n\t\t.pict-flow-tether-handle-midpoint {\n\t\t\tfill: var(--pf-panel-bg);\n\t\t\tstroke: var(--pf-port-setting-fill);\n\t\t\tstroke-width: 2;\n\t\t\tcursor: grab;\n\t\t\ttransition: r 0.15s;\n\t\t\tfilter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));\n\t\t}\n\t\t.pict-flow-tether-handle-midpoint:hover {\n\t\t\tr: 8;\n\t\t\tstroke-width: 2.5;\n\t\t}\n\t\t"}},{key:"getPanelCSS",value:function(){return'\n\t\t.pict-flow-node-panel-indicator {\n\t\t\tfill: var(--pf-node-selected-stroke);\n\t\t\tstroke: none;\n\t\t\topacity: 0.6;\n\t\t\tcursor: pointer;\n\t\t\ttransition: opacity 0.15s;\n\t\t}\n\t\t.pict-flow-node-panel-indicator:hover {\n\t\t\topacity: 1.0;\n\t\t}\n\t\t.pict-flow-panel-foreign-object {\n\t\t\toverflow: visible;\n\t\t}\n\t\t.pict-flow-panel {\n\t\t\tbackground: var(--pf-panel-bg);\n\t\t\tborder: 1px solid var(--pf-panel-border);\n\t\t\tborder-radius: var(--pf-panel-radius);\n\t\t\tbox-shadow: var(--pf-panel-shadow);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n\t\t\tfont-size: 13px;\n\t\t\toverflow: hidden;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-flow-panel-titlebar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\tpadding: 8px 12px;\n\t\t\tbackground: var(--pf-panel-titlebar-bg);\n\t\t\tborder-bottom: 1px solid var(--pf-panel-titlebar-border);\n\t\t\tcursor: grab;\n\t\t\tuser-select: none;\n\t\t\t-webkit-user-select: none;\n\t\t\tflex-shrink: 0;\n\t\t}\n\t\t.pict-flow-panel-titlebar.dragging {\n\t\t\tcursor: grabbing;\n\t\t}\n\t\t.pict-flow-panel-title-text {\n\t\t\tfont-weight: 600;\n\t\t\tfont-size: 12px;\n\t\t\tcolor: var(--pf-panel-title-color);\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tletter-spacing: 0.1px;\n\t\t}\n\t\t.pict-flow-panel-close-btn {\n\t\t\tcursor: pointer;\n\t\t\tcolor: var(--pf-button-close-color);\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1;\n\t\t\tpadding: 4px;\n\t\t\tborder: none;\n\t\t\tbackground: none;\n\t\t\tborder-radius: 4px;\n\t\t\ttransition: background-color 0.15s, color 0.15s;\n\t\t}\n\t\t.pict-flow-panel-close-btn:hover {\n\t\t\tcolor: var(--pf-button-danger-text);\n\t\t\tbackground-color: rgba(231, 76, 60, 0.08);\n\t\t}\n\t\t.pict-flow-panel-content {\n\t\t\tflex: 1;\n\t\t\toverflow-y: auto;\n\t\t\tmin-height: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\t.pict-flow-panel-tab-pane {\n\t\t\tpadding: 10px 12px;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t'}},{key:"getInfoPanelCSS",value:function(){return'\n\t\t.pict-flow-info-panel {\n\t\t\tpadding: 2px 0;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t}\n\t\t.pict-flow-info-panel-header {\n\t\t\tfont-size: 13px;\n\t\t\tfont-weight: 600;\n\t\t\tmargin-bottom: 6px;\n\t\t\tcolor: var(--pf-text-heading);\n\t\t}\n\t\t.pict-flow-info-panel-header.with-icon {\n\t\t\tfont-size: 14px;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 6px;\n\t\t}\n\t\t.pict-flow-info-panel-description {\n\t\t\tfont-size: 11px;\n\t\t\tcolor: var(--pf-text-secondary);\n\t\t\tmargin-bottom: 10px;\n\t\t\tline-height: 1.45;\n\t\t}\n\t\t.pict-flow-info-panel-badges {\n\t\t\tmargin-bottom: 10px;\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 4px;\n\t\t}\n\t\t.pict-flow-info-panel-badge {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding: 2px 8px;\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 10px;\n\t\t}\n\t\t.pict-flow-info-panel-badge.category {\n\t\t\tbackground: var(--pf-badge-category-bg);\n\t\t\tcolor: var(--pf-badge-category-text);\n\t\t}\n\t\t.pict-flow-info-panel-badge.code {\n\t\t\tbackground: var(--pf-badge-code-bg);\n\t\t\tcolor: var(--pf-badge-code-text);\n\t\t\tfont-family: "SF Mono", "Fira Code", monospace;\n\t\t}\n\t\t.pict-flow-info-panel-section {\n\t\t\tmargin-bottom: 8px;\n\t\t}\n\t\t.pict-flow-info-panel-section-title {\n\t\t\tfont-size: 10px;\n\t\t\tfont-weight: 600;\n\t\t\ttext-transform: uppercase;\n\t\t\tletter-spacing: 0.5px;\n\t\t\tcolor: var(--pf-text-tertiary);\n\t\t\tmargin-bottom: 4px;\n\t\t\tpadding-bottom: 2px;\n\t\t\tborder-bottom: 1px solid var(--pf-divider-light);\n\t\t}\n\t\t.pict-flow-info-panel-port {\n\t\t\tpadding: 3px 8px;\n\t\t\tbackground: var(--pf-port-item-bg);\n\t\t\tmargin-bottom: 3px;\n\t\t\tfont-size: 11px;\n\t\t\tborder-radius: 3px;\n\t\t}\n\t\t.pict-flow-info-panel-port.input {\n\t\t\tborder-left: 3px solid var(--pf-port-input-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port.output {\n\t\t\tborder-left: 3px solid var(--pf-port-output-fill);\n\t\t}\n\t\t/* Info panel port type color overrides */\n\t\t.pict-flow-info-panel-port.port-type-event-in {\n\t\t\tborder-left-color: var(--pf-port-event-in-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port.port-type-event-out {\n\t\t\tborder-left-color: var(--pf-port-event-out-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port.port-type-setting {\n\t\t\tborder-left-color: var(--pf-port-setting-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port.port-type-value {\n\t\t\tborder-left-color: var(--pf-port-value-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port.port-type-error {\n\t\t\tborder-left-color: var(--pf-port-error-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port-constraint {\n\t\t\tcolor: var(--pf-text-tertiary);\n\t\t\tfont-size: 10px;\n\t\t}\n\t\t/* Port summary section appended below form panels */\n\t\t.pict-flow-port-summary {\n\t\t\tmargin-top: 12px;\n\t\t\tpadding-top: 8px;\n\t\t\tborder-top: 1px solid var(--pf-divider-medium);\n\t\t}\n\t\t.pict-flow-info-panel-port.event {\n\t\t\tborder-left: 3px solid var(--pf-port-event-in-fill);\n\t\t}\n\t\t.pict-flow-info-panel-port.value {\n\t\t\tborder-left: 3px solid var(--pf-port-value-fill);\n\t\t}\n\t\t'}},{key:"getNodePropsEditorCSS",value:function(){return'\n\t\t.pict-flow-node-props-fields {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 6px;\n\t\t}\n\t\t.pict-flow-node-props-field {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 8px;\n\t\t}\n\t\t.pict-flow-node-props-label {\n\t\t\tfont-size: 11px;\n\t\t\tcolor: var(--pf-text-secondary);\n\t\t\tmin-width: 72px;\n\t\t\tflex-shrink: 0;\n\t\t}\n\t\t.pict-flow-node-props-input {\n\t\t\tflex: 1;\n\t\t\tpadding: 3px 6px;\n\t\t\tborder: 1px solid var(--pf-input-border);\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 11px;\n\t\t\toutline: none;\n\t\t\tbox-sizing: border-box;\n\t\t\tmin-width: 0;\n\t\t}\n\t\t.pict-flow-node-props-input:focus {\n\t\t\tborder-color: var(--pf-input-border-focus);\n\t\t}\n\t\t.pict-flow-node-props-color {\n\t\t\twidth: 28px;\n\t\t\theight: 24px;\n\t\t\tpadding: 1px;\n\t\t\tcursor: pointer;\n\t\t\tflex: 0 0 28px;\n\t\t}\n\n\t\t/* Suppress native number-input spinner buttons on every input\n\t\t inside a properties panel. Panels live inside <foreignObject>;\n\t\t browsers (Chromium / WebKit) render the up/down spinner chrome\n\t\t as native overlays that don\'t always respect SVG transforms or\n\t\t the parent tab pane\'s display:none — leaving stale spinner\n\t\t artifacts hanging around when the user switches tabs or pans\n\t\t the diagram. The user can still type numbers; they just don\'t\n\t\t get clickable spinners. (If we ever want spinners back, build\n\t\t them as real DOM elements next to the input, not native chrome.) */\n\t\t.pict-flow-panel input[type="number"] {\n\t\t\t-moz-appearance: textfield;\n\t\t\tappearance: textfield;\n\t\t}\n\t\t.pict-flow-panel input[type="number"]::-webkit-outer-spin-button,\n\t\t.pict-flow-panel input[type="number"]::-webkit-inner-spin-button {\n\t\t\t-webkit-appearance: none;\n\t\t\tappearance: none;\n\t\t\tmargin: 0;\n\t\t}\n\t\t'}},{key:"getPanelTabsCSS",value:function(){return"\n\t\t.pict-flow-panel-resize-handle {\n\t\t\theight: 6px;\n\t\t\tcursor: ns-resize;\n\t\t\tbackground: transparent;\n\t\t\tflex-shrink: 0;\n\t\t\ttransition: background-color 0.15s;\n\t\t\tborder-top: 1px solid var(--pf-panel-titlebar-border);\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t}\n\t\t.pict-flow-panel-resize-handle::after {\n\t\t\tcontent: '';\n\t\t\twidth: 24px;\n\t\t\theight: 2px;\n\t\t\tborder-radius: 1px;\n\t\t\tbackground: var(--pf-resize-handle-hover);\n\t\t\ttransition: background-color 0.15s, width 0.15s;\n\t\t}\n\t\t.pict-flow-panel-resize-handle:hover::after {\n\t\t\tbackground: var(--pf-button-hover-border);\n\t\t\twidth: 32px;\n\t\t}\n\t\t.pict-flow-panel-tabbar {\n\t\t\tdisplay: flex;\n\t\t\tflex-shrink: 0;\n\t\t\tborder-top: 1px solid var(--pf-panel-titlebar-border);\n\t\t\tbackground: var(--pf-panel-titlebar-bg);\n\t\t}\n\t\t.pict-flow-panel-tab {\n\t\t\tflex: 1;\n\t\t\tpadding: 5px 8px;\n\t\t\tfont-size: 11px;\n\t\t\ttext-align: center;\n\t\t\tcursor: pointer;\n\t\t\tcolor: var(--pf-tab-text);\n\t\t\tborder-top: 2px solid transparent;\n\t\t\ttransition: color 0.15s, border-top-color 0.15s;\n\t\t\tuser-select: none;\n\t\t\t-webkit-user-select: none;\n\t\t}\n\t\t.pict-flow-panel-tab:hover {\n\t\t\tcolor: var(--pf-tab-text-hover);\n\t\t}\n\t\t.pict-flow-panel-tab.active {\n\t\t\tborder-top-color: var(--pf-node-selected-stroke);\n\t\t\tcolor: var(--pf-panel-title-color);\n\t\t\tfont-weight: 600;\n\t\t}\n\t\t.pict-flow-panel-help-content {\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t}\n\t\t.pict-flow-panel-help-content p {\n\t\t\tmargin: 0 0 8px 0;\n\t\t}\n\t\t"}},{key:"getFullscreenCSS",value:function(){return"\n\t\t.pict-flow-fullscreen {\n\t\t\tposition: fixed;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 100vw;\n\t\t\theight: 100vh;\n\t\t\tz-index: 9999;\n\t\t\tborder-radius: 0;\n\t\t\tborder: none;\n\t\t\tmin-height: 100vh;\n\t\t}\n\t\t.pict-flow-fullscreen .pict-flow-svg {\n\t\t\tmin-height: calc(100vh - 50px);\n\t\t}\n\t\t"}},{key:"getToolbarCSS",value:function(){return'\n\t\t.pict-flow-toolbar {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.5em;\n\t\t\tpadding: 0.5em 0.75em;\n\t\t\tbackground-color: var(--pf-toolbar-bg);\n\t\t\tborder-bottom: 1px solid var(--pf-toolbar-border);\n\t\t\tflex-wrap: wrap;\n\t\t}\n\t\t.pict-flow-toolbar-group {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.25em;\n\t\t\tpadding-right: 0.75em;\n\t\t\tborder-right: 1px solid var(--pf-toolbar-border);\n\t\t}\n\t\t.pict-flow-toolbar-group:last-child {\n\t\t\tborder-right: none;\n\t\t\tpadding-right: 0;\n\t\t}\n\t\t.pict-flow-toolbar-btn {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tgap: 0.35em;\n\t\t\tpadding: 0.35em 0.65em;\n\t\t\tborder: 1px solid var(--pf-button-border);\n\t\t\tborder-radius: 4px;\n\t\t\tbackground-color: var(--pf-toolbar-bg);\n\t\t\tcolor: var(--pf-text-primary);\n\t\t\tfont-size: 0.85em;\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.15s, border-color 0.15s;\n\t\t\tuser-select: none;\n\t\t\t-webkit-user-select: none;\n\t\t}\n\t\t.pict-flow-toolbar-btn:focus {\n\t\t\toutline: none;\n\t\t}\n\t\t.pict-flow-toolbar-btn:hover {\n\t\t\tbackground-color: var(--pf-button-hover-bg);\n\t\t\tborder-color: var(--pf-button-hover-border);\n\t\t}\n\t\t.pict-flow-toolbar-btn:active {\n\t\t\tbackground-color: var(--pf-button-active-bg);\n\t\t}\n\t\t.pict-flow-toolbar-btn-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-toolbar-btn-icon svg {\n\t\t\tdisplay: block;\n\t\t}\n\t\t.pict-flow-toolbar-btn-text {\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\t.pict-flow-toolbar-btn-chevron {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tmargin-left: 0.15em;\n\t\t}\n\t\t/* Split button — visible as one connected unit; the two halves\n\t\t route to different actions. Used for "Auto" so clicking the\n\t\t icon/text applies the current layout while the chevron half\n\t\t opens the algorithm popup with a generous hit area. */\n\t\t.pict-flow-toolbar-btn-split {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: stretch;\n\t\t}\n\t\t.pict-flow-toolbar-btn-split-main {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t\tborder-right: 1px solid var(--pf-button-border);\n\t\t\tmargin-right: -1px; /* collapse the seam between the two buttons */\n\t\t}\n\t\t.pict-flow-toolbar-btn-split-chevron {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tpadding-left: 0.55em;\n\t\t\tpadding-right: 0.55em;\n\t\t}\n\t\t.pict-flow-toolbar-btn-split-chevron .pict-flow-toolbar-btn-chevron {\n\t\t\tmargin: 0;\n\t\t}\n\t\t.pict-flow-toolbar-right {\n\t\t\tmargin-left: auto;\n\t\t\tborder-right: none;\n\t\t\tpadding-right: 0;\n\t\t}\n\t\t.pict-flow-toolbar-label {\n\t\t\tfont-size: 0.8em;\n\t\t\tcolor: var(--pf-text-secondary);\n\t\t\tmargin-right: 0.25em;\n\t\t}\n\t\t.pict-flow-toolbar-select {\n\t\t\tpadding: 0.3em 0.5em;\n\t\t\tborder: 1px solid var(--pf-button-border);\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 0.85em;\n\t\t\tbackground-color: var(--pf-toolbar-bg);\n\t\t\tcolor: var(--pf-text-primary);\n\t\t}\n\t\t'}},{key:"getPaletteCSS",value:function(){return"\n\t\t.pict-flow-palette-category {\n\t\t\tmargin-bottom: 0.5em;\n\t\t}\n\t\t.pict-flow-palette-category:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t\t.pict-flow-palette-category-label {\n\t\t\tfont-size: 0.7em;\n\t\t\tfont-weight: 700;\n\t\t\ttext-transform: uppercase;\n\t\t\tletter-spacing: 0.05em;\n\t\t\tcolor: var(--pf-text-placeholder);\n\t\t\tmargin-bottom: 0.35em;\n\t\t\tpadding-bottom: 0.2em;\n\t\t\tborder-bottom: 1px solid var(--pf-divider-light);\n\t\t}\n\t\t.pict-flow-palette-cards {\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 0.35em;\n\t\t}\n\t\t.pict-flow-palette-card {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.35em;\n\t\t\tpadding: 0.35em 0.6em;\n\t\t\tborder: 1px solid var(--pf-card-border);\n\t\t\tborder-radius: 4px;\n\t\t\tbackground-color: var(--pf-panel-bg);\n\t\t\tfont-size: 0.8em;\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;\n\t\t\tuser-select: none;\n\t\t\t-webkit-user-select: none;\n\t\t\tposition: relative;\n\t\t}\n\t\t.pict-flow-palette-card:hover {\n\t\t\tbackground-color: var(--pf-card-hover-bg);\n\t\t\tborder-color: var(--pf-node-selected-stroke);\n\t\t\tbox-shadow: var(--pf-card-hover-shadow);\n\t\t}\n\t\t.pict-flow-palette-card.disabled {\n\t\t\topacity: 0.45;\n\t\t\tpointer-events: none;\n\t\t\tcursor: default;\n\t\t}\n\t\t.pict-flow-palette-card-icon {\n\t\t\tfont-size: 1.1em;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-palette-card-swatch {\n\t\t\twidth: 10px;\n\t\t\theight: 10px;\n\t\t\tborder-radius: 2px;\n\t\t\tflex-shrink: 0;\n\t\t}\n\t\t.pict-flow-palette-card-title {\n\t\t\tfont-weight: 500;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\t.pict-flow-palette-card-code {\n\t\t\tfont-size: 0.8em;\n\t\t\tcolor: var(--pf-text-placeholder);\n\t\t\tfont-family: monospace;\n\t\t}\n\t\t.pict-flow-toolbar-select.layout-select {\n\t\t\tmin-width: 120px;\n\t\t\tmax-width: 200px;\n\t\t}\n\t\t"}},{key:"getPopupCSS",value:function(){return'\n\t\t.pict-flow-toolbar-popup-anchor {\n\t\t\tposition: relative;\n\t\t}\n\t\t.pict-flow-toolbar-popup {\n\t\t\tposition: absolute;\n\t\t\tz-index: 1000;\n\t\t\tbackground: var(--pf-panel-bg);\n\t\t\tborder: 1px solid var(--pf-card-border);\n\t\t\tborder-radius: 6px;\n\t\t\tbox-shadow: 0 4px 16px rgba(0,0,0,0.12);\n\t\t\tmin-width: 240px;\n\t\t\tmax-height: 80vh;\n\t\t\toverflow-y: auto;\n\t\t\tpadding: 0.35em 0;\n\t\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;\n\t\t\tfont-size: 13px;\n\t\t}\n\t\t.pict-flow-popup-search-wrapper {\n\t\t\tposition: relative;\n\t\t\tpadding: 0.4em 0.5em;\n\t\t\tborder-bottom: 1px solid var(--pf-divider-light);\n\t\t}\n\t\t.pict-flow-popup-search-icon {\n\t\t\tposition: absolute;\n\t\t\tleft: 0.85em;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t\tpointer-events: none;\n\t\t\tline-height: 1;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\t\t.pict-flow-popup-search {\n\t\t\twidth: 100%;\n\t\t\tpadding: 0.4em 0.5em 0.4em 2em;\n\t\t\tborder: 1px solid var(--pf-input-border);\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 0.9em;\n\t\t\toutline: none;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-flow-popup-search:focus {\n\t\t\tborder-color: var(--pf-input-border-focus);\n\t\t}\n\t\t.pict-flow-popup-list-item {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.5em;\n\t\t\tpadding: 0.45em 0.75em;\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.1s;\n\t\t}\n\t\t.pict-flow-popup-list-item:hover {\n\t\t\tbackground-color: var(--pf-card-hover-bg);\n\t\t}\n\t\t.pict-flow-popup-list-item-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tflex-shrink: 0;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-popup-list-item-label {\n\t\t\tflex: 1;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t\tfont-weight: 500;\n\t\t}\n\t\t.pict-flow-popup-list-item-code {\n\t\t\tfont-size: 0.8em;\n\t\t\tcolor: var(--pf-text-placeholder);\n\t\t\tfont-family: monospace;\n\t\t\tbackground: var(--pf-badge-category-bg);\n\t\t\tpadding: 0.1em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t}\n\t\t.pict-flow-popup-divider {\n\t\t\theight: 1px;\n\t\t\tbackground: var(--pf-divider-light);\n\t\t\tmargin: 0.25em 0;\n\t\t}\n\t\t.pict-flow-popup-list-empty {\n\t\t\ttext-align: center;\n\t\t\tcolor: var(--pf-text-placeholder);\n\t\t\tpadding: 1.5em 0.75em;\n\t\t\tfont-size: 0.9em;\n\t\t}\n\t\t.pict-flow-popup-layout-save {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.5em;\n\t\t\tpadding: 0.45em 0.75em;\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.1s;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t\tfont-weight: 500;\n\t\t}\n\t\t.pict-flow-popup-layout-save:hover {\n\t\t\tbackground-color: var(--pf-card-hover-bg);\n\t\t}\n\t\t.pict-flow-popup-layout-save-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tflex-shrink: 0;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-popup-layout-save-input-row {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.35em;\n\t\t\tpadding: 0.35em 0.5em;\n\t\t}\n\t\t.pict-flow-popup-layout-save-input {\n\t\t\tflex: 1;\n\t\t\tpadding: 0.35em 0.5em;\n\t\t\tborder: 1px solid var(--pf-input-border);\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 0.9em;\n\t\t\toutline: none;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-flow-popup-layout-save-input:focus {\n\t\t\tborder-color: var(--pf-input-border-focus);\n\t\t}\n\t\t.pict-flow-popup-layout-save-confirm {\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\tborder: 1px solid var(--pf-input-border);\n\t\t\tborder-radius: 4px;\n\t\t\tbackground: var(--pf-panel-bg);\n\t\t\tcursor: pointer;\n\t\t\tflex-shrink: 0;\n\t\t\ttransition: background-color 0.15s, border-color 0.15s;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-popup-layout-save-confirm:hover {\n\t\t\tbackground-color: var(--pf-card-hover-bg);\n\t\t\tborder-color: var(--pf-input-border-focus);\n\t\t}\n\t\t.pict-flow-popup-layout-row {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tpadding: 0.45em 0.75em;\n\t\t\tcursor: pointer;\n\t\t\ttransition: background-color 0.1s;\n\t\t}\n\t\t.pict-flow-popup-layout-row:hover {\n\t\t\tbackground-color: var(--pf-card-hover-bg);\n\t\t}\n\t\t.pict-flow-popup-layout-name {\n\t\t\tflex: 1;\n\t\t\tcolor: var(--pf-text-primary);\n\t\t}\n\t\t.pict-flow-popup-layout-delete {\n\t\t\tdisplay: none;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tborder: none;\n\t\t\tbackground: none;\n\t\t\tcolor: var(--pf-button-danger-text);\n\t\t\tcursor: pointer;\n\t\t\tpadding: 2px 4px;\n\t\t\tborder-radius: 3px;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-popup-layout-row:hover .pict-flow-popup-layout-delete {\n\t\t\tdisplay: inline-flex;\n\t\t}\n\t\t.pict-flow-popup-layout-delete:hover {\n\t\t\tbackground-color: var(--pf-button-danger-hover-bg);\n\t\t}\n\t\t.pict-flow-popup-settings-section {\n\t\t\tpadding: 0.5em 0.75em;\n\t\t}\n\t\t.pict-flow-popup-settings-label {\n\t\t\tdisplay: block;\n\t\t\tfont-size: 0.8em;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: var(--pf-text-secondary);\n\t\t\ttext-transform: uppercase;\n\t\t\tletter-spacing: 0.05em;\n\t\t\tmargin-bottom: 0.35em;\n\t\t}\n\t\t.pict-flow-popup-settings-select {\n\t\t\twidth: 100%;\n\t\t\tpadding: 0.4em 0.5em;\n\t\t\tborder: 1px solid var(--pf-input-border);\n\t\t\tborder-radius: 4px;\n\t\t\tfont-size: 0.9em;\n\t\t\tbackground: var(--pf-panel-bg);\n\t\t\tcolor: var(--pf-text-primary);\n\t\t\tcursor: pointer;\n\t\t\toutline: none;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-flow-popup-settings-select:focus {\n\t\t\tborder-color: var(--pf-input-border-focus);\n\t\t}\n\t\t.pict-flow-popup-settings-slider-row {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.5em;\n\t\t}\n\t\t.pict-flow-popup-settings-slider {\n\t\t\tflex: 1;\n\t\t\t-webkit-appearance: none;\n\t\t\tappearance: none;\n\t\t\theight: 4px;\n\t\t\tbackground: var(--pf-input-border);\n\t\t\tborder-radius: 2px;\n\t\t\toutline: none;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.pict-flow-popup-settings-slider::-webkit-slider-thumb {\n\t\t\t-webkit-appearance: none;\n\t\t\tappearance: none;\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t\tbackground: var(--pf-node-selected-stroke);\n\t\t\tborder-radius: 50%;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.pict-flow-popup-settings-slider::-moz-range-thumb {\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t\tbackground: var(--pf-node-selected-stroke);\n\t\t\tborder-radius: 50%;\n\t\t\tcursor: pointer;\n\t\t\tborder: none;\n\t\t}\n\t\t.pict-flow-popup-settings-slider-value {\n\t\t\tfont-size: 0.85em;\n\t\t\tcolor: var(--pf-text-secondary);\n\t\t\tmin-width: 2.5em;\n\t\t\ttext-align: right;\n\t\t}\n\t\t'}},{key:"getCollapsedToolbarCSS",value:function(){return"\n\t\t.pict-flow-toolbar-collapsed {\n\t\t\tposition: absolute;\n\t\t\ttop: 8px;\n\t\t\tright: 8px;\n\t\t\tz-index: 100;\n\t\t\tdisplay: none;\n\t\t}\n\t\t.pict-flow-toolbar-collapsed.visible {\n\t\t\tdisplay: block;\n\t\t}\n\t\t.pict-flow-toolbar-expand-btn {\n\t\t\twidth: 36px;\n\t\t\theight: 36px;\n\t\t\tborder-radius: 6px;\n\t\t\tborder: 1px solid var(--pf-card-border);\n\t\t\tbackground-color: var(--pf-toolbar-bg);\n\t\t\tbox-shadow: 0 2px 6px rgba(0,0,0,0.1);\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttransition: background-color 0.15s, box-shadow 0.15s;\n\t\t}\n\t\t.pict-flow-toolbar-expand-btn:hover {\n\t\t\tbackground-color: var(--pf-button-hover-bg);\n\t\t\tbox-shadow: 0 2px 8px rgba(0,0,0,0.15);\n\t\t}\n\t\t"}},{key:"getFloatingToolbarCSS",value:function(){return"\n\t\t.pict-flow-floating-toolbar {\n\t\t\tposition: absolute;\n\t\t\tz-index: 100;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 2px;\n\t\t\tpadding: 4px;\n\t\t\tborder-radius: 8px;\n\t\t\tborder: 1px solid var(--pf-card-border);\n\t\t\tbackground-color: var(--pf-toolbar-bg);\n\t\t\tbox-shadow: 0 4px 16px rgba(0,0,0,0.12);\n\t\t\tpointer-events: auto;\n\t\t}\n\t\t.pict-flow-floating-grip {\n\t\t\tcursor: grab;\n\t\t\tpadding: 4px;\n\t\t\tborder-radius: 4px;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttransition: background-color 0.15s;\n\t\t}\n\t\t.pict-flow-floating-grip:hover {\n\t\t\tbackground-color: var(--pf-button-hover-bg);\n\t\t}\n\t\t.pict-flow-floating-grip:active {\n\t\t\tcursor: grabbing;\n\t\t}\n\t\t.pict-flow-floating-btn {\n\t\t\twidth: 32px;\n\t\t\theight: 32px;\n\t\t\tborder: none;\n\t\t\tborder-radius: 4px;\n\t\t\tbackground-color: transparent;\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\ttransition: background-color 0.15s;\n\t\t}\n\t\t.pict-flow-floating-btn:focus {\n\t\t\toutline: none;\n\t\t}\n\t\t.pict-flow-floating-btn:hover {\n\t\t\tbackground-color: var(--pf-button-hover-bg);\n\t\t}\n\t\t.pict-flow-floating-separator {\n\t\t\theight: 1px;\n\t\t\tbackground-color: var(--pf-divider-light);\n\t\t\tmargin: 2px 4px;\n\t\t}\n\t\t/* Collapsed floating toolbar — grip-only draggable square */\n\t\t.pict-flow-floating-toolbar.collapsed .pict-flow-floating-btn,\n\t\t.pict-flow-floating-toolbar.collapsed .pict-flow-floating-separator {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.pict-flow-floating-toolbar.collapsed {\n\t\t\tpadding: 0;\n\t\t\tborder-radius: 6px;\n\t\t}\n\t\t.pict-flow-floating-toolbar.collapsed .pict-flow-floating-grip {\n\t\t\twidth: 32px;\n\t\t\theight: 32px;\n\t\t\tpadding: 0;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t}\n\t\t.pict-flow-floating-toolbar.collapsed .pict-flow-floating-grip span {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tline-height: 1;\n\t\t}\n\t\t"}},{key:"getIconCSS",value:function(){return"\n\t\t.pict-flow-icon-svg {\n\t\t\tpointer-events: none;\n\t\t}\n\t\t.pict-flow-palette-card-icon svg {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.pict-flow-toolbar-btn-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-toolbar-btn-icon svg {\n\t\t\tdisplay: block;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.pict-flow-info-panel-header.with-icon svg {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: middle;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t\t.pict-flow-panel-close-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.pict-flow-panel-close-icon svg {\n\t\t\tdisplay: block;\n\t\t}\n\t\t.pict-flow-palette-toggle-arrow svg {\n\t\t\tdisplay: block;\n\t\t}\n\t\t"}},{key:"getBracketNodeCSS",value:function(){return"\n\t\t/* Bracket outline path */\n\t\t.pict-flow-node-bracket {\n\t\t\tfill: none;\n\t\t\tstroke: var(--pf-node-body-stroke);\n\t\t\tstroke-width: 2;\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-linejoin: round;\n\t\t}\n\t\t.pict-flow-node.selected .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-node-selected-stroke);\n\t\t\tstroke-width: 2;\n\t\t}\n\t\t.pict-flow-node:hover .pict-flow-node-bracket {\n\t\t\tstroke: var(--pf-node-body-stroke-hover);\n\t\t\tstroke-width: 1.5;\n\t\t}\n\n\t\t/* Bracket fill rects: no stroke, no rounded corners.\n\t\t Uses parent-qualified selectors to beat variant rules\n\t\t (e.g. .pict-flow-node-start .pict-flow-node-body). */\n\t\t.pict-flow-node .pict-flow-node-bracket-fill,\n\t\t.pict-flow-node .pict-flow-node-bracket-title-fill {\n\t\t\tstroke: none;\n\t\t\tstroke-width: 0;\n\t\t\trx: 0;\n\t\t\try: 0;\n\t\t}\n\t\t/* Beat hover rule: .pict-flow-node:hover .pict-flow-node-body */\n\t\t.pict-flow-node:hover .pict-flow-node-bracket-fill,\n\t\t.pict-flow-node:hover .pict-flow-node-bracket-title-fill {\n\t\t\tstroke: none;\n\t\t\tstroke-width: 0;\n\t\t}\n\t\t/* Beat selected rule: .pict-flow-node.selected .pict-flow-node-body */\n\t\t.pict-flow-node.selected .pict-flow-node-bracket-fill,\n\t\t.pict-flow-node.selected .pict-flow-node-bracket-title-fill {\n\t\t\tstroke: none;\n\t\t\tstroke-width: 0;\n\t\t}\n\t\t"}},{key:"generateCSS",value:function(){var t=this.getContainerCSS()+this.getNodeCSS()+this.getBodyContentCSS()+this.getNodeVariantCSS()+this.getPortCSS()+this.getConnectionCSS()+this.getHandleCSS()+this.getTetherCSS()+this.getPanelCSS()+this.getInfoPanelCSS()+this.getNodePropsEditorCSS()+this.getPanelTabsCSS()+this.getBracketNodeCSS()+this.getFullscreenCSS()+this.getToolbarCSS()+this.getPaletteCSS()+this.getPopupCSS()+this.getCollapsedToolbarCSS()+this.getFloatingToolbarCSS()+this.getIconCSS();if(this._FlowView&&this._FlowView._ThemeProvider){var e=this._FlowView._ThemeProvider.getActiveTheme();if(e&&e.CSSVariables&&Object.keys(e.CSSVariables).length>0){var o=".pict-flow-container {\n";for(var n in e.CSSVariables)o+="\t"+n+": "+e.CSSVariables[n]+";\n";t+=o+="}\n"}e&&e.AdditionalCSS&&(t+=e.AdditionalCSS)}return t}},{key:"registerCSS",value:function(){this.fable&&this.fable.CSSMap?(this.fable.CSSMap.removeCSS("PictSectionFlow-CSS"),this.fable.CSSMap.addCSS("PictSectionFlow-CSS",this.generateCSS(),500,"PictProviderFlowCSS"),this.fable.CSSMap.injectCSS()):this.log.warn("PictProviderFlowCSS: CSSMap not available; CSS not registered.")}},{key:"registerRendererCSS",value:function(t){if(this.fable&&this.fable.CSSMap)if(this.fable.CSSMap.removeCSS("PictSectionFlow-Renderer-CSS"),t){var e="";t.GeometryCSS&&(e+=t.GeometryCSS),t.AdditionalCSS&&(e+="\n"+t.AdditionalCSS),0!==e.trim().length?(this.fable.CSSMap.addCSS("PictSectionFlow-Renderer-CSS",e,501,"PictProviderFlowCSS"),this.fable.CSSMap.injectCSS()):this.fable.CSSMap.injectCSS()}else this.fable.CSSMap.injectCSS()}}])}(n);e.exports=i,e.exports.default_configuration=r},{"fable-serviceproviderbase":26}],49:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictProviderFlowConnectorShapes",r._FlowView=o&&o.FlowView?o.FlowView:null,r._DefaultShapes={port:{ElementType:"circle",Attributes:{r:"5"},ClassName:"pict-flow-port"},"panel-indicator":{ElementType:"rect",Attributes:{rx:"2",ry:"2"},ClassName:"pict-flow-node-panel-indicator"},"connection-path":{ElementType:"path",Attributes:{},ClassName:"pict-flow-connection"},"connection-hitarea":{ElementType:"path",Attributes:{},ClassName:"pict-flow-connection-hitarea"},"connection-handle":{ElementType:"circle",Attributes:{r:"6"},ClassName:"pict-flow-connection-handle"},"connection-handle-midpoint":{ElementType:"circle",Attributes:{r:"6"},ClassName:"pict-flow-connection-handle-midpoint"},"drag-connection":{ElementType:"path",Attributes:{},ClassName:"pict-flow-drag-connection"},"tether-path":{ElementType:"path",Attributes:{},ClassName:"pict-flow-tether-line"},"tether-hitarea":{ElementType:"path",Attributes:{},ClassName:"pict-flow-tether-hitarea"},"tether-handle":{ElementType:"circle",Attributes:{r:"6"},ClassName:"pict-flow-tether-handle"},"tether-handle-midpoint":{ElementType:"circle",Attributes:{r:"6"},ClassName:"pict-flow-tether-handle-midpoint"},"arrowhead-connection":{MarkerWidth:"5",MarkerHeight:"7",RefX:"7.5",RefY:"3.5",Points:"0 0, 5 3.5, 0 7",Fill:"var(--theme-color-border-default, #95a5a6)"},"arrowhead-connection-selected":{MarkerWidth:"5",MarkerHeight:"7",RefX:"7.5",RefY:"3.5",Points:"0 0, 5 3.5, 0 7",Fill:"var(--theme-color-status-info, #3498db)"},"arrowhead-tether":{MarkerWidth:"4",MarkerHeight:"6",RefX:"6",RefY:"3",Points:"0 0, 4 3, 0 6",Fill:"var(--theme-color-border-default, #95a5a6)"}},r._OriginalShapes=JSON.parse(JSON.stringify(r._DefaultShapes)),r}return _inherits(e,t),_createClass2(e,[{key:"applyThemeOverrides",value:function(t){if(t&&"object"===_typeof(t))for(var e in t)this._DefaultShapes.hasOwnProperty(e)?Object.assign(this._DefaultShapes[e],t[e]):this._DefaultShapes[e]=t[e]}},{key:"resetToDefaults",value:function(){this._DefaultShapes=JSON.parse(JSON.stringify(this._OriginalShapes))}},{key:"getShapeConfig",value:function(t){return this._DefaultShapes.hasOwnProperty(t)?this._DefaultShapes[t]:null}},{key:"setShapeConfig",value:function(t,e){this._DefaultShapes[t]=e}},{key:"getShapeKeys",value:function(){return Object.keys(this._DefaultShapes)}},{key:"createPortElement",value:function(t,e,o){var n=this._DefaultShapes.port,r=this._FlowView._SVGHelperProvider.createSVGElement(n.ElementType),i=n.ClassName+" "+t.Direction;for(var a in t.PortType&&(i+=" port-type-"+t.PortType),r.setAttribute("class",i),r.setAttribute("cx",String(e.x)),r.setAttribute("cy",String(e.y)),n.Attributes)r.setAttribute(a,n.Attributes[a]);return r.setAttribute("data-port-hash",t.Hash),r.setAttribute("data-node-hash",o),r.setAttribute("data-port-direction",t.Direction),t.PortType&&r.setAttribute("data-port-type",t.PortType),r.setAttribute("data-element-type","port"),r}},{key:"createPanelIndicatorElement",value:function(t,e,o,n,r){var i=this._DefaultShapes["panel-indicator"],a=this._FlowView._SVGHelperProvider.createSVGElement(i.ElementType);for(var s in a.setAttribute("class",i.ClassName),a.setAttribute("x",String(e)),a.setAttribute("y",String(o)),a.setAttribute("width",String(n)),a.setAttribute("height",String(r)),i.Attributes)a.setAttribute(s,i.Attributes[s]);return a.setAttribute("data-node-hash",t),a.setAttribute("data-element-type","panel-indicator"),a}},{key:"createConnectionPathElement",value:function(t,e,o,n){var r=this._DefaultShapes["connection-path"],i=this._FlowView._SVGHelperProvider.createSVGElement(r.ElementType);i.setAttribute("class",r.ClassName+(o?" selected":"")),i.setAttribute("d",t),i.setAttribute("data-connection-hash",e),i.setAttribute("data-element-type","connection");o?this._DefaultShapes["arrowhead-connection-selected"]:this._DefaultShapes["arrowhead-connection"];var a=o?"flow-arrowhead-selected-"+n:"flow-arrowhead-"+n;return i.setAttribute("marker-end","url(#"+a+")"),i}},{key:"createConnectionHitAreaElement",value:function(t,e){var o=this._DefaultShapes["connection-hitarea"],n=this._FlowView._SVGHelperProvider.createSVGElement(o.ElementType);return n.setAttribute("class",o.ClassName),n.setAttribute("d",t),n.setAttribute("data-connection-hash",e),n.setAttribute("data-element-type","connection-hitarea"),n}},{key:"createHandleElement",value:function(t,e,o,n,r){var i=this._DefaultShapes[r]||this._DefaultShapes["connection-handle"],a=this._FlowView._SVGHelperProvider.createSVGElement(i.ElementType);for(var s in a.setAttribute("class",i.ClassName),a.setAttribute("cx",String(o)),a.setAttribute("cy",String(n)),i.Attributes)a.setAttribute(s,i.Attributes[s]);return a.setAttribute("data-handle-type",e),a}},{key:"createFullHandle",value:function(t,e,o,n,r,i,a,s){var l=this.createHandleElement(e,o,n,r,i);return l.setAttribute("data-element-type",a),l.setAttribute(s,e),t.appendChild(l),l}},{key:"createDragConnectionElement",value:function(t){var e=this._DefaultShapes["drag-connection"],o=this._FlowView._SVGHelperProvider.createSVGElement(e.ElementType);return o.setAttribute("class",e.ClassName),o.setAttribute("d",t),o}},{key:"createTetherPathElement",value:function(t,e,o,n){var r=this._DefaultShapes["tether-path"],i=this._FlowView._SVGHelperProvider.createSVGElement(r.ElementType);return i.setAttribute("class",r.ClassName+(o?" selected":"")),i.setAttribute("d",t),i.setAttribute("marker-end","url(#flow-tether-arrowhead-"+n+")"),i.setAttribute("data-element-type","tether"),i.setAttribute("data-panel-hash",e),i}},{key:"createTetherHitAreaElement",value:function(t,e){var o=this._DefaultShapes["tether-hitarea"],n=this._FlowView._SVGHelperProvider.createSVGElement(o.ElementType);return n.setAttribute("class",o.ClassName),n.setAttribute("d",t),n.setAttribute("data-element-type","tether-hitarea"),n.setAttribute("data-panel-hash",e),n}},{key:"generateMarkerDefs",value:function(t){var e=this._DefaultShapes["arrowhead-connection"],o=this._DefaultShapes["arrowhead-connection-selected"],n=this._DefaultShapes["arrowhead-tether"],r="";r+='<marker id="flow-arrowhead-'+t+'" markerWidth="'+e.MarkerWidth+'" markerHeight="'+e.MarkerHeight+'" refX="'+e.RefX+'" refY="'+e.RefY+'" orient="auto" markerUnits="strokeWidth"><polygon class="pict-flow-arrowhead pict-flow-arrowhead-default" points="'+e.Points+'" fill="'+e.Fill+'" /></marker>';var i={"event-in":"var(--theme-color-status-info, #3498db)","event-out":"var(--theme-color-status-success, #2ecc71)",setting:"var(--theme-color-status-warning, #e67e22)",value:"var(--theme-color-status-warning, #f1c40f)",error:"var(--theme-color-status-error, #e74c3c)"};for(var a in i)r+='<marker id="flow-arrowhead-'+a+"-"+t+'" markerWidth="'+e.MarkerWidth+'" markerHeight="'+e.MarkerHeight+'" refX="'+e.RefX+'" refY="'+e.RefY+'" orient="auto" markerUnits="strokeWidth"><polygon class="pict-flow-arrowhead pict-flow-arrowhead-'+a+'" points="'+e.Points+'" fill="'+i[a]+'" /></marker>';return r+='<marker id="flow-arrowhead-selected-'+t+'" markerWidth="'+o.MarkerWidth+'" markerHeight="'+o.MarkerHeight+'" refX="'+o.RefX+'" refY="'+o.RefY+'" orient="auto" markerUnits="strokeWidth"><polygon class="pict-flow-arrowhead pict-flow-arrowhead-selected" points="'+o.Points+'" fill="'+o.Fill+'" /></marker>',r+='<marker id="flow-tether-arrowhead-'+t+'" markerWidth="'+n.MarkerWidth+'" markerHeight="'+n.MarkerHeight+'" refX="'+n.RefX+'" refY="'+n.RefY+'" orient="auto" markerUnits="strokeWidth"><polygon class="pict-flow-arrowhead pict-flow-arrowhead-tether" points="'+n.Points+'" fill="'+n.Fill+'" /></marker>'}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],50:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"PictProviderFlowEventHandler"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowEventHandler",i._FlowView=o&&o.FlowView?o.FlowView:null,i._Handlers={},i}return _inherits(e,t),_createClass2(e,[{key:"registerHandler",value:function(t,e,o){if("function"!=typeof e)return this.log.warn("PictProviderFlowEventHandler registerHandler: handler for '".concat(t,"' is not a function")),null;this._Handlers[t]||(this._Handlers[t]=[]);var n=o||"handler-".concat(this.fable.getUUID());return this._Handlers[t].push({Hash:n,Handler:e}),this.log.trace("PictProviderFlowEventHandler registered handler '".concat(n,"' for event '").concat(t,"'")),n}},{key:"removeHandler",value:function(t,e){if(!this._Handlers[t])return!1;var o=this._Handlers[t].findIndex(function(t){return t.Hash===e});return o>=0&&(this._Handlers[t].splice(o,1),!0)}},{key:"removeAllHandlers",value:function(t){t?this._Handlers[t]=[]:this._Handlers={}}},{key:"fireEvent",value:function(t,e){if(this.log.trace("PictProviderFlowEventHandler firing event '".concat(t,"'")),this._Handlers[t]&&0!==this._Handlers[t].length)for(var o=0;o<this._Handlers[t].length;o++){var n=this._Handlers[t][o];try{n.Handler(e,this._FlowView)}catch(e){this.log.error("PictProviderFlowEventHandler error in handler '".concat(n.Hash,"' for event '").concat(t,"': ").concat(e.message))}}}},{key:"hasHandlers",value:function(t){return!!(this._Handlers[t]&&this._Handlers[t].length>0)}},{key:"getHandlerCount",value:function(t){return this._Handlers[t]?this._Handlers[t].length:0}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],51:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictProviderFlowGeometry",r}return _inherits(e,t),_createClass2(e,[{key:"getEdgeFromSide",value:function(t){switch(t){case"left-top":case"left":case"left-bottom":return"left";case"right-top":case"right":case"right-bottom":default:return"right";case"top-left":case"top":case"top-right":return"top";case"bottom-left":case"bottom":case"bottom-right":return"bottom"}}},{key:"sideDirection",value:function(t){switch(this.getEdgeFromSide(t)){case"left":return{dx:-1,dy:0};case"right":default:return{dx:1,dy:0};case"top":return{dx:0,dy:-1};case"bottom":return{dx:0,dy:1}}}},{key:"getEdgeCenter",value:function(t,e){switch(e){case"left":return{x:t.X,y:t.Y+t.Height/2};case"right":default:return{x:t.X+t.Width,y:t.Y+t.Height/2};case"top":return{x:t.X+t.Width/2,y:t.Y};case"bottom":return{x:t.X+t.Width/2,y:t.Y+t.Height}}}},{key:"getPortLocalPosition",value:function(t,e,o,n,r,i,a){var s=this.getEdgeFromSide(t),l=a?this._computeAdaptiveZone(t,a):this._getZoneFromSide(t),c=this._getZoneFromSide(t),p="start";if(c.start>=.5?p="end":c.start>=.17&&(p="center"),"left"===s||"right"===s){var u="left"===s?0:n,d=r-i-16,h=i+d*l.start,f=d*(l.end-l.start)-16*(o+1);f<0&&(f=0);var m=0;return"end"===p?m=f:"center"===p&&(m=f/2),{x:u,y:h+m+16*(e+1)}}var v="top"===s?0:r,g=n*l.start,w=n*(l.end-l.start)-16*(o+1);w<0&&(w=0);var y=0;return"end"===p?y=w:"center"===p&&(y=w/2),{x:g+y+16*(e+1),y:v}}},{key:"_getZoneFromSide",value:function(t){switch(t){case"left-top":case"right-top":case"top-left":case"bottom-left":return{start:0,end:.333};case"left":case"right":case"top":case"bottom":return{start:.333,end:.667};case"left-bottom":case"right-bottom":case"top-right":case"bottom-right":return{start:.667,end:1};default:return{start:0,end:1}}}},{key:"_getZoneKeysForEdge",value:function(t){switch(t){case"left":return["left-top","left","left-bottom"];case"right":default:return["right-top","right","right-bottom"];case"top":return["top-left","top","top-right"];case"bottom":return["bottom-left","bottom","bottom-right"]}}},{key:"_computeAdaptiveZone",value:function(t,e){for(var o=this.getEdgeFromSide(t),n=this._getZoneKeysForEdge(o),r=0,i={},a=0;a<n.length;a++){var s=n[a],l=e[s]||0,c=l>0?16*(l+1):0;i[s]=c,r+=c}if(0===r)return this._getZoneFromSide(t);for(var p=0,u=0;u<n.length;u++){var d=n[u],h=i[d]/r;if(d===t)return{start:p,end:p+h};p+=h}return this._getZoneFromSide(t)}},{key:"buildPortCountsBySide",value:function(t){var e={};if(!t||!Array.isArray(t))return e;for(var o=0;o<t.length;o++){var n=t[o].Side||("input"===t[o].Direction?"left":"right");e[n]||(e[n]=0),e[n]++}return e}},{key:"computeMinimumNodeHeight",value:function(t,e){if(!t||!Array.isArray(t)||0===t.length)return 0;var o=this.buildPortCountsBySide(t),n={};for(var r in o){var i=this.getEdgeFromSide(r);if("left"===i||"right"===i){var a=16*(o[r]+1);n[i]||(n[i]=0),n[i]+=a}}var s=0;for(var l in n){var c=e+16+n[l];c>s&&(s=c)}return Math.ceil(s)}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],52:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={ProviderIdentifier:"PictProviderFlowIcons"},i={ITE:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="6" r="3" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><circle cx="6" cy="18" r="2.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><circle cx="18" cy="18" r="2.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M12 9v2M9.5 12.5L6 15.5M14.5 12.5L18 15.5" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',SW:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M3 12h5M16 12h5M14.8 9.2l3.7-5.2M14.8 14.8l3.7 5.2" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',EACH:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="14" y="3" width="7" height="7" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="3" y="14" width="7" height="7" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="14" y="14" width="7" height="7" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',FREAD:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9l-7-7z" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M13 2v7h7" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M9 13h6M9 17h4" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',FWRITE:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9l-7-7z" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M13 2v7h7" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M12 13v5M9.5 15.5L12 13l2.5 2.5" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',LOG:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="3" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><circle cx="7.5" cy="8" r="1" fill="var(--theme-color-text-primary, #2c3e50)"/><circle cx="7.5" cy="12" r="1" fill="var(--theme-color-text-primary, #2c3e50)"/><circle cx="7.5" cy="16" r="1" fill="var(--theme-color-text-primary, #2c3e50)"/><path d="M11 8h5.5M11 12h5.5M11 16h3.5" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',GET:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M21 21l-5.15-5.15" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',SET:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4.5 1.5L4 16Z" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M14 6l3 3" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',fullscreen:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 3h6v6"/><path d="M9 21H3v-6"/><path d="M21 3l-7 7"/><path d="M3 21l7-7"/></svg>',"exit-fullscreen":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14h6v6"/><path d="M20 10h-6V4"/><path d="M14 10l7-7"/><path d="M3 21l7-7"/></svg>',close:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',"chevron-down":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>',search:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M21 21l-4.35-4.35" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',cards:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="16" height="12" rx="2" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M6 7V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-2" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',layout:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="8" height="10" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="13" y="3" width="8" height="6" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="3" y="15" width="8" height="6" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="13" y="11" width="8" height="10" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',collapse:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="3" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M8 12h8" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',expand:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="3" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M12 8v8M8 12h8" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',grip:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="var(--theme-color-text-primary, #2c3e50)"><circle cx="9" cy="5" r="1.5"/><circle cx="15" cy="5" r="1.5"/><circle cx="9" cy="12" r="1.5"/><circle cx="15" cy="12" r="1.5"/><circle cx="9" cy="19" r="1.5"/><circle cx="15" cy="19" r="1.5"/></svg>',settings:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3" fill="var(--theme-color-background-secondary, #d5e8f7)"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>',plus:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M12 8v8M8 12h8" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',trash:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="5" y="6" width="14" height="14" rx="2" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M10 11v6M14 11v6" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',save:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M17 21v-8H7v8" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M7 3v5h8" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',"auto-layout":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="8" y="2" width="8" height="6" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="2" y="16" width="8" height="6" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="14" y="16" width="8" height="6" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M12 8v4M6 16v-4h12v4" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',"zoom-in":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M21 21l-4.35-4.35" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M11 8v6M8 11h6" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',"zoom-out":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M21 21l-4.35-4.35" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M8 11h6" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',"zoom-fit":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7V3h4"/><path d="M17 3h4v4"/><path d="M21 17v4h-4"/><path d="M7 21H3v-4"/><rect x="7" y="7" width="10" height="10" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)"/></svg>',dock:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="4" rx="1.5" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M12 20V11M8 14l4-4 4 4" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',restore:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 1 0 3-6.7L3 8"/><path d="M3 3v5h5"/></svg>',"delete-node":'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><rect x="5" y="6" width="14" height="14" rx="2" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><path d="M10 11v6M14 11v6" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/></svg>',default:'<svg xmlns="http://www.w3.org/2000/svg" width="{FlowIconSize}" height="{FlowIconSize}" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="4" fill="var(--theme-color-background-secondary, #d5e8f7)" stroke="var(--theme-color-text-primary, #2c3e50)" stroke-width="2"/><circle cx="12" cy="12" r="2.5" fill="var(--theme-color-text-primary, #2c3e50)"/></svg>'},a=function(t){function e(t,o,n){var a;if(_classCallCheck(this,e),(a=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowIcons",a._FlowView=o&&o.FlowView?o.FlowView:null,a._Icons=JSON.parse(JSON.stringify(i)),o&&o.AdditionalIcons&&"object"===_typeof(o.AdditionalIcons))for(var s=Object.keys(o.AdditionalIcons),l=0;l<s.length;l++)a._Icons[s[l]]=o.AdditionalIcons[s[l]];return a}return _inherits(e,t),_createClass2(e,[{key:"registerIconTemplates",value:function(){if(this.fable&&this.fable.TemplateProvider)for(var t=Object.keys(this._Icons),e=0;e<t.length;e++){var o="Flow-Icon-"+t[e];this.fable.TemplateProvider.getTemplate(o)||this.fable.TemplateProvider.addTemplate(o,this._Icons[t[e]])}else this.log.warn("PictProviderFlowIcons: TemplateProvider not available; icon templates not registered.")}},{key:"isEmojiIcon",value:function(t){if(!t||"string"!=typeof t)return!1;for(var e=0;e<t.length;e++)if(t.charCodeAt(e)>255)return!0;return!1}},{key:"resolveIconKey",value:function(t){return t?t.Icon&&this._Icons.hasOwnProperty(t.Icon)||t.Icon&&!this.isEmojiIcon(t.Icon)?t.Icon:t.Code&&this._Icons.hasOwnProperty(t.Code)?t.Code:"default":"default"}},{key:"getIconSVGMarkup",value:function(t,e){var o=e||16,n=t||"default";return(this._Icons[n]||this._Icons.default).replace(/\{FlowIconSize\}/g,String(o))}},{key:"renderIconIntoSVGGroup",value:function(t,e,o,n,r){if(!e)return null;var i=(r||16)/24,a=t||"default",s=this._Icons[a]||this._Icons.default;s=s.replace(/\{FlowIconSize\}/g,"24");try{var l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.innerHTML=s;var c=l.querySelector("svg");if(!c)return null;var p=document.createElementNS("http://www.w3.org/2000/svg","g");for(p.setAttribute("transform","translate("+o+","+n+") scale("+i+")"),p.setAttribute("pointer-events","none"),p.setAttribute("class","pict-flow-icon-svg");c.childNodes.length>0;)p.appendChild(c.childNodes[0]);return e.appendChild(p),p}catch(t){return this.log.warn("PictProviderFlowIcons renderIconIntoSVGGroup error: "+t.message),null}}},{key:"getIconKeys",value:function(){return Object.keys(this._Icons)}},{key:"hasIcon",value:function(t){return this._Icons.hasOwnProperty(t)}},{key:"registerIcon",value:function(t,e){return!(!t||!e)&&(this._Icons[t]=e,this.fable&&this.fable.TemplateProvider&&this.fable.TemplateProvider.addTemplate("Flow-Icon-"+t,e),!0)}}])}(n);e.exports=a,e.exports.default_configuration=r,e.exports.DefaultIcons=i},{"fable-serviceproviderbase":26}],53:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"PictProviderFlowLayouts"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowLayouts",i._FlowView=o&&o.FlowView?o.FlowView:null,o&&void 0!==o.StorageKey?i._StorageKey=o.StorageKey:i._FlowView&&i._FlowView.options&&i._FlowView.options.ViewIdentifier?i._StorageKey="pict-flow-layouts-".concat(i._FlowView.options.ViewIdentifier):i._StorageKey="pict-flow-layouts",i}return _inherits(e,t),_createClass2(e,[{key:"storageWrite",value:function(t,e){if(!1===this._StorageKey)return e(null);try{return"undefined"!=typeof localStorage&&localStorage.setItem(this._StorageKey,JSON.stringify(t)),e(null)}catch(t){return this.log.warn("PictProviderFlowLayouts storageWrite error: ".concat(t.message)),e(t)}}},{key:"storageRead",value:function(t){if(!1===this._StorageKey)return t(null,[]);try{if("undefined"!=typeof localStorage){var e=localStorage.getItem(this._StorageKey);if(e){var o=JSON.parse(e);if(Array.isArray(o))return t(null,o)}}return t(null,[])}catch(e){return this.log.warn("PictProviderFlowLayouts storageRead error: ".concat(e.message)),t(e,[])}}},{key:"storageDelete",value:function(t){if(!1===this._StorageKey)return t(null);try{return"undefined"!=typeof localStorage&&localStorage.removeItem(this._StorageKey),t(null)}catch(e){return this.log.warn("PictProviderFlowLayouts storageDelete error: ".concat(e.message)),t(e)}}},{key:"loadPersistedLayouts",value:function(){var t=this;this.storageRead(function(e,o){if(!e&&Array.isArray(o)&&0!==o.length&&t._FlowView&&t._FlowView._FlowData){for(var n=t._FlowView._FlowData.SavedLayouts,r={},i=0;i<n.length;i++)r[n[i].Hash]=!0;for(var a=0,s=0;s<o.length;s++)r[o[s].Hash]||(n.push(o[s]),a++);a>0&&t.log.trace("PictProviderFlowLayouts loaded ".concat(a," persisted layout(s)"))}})}},{key:"saveLayout",value:function(t){var e=this;if(!this._FlowView)return this.log.warn("PictProviderFlowLayouts saveLayout: no FlowView reference"),null;for(var o=this._FlowView._FlowData,n="layout-".concat(this.fable.getUUID()),r={},i={},a=0;a<o.Nodes.length;a++){var s=o.Nodes[a];r[s.Hash]={X:s.X,Y:s.Y,Width:s.Width,Height:s.Height,Title:s.Title},s.Style&&Object.keys(s.Style).length>0&&(r[s.Hash].Style=JSON.parse(JSON.stringify(s.Style)))}for(var l=0;l<o.OpenPanels.length;l++){var c=o.OpenPanels[l];i[c.NodeHash]={X:c.X,Y:c.Y,Width:c.Width,Height:c.Height}}var p={Hash:n,Name:t||"Untitled Layout",CreatedAt:(new Date).toISOString(),NodePositions:r,PanelPositions:i,ViewState:{PanX:o.ViewState.PanX,PanY:o.ViewState.PanY,Zoom:o.ViewState.Zoom}};return o.SavedLayouts.push(p),this._FlowView.marshalFromView(),this.storageWrite(o.SavedLayouts,function(t){t&&e.log.warn("PictProviderFlowLayouts: failed to persist after save: ".concat(t.message))}),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onLayoutSaved",p),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",o)),this.log.trace("PictProviderFlowLayouts saved layout '".concat(p.Name,"' (").concat(p.Hash,")")),p}},{key:"restoreLayout",value:function(t){if(!this._FlowView)return this.log.warn("PictProviderFlowLayouts restoreLayout: no FlowView reference"),!1;var e=this._FlowView._FlowData,o=e.SavedLayouts.find(function(e){return e.Hash===t});if(!o)return this.log.warn("PictProviderFlowLayouts restoreLayout: layout '".concat(t,"' not found")),!1;for(var n=[],r=[],i=0;i<e.Nodes.length;i++){var a=e.Nodes[i],s=o.NodePositions[a.Hash];s?(a.X=s.X,a.Y=s.Y,"number"==typeof s.Width&&(a.Width=s.Width),"number"==typeof s.Height&&(a.Height=s.Height),"string"==typeof s.Title&&(a.Title=s.Title),s.Style&&"object"===_typeof(s.Style)&&(a.Style=JSON.parse(JSON.stringify(s.Style))),n.push(a)):r.push(a)}if(o.PanelPositions)for(var l=0;l<e.OpenPanels.length;l++){var c=e.OpenPanels[l],p=o.PanelPositions[c.NodeHash];p&&(c.X=p.X,c.Y=p.Y,"number"==typeof p.Width&&(c.Width=p.Width),"number"==typeof p.Height&&(c.Height=p.Height))}return r.length>0&&this._FlowView._LayoutService&&this._FlowView._LayoutService.autoLayoutSubset(r,n,e.Connections),o.ViewState&&("number"==typeof o.ViewState.PanX&&(e.ViewState.PanX=o.ViewState.PanX),"number"==typeof o.ViewState.PanY&&(e.ViewState.PanY=o.ViewState.PanY),"number"==typeof o.ViewState.Zoom&&(e.ViewState.Zoom=o.ViewState.Zoom)),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onLayoutRestored",o),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",e)),this.log.trace("PictProviderFlowLayouts restored layout '".concat(o.Name,"' (").concat(o.Hash,")")),!0}},{key:"deleteLayout",value:function(t){var e=this;if(!this._FlowView)return this.log.warn("PictProviderFlowLayouts deleteLayout: no FlowView reference"),!1;var o=this._FlowView._FlowData,n=o.SavedLayouts.findIndex(function(e){return e.Hash===t});if(n<0)return this.log.warn("PictProviderFlowLayouts deleteLayout: layout '".concat(t,"' not found")),!1;var r=o.SavedLayouts.splice(n,1)[0];return this._FlowView.marshalFromView(),this.storageWrite(o.SavedLayouts,function(t){t&&e.log.warn("PictProviderFlowLayouts: failed to persist after delete: ".concat(t.message))}),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onLayoutDeleted",r),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",o)),this.log.trace("PictProviderFlowLayouts deleted layout '".concat(r.Name,"' (").concat(r.Hash,")")),!0}},{key:"getLayouts",value:function(){return this._FlowView?this._FlowView._FlowData.SavedLayouts:[]}},{key:"getLayout",value:function(t){return this._FlowView&&this._FlowView._FlowData.SavedLayouts.find(function(e){return e.Hash===t})||null}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],54:[function(t,e,o){var n=t("pict-provider"),r={default:{Hash:"default",Label:"Default",DefaultWidth:180,DefaultHeight:80,DefaultPorts:[{Hash:null,Direction:"input",Side:"left",Label:"In"},{Hash:null,Direction:"output",Side:"right",Label:"Out"}],ColorRole:"neutral",TitleBarColor:"var(--theme-color-text-primary, #2c3e50)",BodyStyle:{}},start:{Hash:"start",Label:"Start",DefaultWidth:140,DefaultHeight:80,DefaultPorts:[{Hash:null,Direction:"output",Side:"right",Label:"Out"}],ColorRole:"success",TitleBarColor:"var(--theme-color-status-success, #27ae60)",BodyStyle:{fill:"var(--theme-color-background-hover, #eafaf1)",stroke:"var(--theme-color-status-success, #27ae60)"}},end:{Hash:"end",Label:"End",DefaultWidth:140,DefaultHeight:80,DefaultPorts:[{Hash:null,Direction:"input",Side:"left",Label:"In"}],ColorRole:"accent",TitleBarColor:"var(--theme-color-brand-primary, #1abc9c)",BodyStyle:{fill:"#e8f8f5",stroke:"var(--theme-color-brand-primary, #1abc9c)"}},halt:{Hash:"halt",Label:"Halt",DefaultWidth:140,DefaultHeight:80,DefaultPorts:[{Hash:null,Direction:"input",Side:"left",Label:"In"}],ColorRole:"error",TitleBarColor:"var(--theme-color-status-error, #e74c3c)",BodyStyle:{fill:"var(--theme-color-background-hover, #fdedec)",stroke:"var(--theme-color-status-error, #e74c3c)"}},decision:{Hash:"decision",Label:"Decision",DefaultWidth:200,DefaultHeight:100,DefaultPorts:[{Hash:null,Direction:"input",Side:"left",Label:"In"},{Hash:null,Direction:"output",Side:"right",Label:"Yes"},{Hash:null,Direction:"output",Side:"bottom",Label:"No"}],ColorRole:"warning",TitleBarColor:"#f39c12",BodyStyle:{fill:"#fff9e6",stroke:"#f39c12"}}},i={ProviderIdentifier:"PictProviderFlowNodeTypes"},a=function(t){function e(t,o,n){var a;if(_classCallCheck(this,e),(a=_callSuper(this,e,[t,Object.assign({},i,o),n])).serviceType="PictProviderFlowNodeTypes",a._FlowView=o&&o.FlowView?o.FlowView:null,o&&!1===o.IncludeDefaultNodeTypes?a._NodeTypes={}:a._NodeTypes=JSON.parse(JSON.stringify(r)),o&&o.AdditionalNodeTypes&&"object"===_typeof(o.AdditionalNodeTypes))for(var s=Object.keys(o.AdditionalNodeTypes),l=0;l<s.length;l++){var c=o.AdditionalNodeTypes[s[l]];a._NodeTypes[s[l]]=Object.assign({},a._NodeTypes[s[l]]||{},JSON.parse(JSON.stringify(c))),c.BodyContent&&"function"==typeof c.BodyContent.RenderCallback&&(a._NodeTypes[s[l]].BodyContent||(a._NodeTypes[s[l]].BodyContent={}),a._NodeTypes[s[l]].BodyContent.RenderCallback=c.BodyContent.RenderCallback)}return a}return _inherits(e,t),_createClass2(e,[{key:"getNodeType",value:function(t){return this._NodeTypes[t]||this._NodeTypes.default}},{key:"registerNodeType",value:function(t){return t&&t.Hash?(this._NodeTypes[t.Hash]=Object.assign({},this._NodeTypes[t.Hash]||{},t),!0):(this.log.warn("PictProviderFlowNodeTypes registerNodeType: invalid config (missing Hash)"),!1)}},{key:"removeNodeType",value:function(t){return"default"===t?(this.log.warn("PictProviderFlowNodeTypes: cannot remove the default node type"),!1):!!this._NodeTypes[t]&&(delete this._NodeTypes[t],!0)}},{key:"getNodeTypes",value:function(){return JSON.parse(JSON.stringify(this._NodeTypes))}},{key:"getNodeTypeList",value:function(){return Object.keys(this._NodeTypes)}},{key:"getEnabledCards",value:function(){for(var t=[],e=Object.keys(this._NodeTypes),o=0;o<e.length;o++){var n=this._NodeTypes[e[o]];n.CardMetadata&&!1!==n.CardMetadata.Enabled&&t.push(JSON.parse(JSON.stringify(n)))}return t}},{key:"getCardsByCategory",value:function(){for(var t=this.getEnabledCards(),e={},o=0;o<t.length;o++){var n=t[o].CardMetadata&&t[o].CardMetadata.Category?t[o].CardMetadata.Category:"General";e[n]||(e[n]=[]),e[n].push(t[o])}return e}},{key:"isFlowCard",value:function(t){var e=this._NodeTypes[t];return!(!e||!e.CardMetadata)}}])}(n);e.exports=a,e.exports.default_configuration=i,e.exports.DefaultNodeTypes=r},{"pict-provider":32}],55:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={ProviderIdentifier:"PictProviderFlowNoise"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowNoise",i}return _inherits(e,t),_createClass2(e,[{key:"hashString",value:function(t){for(var e=5381,o=0;o<t.length;o++)e=(e<<5)+e+t.charCodeAt(o),e&=e;return e>>>0}},{key:"seededRandom",value:function(t){var e=0|t;return function(){e=e+1831565813|0;var t=Math.imul(e^e>>>15,1|e);return(((t=t+Math.imul(t^t>>>7,61|t)^t)^t>>>14)>>>0)/4294967296}}},{key:"jitterPoint",value:function(t,e,o,n){return o<=0?{x:t,y:e}:{x:t+o*(n()-.5)*2,y:e+o*(n()-.5)*2}}},{key:"generateBracketPath",value:function(t,e,o,n,r,i){var a=this,s=this.seededRandom(this.hashString(i||"default")),l=o||18,c=t,p=e,u=function(t,e){return a.jitterPoint(t,e,r,s)},d=u(l,0),h=u(0,0),f=u(0,p),m=u(l,p),v=u(c-l,0),g=u(c,0),w=u(c,p),y=u(c-l,p),b="";return b+="M ".concat(d.x.toFixed(1)," ").concat(d.y.toFixed(1)),b+=" L ".concat(h.x.toFixed(1)," ").concat(h.y.toFixed(1)),b+=" L ".concat(f.x.toFixed(1)," ").concat(f.y.toFixed(1)),b+=" L ".concat(m.x.toFixed(1)," ").concat(m.y.toFixed(1)),b+=" M ".concat(v.x.toFixed(1)," ").concat(v.y.toFixed(1)),b+=" L ".concat(g.x.toFixed(1)," ").concat(g.y.toFixed(1)),b+=" L ".concat(w.x.toFixed(1)," ").concat(w.y.toFixed(1)),b+=" L ".concat(y.x.toFixed(1)," ").concat(y.y.toFixed(1))}},{key:"jitterPath",value:function(t,e,o){if(e<=0||!t)return t;var n=this.seededRandom(this.hashString(o||"path")),r=t.match(/[MLCQZmlcqz]|[-+]?[0-9]*\.?[0-9]+/g);if(!r)return t;for(var i=[],a=0;a<r.length;a++)/^[-+]?[0-9]*\.?[0-9]+$/.test(r[a])&&i.push(a);for(var s=0;s<i.length-1;s+=2){var l=i[s],c=i[s+1],p=e;0===s||s>=i.length-2?p=.15*e:(2===s||s>=i.length-4)&&(p=.5*e);var u=parseFloat(r[l]),d=parseFloat(r[c]),h=this.jitterPoint(u,d,p,n);r[l]=h.x.toFixed(1),r[c]=h.y.toFixed(1)}for(var f="",m=0;m<r.length;m++)m>0&&/^[MLCQZmlcqz]$/.test(r[m])?f+=" "+r[m]:f+=m>0?" "+r[m]:r[m];return f}}])}(n);e.exports=i,e.exports.default_configuration=r},{"fable-serviceproviderbase":26}],56:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictProviderFlowPanelChrome",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"createPanelForeignObject",value:function(t,e){var o=this._FlowView._SVGHelperProvider.createSVGElement("foreignObject");o.setAttribute("class","pict-flow-panel-foreign-object"),o.setAttribute("data-panel-hash",t.Hash),o.setAttribute("data-node-hash",t.NodeHash),o.setAttribute("x",String(t.X)),o.setAttribute("y",String(t.Y)),o.setAttribute("width",String(t.Width)),o.setAttribute("height",String(t.Height));var n=this._FlowView.pict||this._FlowView.fable,r=t.Title||"Properties",i=n.parseTemplateByHash("Flow-PanelChrome-Template",{Hash:t.Hash,Title:r,FlowViewIdentifier:this._FlowView.options.ViewIdentifier});o.innerHTML=i;var a=o.querySelector(".pict-flow-panel-close-icon");return a&&this._FlowView&&this._FlowView._IconProvider?a.innerHTML=this._FlowView._IconProvider.getIconSVGMarkup("close",12):a&&(a.textContent="✕"),e.appendChild(o),o.querySelector('.pict-flow-panel-tab-pane[data-tab="properties"]')}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],57:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={ProviderIdentifier:"PictProviderFlowRenderer"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowRenderer",i._FlowView=o&&o.FlowView?o.FlowView:null,i._ActiveRendererKey="clean",i._NoiseLevel=0,i._Renderers={},i._registerBuiltInRenderers(),i}return _inherits(e,t),_createClass2(e,[{key:"_registerBuiltInRenderers",value:function(){this._Renderers.clean={Key:"clean",Label:"Clean",NodeBodyMode:"rect",BracketConfig:null,NoiseConfig:{Enabled:!1,DefaultLevel:0,MaxJitterPx:0,AffectsNodes:!1,AffectsConnections:!1},ConnectionConfig:{StrokeDashArray:null,StrokeWidth:2,ArrowheadStyle:"triangle"},ShapeOverrides:{},GeometryCSS:"\n\t\t\t\t.pict-flow-container {\n\t\t\t\t\t--pf-node-body-stroke-width: 1.5;\n\t\t\t\t\t--pf-node-body-radius: 6px;\n\t\t\t\t\t--pf-node-shadow: drop-shadow(0 1px 3px rgba(0,0,0,0.10));\n\t\t\t\t\t--pf-node-shadow-hover: drop-shadow(0 2px 6px rgba(0,0,0,0.15));\n\t\t\t\t\t--pf-node-shadow-selected: drop-shadow(0 0 6px var(--theme-color-brand-primary, #2255aa));\n\t\t\t\t\t--pf-node-shadow-dragging: drop-shadow(0 4px 10px rgba(0,0,0,0.20));\n\t\t\t\t\t--pf-node-title-size: 12px;\n\t\t\t\t\t--pf-node-title-weight: 600;\n\t\t\t\t\t--pf-panel-radius: 8px;\n\t\t\t\t\t--pf-panel-shadow: 0 2px 8px rgba(0,0,0,0.12);\n\t\t\t\t}\n\t\t\t",AdditionalCSS:""},this._Renderers.bracket={Key:"bracket",Label:"Bracket",NodeBodyMode:"bracket",BracketConfig:{SerifLength:20,TitleSeparator:!0},NoiseConfig:{Enabled:!1,DefaultLevel:0,MaxJitterPx:0,AffectsNodes:!1,AffectsConnections:!1},ConnectionConfig:{StrokeDashArray:null,StrokeWidth:1.5,ArrowheadStyle:"triangle"},ShapeOverrides:{"arrowhead-connection":{Fill:"var(--theme-color-text-secondary, #555555)"},"arrowhead-connection-selected":{Fill:"var(--theme-color-brand-primary, #2255aa)"}},GeometryCSS:"\n\t\t\t\t.pict-flow-container {\n\t\t\t\t\t--pf-node-body-stroke-width: 1.5;\n\t\t\t\t\t--pf-node-body-radius: 0px;\n\t\t\t\t\t--pf-node-shadow: none;\n\t\t\t\t\t--pf-node-shadow-hover: none;\n\t\t\t\t\t--pf-node-shadow-selected: none;\n\t\t\t\t\t--pf-node-shadow-dragging: none;\n\t\t\t\t\t--pf-node-title-size: 12px;\n\t\t\t\t\t--pf-node-title-weight: 500;\n\t\t\t\t\t--pf-panel-radius: 0px;\n\t\t\t\t\t--pf-panel-shadow: 2px 2px 0px rgba(0,0,0,0.08);\n\t\t\t\t}\n\t\t\t",AdditionalCSS:""},this._Renderers.sketch={Key:"sketch",Label:"Sketch",NodeBodyMode:"bracket",BracketConfig:{SerifLength:20,TitleSeparator:!0},NoiseConfig:{Enabled:!0,DefaultLevel:.4,MaxJitterPx:4,AffectsNodes:!0,AffectsConnections:!0},ConnectionConfig:{StrokeDashArray:null,StrokeWidth:1.5,ArrowheadStyle:"triangle"},ShapeOverrides:{"arrowhead-connection":{Fill:"var(--theme-color-text-secondary, #555555)"},"arrowhead-connection-selected":{Fill:"var(--theme-color-brand-primary, #2255aa)"}},GeometryCSS:"\n\t\t\t\t.pict-flow-container {\n\t\t\t\t\t--pf-node-body-stroke-width: 1.5;\n\t\t\t\t\t--pf-node-body-radius: 0px;\n\t\t\t\t\t--pf-node-shadow: none;\n\t\t\t\t\t--pf-node-shadow-hover: none;\n\t\t\t\t\t--pf-node-shadow-selected: none;\n\t\t\t\t\t--pf-node-shadow-dragging: none;\n\t\t\t\t\t--pf-node-title-size: 12px;\n\t\t\t\t\t--pf-node-title-weight: 400;\n\t\t\t\t\t--pf-panel-radius: 0px;\n\t\t\t\t\t--pf-panel-shadow: 2px 2px 0px rgba(0,0,0,0.08);\n\t\t\t\t}\n\t\t\t",AdditionalCSS:'\n\t\t\t\t.pict-flow-node-title,\n\t\t\t\t.pict-flow-node-type-label,\n\t\t\t\t.pict-flow-port-label,\n\t\t\t\t.pict-flow-node-card-code {\n\t\t\t\t\tfont-family: "Courier New", "Courier", monospace !important;\n\t\t\t\t}\n\t\t\t\t.pict-flow-panel-title-text,\n\t\t\t\t.pict-flow-panel-node-props-title,\n\t\t\t\t.pict-flow-info-panel {\n\t\t\t\t\tfont-family: "Courier New", "Courier", monospace !important;\n\t\t\t\t}\n\t\t\t\t.pict-flow-node-title-icon {\n\t\t\t\t\tfilter: brightness(0) !important;\n\t\t\t\t}\n\t\t\t'},this._Renderers.crt={Key:"crt",Label:"CRT",NodeBodyMode:"rect",BracketConfig:null,NoiseConfig:{Enabled:!1,DefaultLevel:0,MaxJitterPx:0,AffectsNodes:!1,AffectsConnections:!1},ConnectionConfig:{StrokeDashArray:null,StrokeWidth:2,ArrowheadStyle:"triangle"},ShapeOverrides:{"arrowhead-connection":{Fill:"var(--theme-color-brand-primary, #ff00ff)"},"arrowhead-connection-selected":{Fill:"var(--theme-color-brand-accent, #00ffff)"}},GeometryCSS:"\n\t\t\t\t.pict-flow-container {\n\t\t\t\t\t--pf-node-body-stroke-width: 2;\n\t\t\t\t\t--pf-node-body-radius: 0px;\n\t\t\t\t\t--pf-node-shadow: drop-shadow(0 0 8px color-mix(in srgb, var(--theme-color-brand-primary, #ff00ff) 40%, transparent));\n\t\t\t\t\t--pf-node-shadow-hover: drop-shadow(0 0 12px color-mix(in srgb, var(--theme-color-brand-primary, #ff00ff) 60%, transparent));\n\t\t\t\t\t--pf-node-shadow-selected: drop-shadow(0 0 16px color-mix(in srgb, var(--theme-color-brand-accent, #00ffff) 50%, transparent));\n\t\t\t\t\t--pf-node-shadow-dragging: drop-shadow(0 0 20px color-mix(in srgb, var(--theme-color-brand-primary, #ff00ff) 70%, transparent));\n\t\t\t\t\t--pf-node-title-size: 11px;\n\t\t\t\t\t--pf-node-title-weight: 700;\n\t\t\t\t\t--pf-panel-radius: 0px;\n\t\t\t\t\t--pf-panel-shadow: 0 0 20px color-mix(in srgb, var(--theme-color-brand-primary, #ff00ff) 30%, transparent);\n\t\t\t\t}\n\t\t\t",AdditionalCSS:'\n\t\t\t\t.pict-flow-node-title,\n\t\t\t\t.pict-flow-node-type-label,\n\t\t\t\t.pict-flow-port-label,\n\t\t\t\t.pict-flow-node-card-code {\n\t\t\t\t\tfont-family: "Courier New", monospace !important;\n\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\tletter-spacing: 0.5px;\n\t\t\t\t}\n\t\t\t\t.pict-flow-connection {\n\t\t\t\t\tfilter: drop-shadow(0 0 3px color-mix(in srgb, var(--theme-color-brand-primary, #ff00ff) 40%, transparent));\n\t\t\t\t}\n\t\t\t'},this._Renderers.workstation={Key:"workstation",Label:"Workstation",NodeBodyMode:"rect",BracketConfig:null,NoiseConfig:{Enabled:!1,DefaultLevel:0,MaxJitterPx:0,AffectsNodes:!1,AffectsConnections:!1},ConnectionConfig:{StrokeDashArray:null,StrokeWidth:2,ArrowheadStyle:"triangle"},ShapeOverrides:{"arrowhead-connection":{Fill:"var(--theme-color-border-default, #808080)"},"arrowhead-connection-selected":{Fill:"var(--theme-color-focus-outline, #008080)"}},GeometryCSS:"\n\t\t\t\t.pict-flow-container {\n\t\t\t\t\t--pf-node-body-stroke-width: 1;\n\t\t\t\t\t--pf-node-body-radius: 0px;\n\t\t\t\t\t--pf-node-shadow: drop-shadow(2px 2px 0px var(--theme-color-border-strong, #404040));\n\t\t\t\t\t--pf-node-shadow-hover: drop-shadow(3px 3px 0px var(--theme-color-border-strong, #404040));\n\t\t\t\t\t--pf-node-shadow-selected: drop-shadow(2px 2px 0px var(--theme-color-focus-outline, #008080));\n\t\t\t\t\t--pf-node-shadow-dragging: drop-shadow(4px 4px 0px var(--theme-color-border-strong, #404040));\n\t\t\t\t\t--pf-node-title-size: 11px;\n\t\t\t\t\t--pf-node-title-weight: 700;\n\t\t\t\t\t--pf-panel-radius: 0px;\n\t\t\t\t\t--pf-panel-shadow: 2px 2px 0px var(--theme-color-border-strong, #404040);\n\t\t\t\t}\n\t\t\t",AdditionalCSS:'\n\t\t\t\t.pict-flow-node-title,\n\t\t\t\t.pict-flow-node-type-label,\n\t\t\t\t.pict-flow-port-label,\n\t\t\t\t.pict-flow-node-card-code {\n\t\t\t\t\tfont-family: "MS Sans Serif", "Arial", sans-serif !important;\n\t\t\t\t}\n\t\t\t'}}},{key:"getActiveRenderer",value:function(){return this._Renderers[this._ActiveRendererKey]||this._Renderers.clean}},{key:"getActiveRendererKey",value:function(){return this._ActiveRendererKey}},{key:"setRenderer",value:function(t){if(!this._Renderers[t])return this.log.warn("PictProviderFlowRenderer: renderer '".concat(t,"' not found")),!1;this._ActiveRendererKey=t;var e=this._Renderers[t];return e.NoiseConfig&&"number"==typeof e.NoiseConfig.DefaultLevel?this._NoiseLevel=e.NoiseConfig.DefaultLevel:this._NoiseLevel=0,this._FlowView&&this._FlowView._ConnectorShapesProvider&&(this._FlowView._ConnectorShapesProvider.resetToDefaults(),e.ShapeOverrides&&Object.keys(e.ShapeOverrides).length>0&&this._FlowView._ConnectorShapesProvider.applyThemeOverrides(e.ShapeOverrides)),this.log.trace("PictProviderFlowRenderer: switched to '".concat(t,"'")),!0}},{key:"register",value:function(t,e){t&&e?(e.Key=t,this._Renderers[t]=e):this.log.warn("PictProviderFlowRenderer: register requires key and definition")}},{key:"getRendererKeys",value:function(){return Object.keys(this._Renderers)}},{key:"getNoiseLevel",value:function(){return this._NoiseLevel}},{key:"setNoiseLevel",value:function(t){this._NoiseLevel=Math.max(0,Math.min(1,t||0))}},{key:"getNodeNoiseAmplitude",value:function(){var t=this.getActiveRenderer();return t&&t.NoiseConfig&&t.NoiseConfig.Enabled&&t.NoiseConfig.AffectsNodes?this._NoiseLevel*(t.NoiseConfig.MaxJitterPx||3):0}},{key:"processPathString",value:function(t,e){var o=this.getActiveRenderer();if(!(o&&o.NoiseConfig&&o.NoiseConfig.Enabled&&o.NoiseConfig.AffectsConnections))return t;var n=this._NoiseLevel*(o.NoiseConfig.MaxJitterPx||3);return n<=0?t:this._FlowView&&this._FlowView._NoiseProvider?this._FlowView._NoiseProvider.jitterPath(t,n,e):t}}])}(n);e.exports=i,e.exports.default_configuration=r},{"fable-serviceproviderbase":26}],58:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictProviderFlowSVGHelpers",r}return _inherits(e,t),_createClass2(e,[{key:"createSVGElement",value:function(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],59:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={ProviderIdentifier:"PictProviderFlowStylePresets"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowStylePresets",i._FlowView=o&&o.FlowView?o.FlowView:null,i._ActivePresetHash=null,i._Presets={},i._registerBuiltInPresets(),i}return _inherits(e,t),_createClass2(e,[{key:"_registerBuiltInPresets",value:function(){for(var t=[{Hash:"modern",Label:"Modern",Description:"Clean modern look — rounded rectangles, soft shadows, bezier connections.",ColorTheme:"flow-modern",Renderer:"clean",EdgeTheme:"bezier"},{Hash:"sketch",Label:"Sketch",Description:"Hand-drawn paper — bracket nodes with jitter and Courier text.",ColorTheme:"flow-sketch",Renderer:"sketch",EdgeTheme:"bezier",NoiseLevel:.4},{Hash:"blueprint",Label:"Blueprint",Description:"Technical drawing on navy — bracket nodes, dashed lines, orthogonal edges.",ColorTheme:"flow-blueprint",Renderer:"bracket",EdgeTheme:"orthogonal"},{Hash:"mono",Label:"Monochrome",Description:"Pure black on white — clean rectangles, straight lines, no noise.",ColorTheme:"flow-mono",Renderer:"clean",EdgeTheme:"straight"},{Hash:"retro-80s",Label:"80s Retro",Description:"Neon synthwave glow — magenta + cyan with CRT shadow effects.",ColorTheme:"flow-retro-80s",Renderer:"crt",EdgeTheme:"orthogonal"},{Hash:"retro-90s",Label:"90s Retro",Description:"Windows-95 chrome — gray panels with offset shadows on a teal desktop.",ColorTheme:"flow-retro-90s",Renderer:"workstation",EdgeTheme:"orthogonal"},{Hash:"whiteboard",Label:"Whiteboard",Description:"Minimal whiteboard — colored brackets per node type, gentle jitter.",ColorTheme:"flow-whiteboard",Renderer:"sketch",EdgeTheme:"bezier",NoiseLevel:.3}],e=0;e<t.length;e++)this._Presets[t[e].Hash]=t[e]}},{key:"register",value:function(t){return t&&"object"===_typeof(t)&&t.Hash?(this._Presets[t.Hash]=t,!0):(this.log.warn("PictProviderFlowStylePresets: register requires a preset object with a Hash"),!1)}},{key:"getPreset",value:function(t){return this._Presets[t]||null}},{key:"getPresetHashes",value:function(){return Object.keys(this._Presets)}},{key:"listPresets",value:function(){return Object.values(this._Presets)}},{key:"getActivePresetHash",value:function(){return this._ActivePresetHash}},{key:"applyPreset",value:function(t){var e=this._Presets[t];if(!e)return this.log.warn("PictProviderFlowStylePresets: preset '".concat(t,"' not found")),!1;if(e.ColorTheme&&this.fable.providers&&this.fable.providers.Theme)try{this.fable.providers.Theme.applyTheme(e.ColorTheme)}catch(t){this.log.warn("PictProviderFlowStylePresets: Theme.applyTheme failed for '".concat(e.ColorTheme,"' — ").concat(t.message))}if(e.Renderer&&this._FlowView&&this._FlowView._RendererProvider&&this._FlowView._RendererProvider.setRenderer(e.Renderer),e.EdgeTheme&&this._FlowView&&"function"==typeof this._FlowView.setEdgeTheme)try{this._FlowView.setEdgeTheme(e.EdgeTheme)}catch(t){this.log.warn("PictProviderFlowStylePresets: setEdgeTheme failed for '".concat(e.EdgeTheme,"' — ").concat(t.message))}return"number"==typeof e.NoiseLevel&&this._FlowView&&this._FlowView._RendererProvider&&this._FlowView._RendererProvider.setNoiseLevel(e.NoiseLevel),this._ActivePresetHash=t,this.log.trace("PictProviderFlowStylePresets: applied preset '".concat(t,"'")),!0}},{key:"markCustomized",value:function(){this._ActivePresetHash=null}}])}(n);e.exports=i,e.exports.default_configuration=r},{"fable-serviceproviderbase":26}],60:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={ProviderIdentifier:"PictProviderFlowTheme"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},r,o),n])).serviceType="PictProviderFlowTheme",i._FlowView=o&&o.FlowView?o.FlowView:null,i}return _inherits(e,t),_createClass2(e,[{key:"_renderer",value:function(){return this._FlowView&&this._FlowView._RendererProvider||null}},{key:"_presets",value:function(){return this._FlowView&&this._FlowView._StylePresetsProvider||null}},{key:"getActiveTheme",value:function(){var t=this._renderer(),e=this._presets(),o=e?e.getActivePresetHash():null,n=t?t.getActiveRenderer():{};return{Key:o||n.Key||"modern",Label:n.Label||"Modern",NodeBodyMode:n.NodeBodyMode,BracketConfig:n.BracketConfig,NoiseConfig:n.NoiseConfig,ConnectionConfig:n.ConnectionConfig,ShapeOverrides:n.ShapeOverrides}}},{key:"getActiveThemeKey",value:function(){var t=this._presets(),e=t?t.getActivePresetHash():null;if(e)return e;var o=this._renderer();return o?o.getActiveRendererKey():"modern"}},{key:"setTheme",value:function(t){var e=this._presets();return e?e.applyPreset(t):(this.log.warn("PictProviderFlowTheme: setTheme() called but StylePresets provider not available"),!1)}},{key:"registerTheme",value:function(t,e){var o=this._presets();if(o&&t&&e){var n=Object.assign({},e,{Hash:t});o.register(n)}else this.log.warn("PictProviderFlowTheme: registerTheme requires StylePresets provider, a key, and a definition")}},{key:"getThemeKeys",value:function(){var t=this._presets();return t?t.getPresetHashes():[]}},{key:"getNoiseLevel",value:function(){var t=this._renderer();return t?t.getNoiseLevel():0}},{key:"setNoiseLevel",value:function(t){var e=this._renderer();e&&e.setNoiseLevel(t)}},{key:"getNodeNoiseAmplitude",value:function(){var t=this._renderer();return t?t.getNodeNoiseAmplitude():0}},{key:"processPathString",value:function(t,e){var o=this._renderer();return o?o.processPathString(t,e):t}}])}(n);e.exports=i,e.exports.default_configuration=r},{"fable-serviceproviderbase":26}],61:[function(t,e,o){e.exports={Name:"Bezier",Label:"Bezier (smooth)",Description:"Smooth cubic curves with side-aware departures.",GeneratePath:function(t){var e=t.Helpers,o=t.Source,n=t.Target,r=t.Connection&&t.Connection.Data||{};if(r.HandleCustomized){var i=e.getBezierHandles(r);if(i.length>0)return e.generateMultiBezier(o,n,i)}return e.generateBezier(o,n)},DefaultParameters:{},ParameterSchema:{}}},{}],62:[function(t,e,o){e.exports={Name:"Orthogonal",Label:"Orthogonal (right-angle)",Description:"Right-angle routing — reads well for DAGs and grids.",GeneratePath:function(t){var e=t.Helpers,o=t.Source,n=t.Target,r=t.Connection&&t.Connection.Data||{},i=null;return r.HandleCustomized&&null!=r.OrthoCorner1X&&(i={corner1:{x:r.OrthoCorner1X,y:r.OrthoCorner1Y},corner2:{x:r.OrthoCorner2X,y:r.OrthoCorner2Y}}),e.generateOrthogonal(o,n,i,r.OrthoMidOffset||0)},DefaultParameters:{},ParameterSchema:{}}},{}],63:[function(t,e,o){var n=t("../layouts/Layout-Coerce.js");e.exports={Name:"OrthogonalSnap",Label:"Orthogonal (snap to grid)",Description:"Right-angle routing; snaps node positions to a grid for cleaner corner alignment. Demonstrates an edge theme that adjusts node placement.",GeneratePath:function(t){var e=t.Helpers,o=t.Source,n=t.Target,r=t.Connection&&t.Connection.Data||{},i=null;return r.HandleCustomized&&null!=r.OrthoCorner1X&&(i={corner1:{x:r.OrthoCorner1X,y:r.OrthoCorner1Y},corner2:{x:r.OrthoCorner2X,y:r.OrthoCorner2Y}}),e.generateOrthogonal(o,n,i,r.OrthoMidOffset||0)},AdjustLayout:function(t,e,o){var r=n.toFloat((o||{}).GridSize,20);if(!(r<=0))for(var i=0;i<t.length;i++){var a=t[i];"number"==typeof a.X&&"number"==typeof a.Y&&(a.X=Math.round(a.X/r)*r,a.Y=Math.round(a.Y/r)*r)}},DefaultParameters:{GridSize:20},ParameterSchema:{GridSize:{Type:"PreciseNumber",Label:"Grid size",Default:20,Min:1,Max:200}}}},{"../layouts/Layout-Coerce.js":70}],64:[function(t,e,o){var n=t("./Edge-PerimeterMath.js");e.exports={Name:"Perimeter-Linear",Label:"Perimeter (linear)",Description:"Each connection exits the node at the perimeter, then runs as a straight line to the other end.",GeneratePath:function(t){var e=t.Source,o=t.Target;return"M ".concat(e.x," ").concat(e.y," L ").concat(o.x," ").concat(o.y)},ResolveAttachment:function(t){return n.resolvePerimeterAttachment(t)},DefaultParameters:{},ParameterSchema:{}}},{"./Edge-PerimeterMath.js":67}],65:[function(t,e,o){var n=t("./Edge-PerimeterMath.js");e.exports={Name:"Perimeter-Orthogonal",Label:"Perimeter (orthogonal)",Description:"Each connection exits the node at the perimeter, then routes via right-angle segments to the other end.",GeneratePath:function(t){var e=t.Connection&&t.Connection.Data||{},o=null;return e.HandleCustomized&&null!=e.OrthoCorner1X&&(o={corner1:{x:e.OrthoCorner1X,y:e.OrthoCorner1Y},corner2:{x:e.OrthoCorner2X,y:e.OrthoCorner2Y}}),t.Helpers.generateOrthogonal(t.Source,t.Target,o,e.OrthoMidOffset||0)},ResolveAttachment:function(t){return n.resolvePerimeterAttachment(t)},DefaultParameters:{},ParameterSchema:{}}},{"./Edge-PerimeterMath.js":67}],66:[function(t,e,o){var n=t("./Edge-PerimeterMath.js");e.exports={Name:"Perimeter",Label:"Perimeter (bezier)",Description:"Each connection exits the node at the perimeter point closest to its target, with smooth bezier curves. Fixes star/hub topologies where many lines share one port.",GeneratePath:function(t){var e=t.Helpers,o=t.Connection&&t.Connection.Data||{};if(o.HandleCustomized){var n=e.getBezierHandles(o);if(n.length>0)return e.generateMultiBezier(t.Source,t.Target,n)}return e.generateBezier(t.Source,t.Target)},ResolveAttachment:function(t){return n.resolvePerimeterAttachment(t)},DefaultParameters:{},ParameterSchema:{}}},{"./Edge-PerimeterMath.js":67}],67:[function(t,e,o){e.exports={resolvePerimeterAttachment:function(t){var e=t.Node;if(!e||"number"!=typeof e.X||"number"!=typeof e.Y)return null;var o,n,r=e.Width||180,i=e.Height||80,a=e.X+r/2,s=e.Y+i/2;if(t.OtherNode&&"number"==typeof t.OtherNode.X){var l=t.OtherNode.Width||180,c=t.OtherNode.Height||80;o=t.OtherNode.X+l/2,n=t.OtherNode.Y+c/2}else{if(!t.OtherDefaultPosition)return null;o=t.OtherDefaultPosition.x,n=t.OtherDefaultPosition.y}var p=o-a,u=n-s;if(0===p&&0===u)return t.DefaultPosition||null;var d,h,f=r/2,m=i/2,v=p>0?f/p:p<0?-f/p:1/0,g=u>0?m/u:u<0?-m/u:1/0;return v<g?(d=v,h=p>0?"right":"left"):(d=g,h=u>0?"bottom":"top"),{x:a+d*p,y:s+d*u,side:h}}}},{}],68:[function(t,e,o){e.exports={Name:"Straight",Label:"Straight line",Description:"Plain straight line between ports.",GeneratePath:function(t){var e=t.Source,o=t.Target;return"M ".concat(e.x," ").concat(e.y," L ").concat(o.x," ").concat(o.y)},DefaultParameters:{},ParameterSchema:{}}},{}],69:[function(t,e,o){var n=t("./Layout-Coerce.js");e.exports={Name:"Circular",Label:"Circular",Description:"Concentric rings; uses connections for ring assignment when available.",DefaultEdgeTheme:"Perimeter",Apply:function(t,e,o){if(t&&0!==t.length){for(var r=o||{},i=n.toFloat(r.Spacing,1),a=n.toFloat(r.CenterX,1e3),s=n.toFloat(r.CenterY,750),l=n.toFloat(r.RingSpacing,220)*i,c=n.toFloat(r.InnerRadius,0)*i,p=n.toFloat(r.StartAngle,-90),u="ccw"===r.Direction?"ccw":"cw",d=Array.isArray(e)?e:[],h={},f={},m={},v=0;v<t.length;v++)m[t[v].Hash]=t[v],h[t[v].Hash]=0,f[t[v].Hash]=[];for(var g=0;g<d.length;g++){var w=d[g];h.hasOwnProperty(w.TargetNodeHash)&&h[w.TargetNodeHash]++,f.hasOwnProperty(w.SourceNodeHash)&&f[w.SourceNodeHash].push(w.TargetNodeHash)}for(var y=[],b=0;b<t.length;b++)0===h[t[b].Hash]&&y.push(t[b].Hash);var D=[];if(0===d.length||0===y.length)D.push(t.map(function(t){return t.Hash}));else{for(var P={},T=y.slice();T.length>0;){for(var S=[],F=[],C=0;C<T.length;C++){var x=T[C];if(!P[x]){P[x]=!0,S.push(x);for(var _=f[x]||[],A=0;A<_.length;A++)P[_[A]]||F.push(_[A])}}S.length>0&&D.push(S),T=F}for(var I=[],k=0;k<t.length;k++)P[t[k].Hash]||I.push(t[k].Hash);I.length>0&&D.push(I)}for(var H="cw"===u?1:-1,R=p*Math.PI/180,M=0;M<D.length;M++){var V=D[M],E=c+M*l;if(1!==V.length||0!==M||0!==c)for(var L=2*Math.PI/V.length,N=0;N<V.length;N++){var O=m[V[N]];if(O){var G=R+H*N*L,B=O.Width||180,j=O.Height||80;O.X=a+Math.cos(G)*E-B/2,O.Y=s+Math.sin(G)*E-j/2}}else{var z=m[V[0]];z&&(z.X=a-(z.Width||180)/2,z.Y=s-(z.Height||80)/2)}}}},DefaultParameters:{Spacing:1,CenterX:1e3,CenterY:750,RingSpacing:220,InnerRadius:0,StartAngle:-90,Direction:"cw"},ParameterSchema:{Spacing:{Type:"PreciseNumber",Label:"Spacing (multiplier)",Default:1,Min:.1,Max:5},CenterX:{Type:"PreciseNumber",Label:"Center X",Default:1e3,Min:-1e4,Max:1e4},CenterY:{Type:"PreciseNumber",Label:"Center Y",Default:750,Min:-1e4,Max:1e4},RingSpacing:{Type:"PreciseNumber",Label:"Ring spacing",Default:220,Min:1,Max:5e3},InnerRadius:{Type:"PreciseNumber",Label:"Inner radius",Default:0,Min:0,Max:5e3},StartAngle:{Type:"PreciseNumber",Label:"Start angle (deg)",Default:-90,Min:-360,Max:360},Direction:{Type:"enum",Label:"Direction",Default:"cw",Options:["cw","ccw"]}},ParameterManifest:{Scope:"PictFlowLayout-Circular",Sections:[{Name:"Circular Parameters",Hash:"PFLCircularSection",Groups:[{Name:"Defaults",Hash:"PFLCircularGroup"}]}],Descriptors:{"PictFlowLayoutEditor.Parameters.Spacing":{Name:"Spacing (multiplier)",Hash:"Spacing",DataType:"PreciseNumber",Default:1,PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:0,Width:12,Min:.1,Max:5}},"PictFlowLayoutEditor.Parameters.CenterX":{Name:"Center X",Hash:"CenterX",DataType:"PreciseNumber",Default:1e3,PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:1,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.CenterY":{Name:"Center Y",Hash:"CenterY",DataType:"PreciseNumber",Default:750,PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:1,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.RingSpacing":{Name:"Ring spacing",Hash:"RingSpacing",DataType:"PreciseNumber",Default:220,PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:2,Width:6,Min:1,Max:5e3}},"PictFlowLayoutEditor.Parameters.InnerRadius":{Name:"Inner radius",Hash:"InnerRadius",DataType:"PreciseNumber",Default:0,PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:2,Width:6,Min:0,Max:5e3}},"PictFlowLayoutEditor.Parameters.StartAngle":{Name:"Start angle (deg)",Hash:"StartAngle",DataType:"PreciseNumber",Default:-90,PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:3,Width:6,Min:-360,Max:360}},"PictFlowLayoutEditor.Parameters.Direction":{Name:"Direction",Hash:"Direction",DataType:"String",Default:"cw",PictForm:{Section:"PFLCircularSection",Group:"PFLCircularGroup",Row:3,Width:6,InputType:"Option",SelectOptions:[{Value:"cw",Name:"Clockwise"},{Value:"ccw",Name:"Counter-clockwise"}]}}}}}},{"./Layout-Coerce.js":70}],70:[function(t,e,o){e.exports={toFloat:function(t,e){if("number"==typeof t&&!isNaN(t))return t;if("string"==typeof t&&""!==t){var o=parseFloat(t);if(!isNaN(o))return o}return e},toInt:function(t,e){if("number"==typeof t&&!isNaN(t))return Math.floor(t);if("string"==typeof t&&""!==t){var o=parseInt(t,10);if(!isNaN(o))return o}return e}}},{}],71:[function(t,e,o){var n=t("./Layout-Coerce.js");e.exports={Name:"Columnar",Label:"Columnar (N Columns)",Description:"Explicit N columns; flow row-first or column-first.",DefaultEdgeTheme:"Orthogonal",Apply:function(t,e,o){if(t&&0!==t.length){for(var r=o||{},i=n.toFloat(r.Spacing,1),a=Math.max(1,n.toInt(r.Columns,3)),s=n.toFloat(r.ColumnSpacing,40)*i,l=n.toFloat(r.RowSpacing,40)*i,c=n.toFloat(r.StartX,100),p=n.toFloat(r.StartY,100),u="column"===r.FillOrder?"column":"row",d=r.OrderBy||"index",h=0,f=0,m=0;m<t.length;m++)h=Math.max(h,t[m].Width||180),f=Math.max(f,t[m].Height||80);var v=h+s,g=f+l,w=t.slice();"hash"===d?w.sort(function(t,e){return String(t.Hash).localeCompare(String(e.Hash))}):"title"===d&&w.sort(function(t,e){return String(t.Title||t.Hash).localeCompare(String(e.Title||e.Hash))});for(var y=Math.ceil(w.length/a),b=0;b<w.length;b++){var D=void 0,P=void 0;"column"===u?(P=Math.floor(b/y),D=b%y):(D=Math.floor(b/a),P=b%a),w[b].X=c+P*v,w[b].Y=p+D*g}}},DefaultParameters:{Spacing:1,Columns:3,ColumnSpacing:40,RowSpacing:40,StartX:100,StartY:100,FillOrder:"row",OrderBy:"index"},ParameterSchema:{Spacing:{Type:"PreciseNumber",Label:"Spacing (multiplier)",Default:1,Min:.1,Max:5},Columns:{Type:"Number",Label:"Columns",Default:3,Min:1,Max:50},ColumnSpacing:{Type:"PreciseNumber",Label:"Column spacing",Default:40,Min:0,Max:1e3},RowSpacing:{Type:"PreciseNumber",Label:"Row spacing",Default:40,Min:0,Max:1e3},StartX:{Type:"PreciseNumber",Label:"Start X",Default:100,Min:-1e4,Max:1e4},StartY:{Type:"PreciseNumber",Label:"Start Y",Default:100,Min:-1e4,Max:1e4},FillOrder:{Type:"enum",Label:"Fill order",Default:"row",Options:["row","column"]},OrderBy:{Type:"enum",Label:"Order by",Default:"index",Options:["index","hash","title"]}},ParameterManifest:{Scope:"PictFlowLayout-Columnar",Sections:[{Name:"Columnar Parameters",Hash:"PFLColumnarSection",Groups:[{Name:"Defaults",Hash:"PFLColumnarGroup"}]}],Descriptors:{"PictFlowLayoutEditor.Parameters.Spacing":{Name:"Spacing (multiplier)",Hash:"Spacing",DataType:"PreciseNumber",Default:1,PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:0,Width:12,Min:.1,Max:5}},"PictFlowLayoutEditor.Parameters.Columns":{Name:"Columns",Hash:"Columns",DataType:"Number",Default:3,PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:1,Width:6,Min:1,Max:50}},"PictFlowLayoutEditor.Parameters.FillOrder":{Name:"Fill order",Hash:"FillOrder",DataType:"String",Default:"row",PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:1,Width:6,InputType:"Option",SelectOptions:[{Value:"row",Name:"Row-first"},{Value:"column",Name:"Column-first"}]}},"PictFlowLayoutEditor.Parameters.ColumnSpacing":{Name:"Column spacing",Hash:"ColumnSpacing",DataType:"PreciseNumber",Default:40,PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:2,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.RowSpacing":{Name:"Row spacing",Hash:"RowSpacing",DataType:"PreciseNumber",Default:40,PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:2,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.StartX":{Name:"Start X",Hash:"StartX",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:3,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.StartY":{Name:"Start Y",Hash:"StartY",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:3,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.OrderBy":{Name:"Order by",Hash:"OrderBy",DataType:"String",Default:"index",PictForm:{Section:"PFLColumnarSection",Group:"PFLColumnarGroup",Row:4,Width:12,InputType:"Option",SelectOptions:[{Value:"index",Name:"Index"},{Value:"hash",Name:"Hash"},{Value:"title",Name:"Title"}]}}}}}},{"./Layout-Coerce.js":70}],72:[function(t,e,o){e.exports={Name:"Custom",Label:"Custom (Hand-placed)",Description:"Preserve hand-placed positions. No automatic arrangement.",DefaultEdgeTheme:"Bezier",Apply:function(t,e,o){},DefaultParameters:{},ParameterSchema:{}}},{}],73:[function(t,e,o){var n=t("./Layout-Coerce.js");e.exports={Name:"ForcedFromCenter",Label:"Forced from Center",Description:"Spring + repulsion simulation pulling toward a center point.",DefaultEdgeTheme:"Bezier",Apply:function(t,e,o){if(t&&0!==t.length){for(var r,i=o||{},a=n.toFloat(i.Spacing,1),s=n.toInt(i.Iterations,200),l=n.toFloat(i.CenterX,1e3),c=n.toFloat(i.CenterY,750),p=n.toFloat(i.SpringLength,200)*a,u=n.toFloat(i.SpringStiffness,.05),d=n.toFloat(i.Repulsion,8e3),h=n.toFloat(i.CenterAttraction,.01),f=n.toFloat(i.CoolingFactor,.95),m=n.toFloat(i.InitialTemperature,100),v=n.toInt(i.Seed,42),g=!!i.PreservePositions,w=n.toFloat(i.InitialSpread,400),y=Array.isArray(e)?e:[],b=(r=v>>>0>>>0,function(){var t=r=r+1831565813>>>0;return t=Math.imul(t^t>>>15,1|t),(((t^=t+Math.imul(t^t>>>7,61|t))^t>>>14)>>>0)/4294967296}),D=0;D<t.length;D++){var P=t[D],T="number"==typeof P.X&&"number"==typeof P.Y;g&&T||(P.X=l+(b()-.5)*w,P.Y=c+(b()-.5)*w)}for(var S={},F=0;F<t.length;F++)S[t[F].Hash]=t[F];for(var C=m,x=0;x<s;x++){for(var _=new Array(t.length).fill(0),A=new Array(t.length).fill(0),I=0;I<t.length;I++)for(var k=t[I],H=I+1;H<t.length;H++){var R=t[H],M=k.X-R.X,V=k.Y-R.Y,E=M*M+V*V;E<1&&(E=1);var L=Math.sqrt(E),N=d/E,O=M/L*N,G=V/L*N;_[I]+=O,A[I]+=G,_[H]-=O,A[H]-=G}for(var B=0;B<y.length;B++){var j=y[B],z=S[j.SourceNodeHash],U=S[j.TargetNodeHash];if(z&&U){var W=t.indexOf(z),Y=t.indexOf(U);if(!(W<0||Y<0)){var q=U.X-z.X,X=U.Y-z.Y,J=Math.sqrt(q*q+X*X);J<1e-4&&(J=1e-4);var K=u*(J-p),$=q/J*K,Z=X/J*K;_[W]+=$,A[W]+=Z,_[Y]-=$,A[Y]-=Z}}}for(var Q=0;Q<t.length;Q++){var tt=t[Q];_[Q]+=(l-tt.X)*h,A[Q]+=(c-tt.Y)*h}for(var et=0;et<t.length;et++){var ot=t[et],nt=_[et],rt=A[et],it=Math.sqrt(nt*nt+rt*rt);it>C&&(nt=nt/it*C,rt=rt/it*C),ot.X+=nt,ot.Y+=rt}C*=f}for(var at=0;at<t.length;at++)t[at].X=Math.round(t[at].X),t[at].Y=Math.round(t[at].Y)}},DefaultParameters:{Spacing:1,Iterations:200,CenterX:1e3,CenterY:750,SpringLength:200,SpringStiffness:.05,Repulsion:8e3,CenterAttraction:.01,CoolingFactor:.95,InitialTemperature:100,Seed:42,PreservePositions:!1,InitialSpread:400},ParameterSchema:{Spacing:{Type:"PreciseNumber",Label:"Spacing (multiplier)",Default:1,Min:.1,Max:5},Iterations:{Type:"Number",Label:"Iterations",Default:200,Min:1,Max:2e3},CenterX:{Type:"PreciseNumber",Label:"Center X",Default:1e3,Min:-1e4,Max:1e4},CenterY:{Type:"PreciseNumber",Label:"Center Y",Default:750,Min:-1e4,Max:1e4},SpringLength:{Type:"PreciseNumber",Label:"Spring length",Default:200,Min:1,Max:2e3},SpringStiffness:{Type:"PreciseNumber",Label:"Spring stiffness",Default:.05,Min:0,Max:1},Repulsion:{Type:"PreciseNumber",Label:"Repulsion",Default:8e3,Min:0,Max:1e5},CenterAttraction:{Type:"PreciseNumber",Label:"Center attraction",Default:.01,Min:0,Max:1},CoolingFactor:{Type:"PreciseNumber",Label:"Cooling factor",Default:.95,Min:.5,Max:1},InitialTemperature:{Type:"PreciseNumber",Label:"Initial temperature",Default:100,Min:1,Max:1e3},Seed:{Type:"Number",Label:"Random seed",Default:42,Min:0,Max:2147483647},PreservePositions:{Type:"boolean",Label:"Preserve positions",Default:!1},InitialSpread:{Type:"PreciseNumber",Label:"Initial spread",Default:400,Min:0,Max:5e3}},ParameterManifest:{Scope:"PictFlowLayout-ForcedFromCenter",Sections:[{Name:"Center",Hash:"PFLCenterSection",Groups:[{Name:"Defaults",Hash:"PFLCenterGroup"}]},{Name:"Forces",Hash:"PFLForcesSection",Groups:[{Name:"Defaults",Hash:"PFLForcesGroup"}]},{Name:"Simulation",Hash:"PFLSimSection",Groups:[{Name:"Defaults",Hash:"PFLSimGroup"}]},{Name:"Initialization",Hash:"PFLInitSection",Groups:[{Name:"Defaults",Hash:"PFLInitGroup"}]}],Descriptors:{"PictFlowLayoutEditor.Parameters.Spacing":{Name:"Spacing (multiplier)",Hash:"Spacing",DataType:"PreciseNumber",Default:1,PictForm:{Section:"PFLCenterSection",Group:"PFLCenterGroup",Row:0,Width:12,Min:.1,Max:5}},"PictFlowLayoutEditor.Parameters.CenterX":{Name:"Center X",Hash:"CenterX",DataType:"PreciseNumber",Default:1e3,PictForm:{Section:"PFLCenterSection",Group:"PFLCenterGroup",Row:1,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.CenterY":{Name:"Center Y",Hash:"CenterY",DataType:"PreciseNumber",Default:750,PictForm:{Section:"PFLCenterSection",Group:"PFLCenterGroup",Row:1,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.CenterAttraction":{Name:"Center attraction",Hash:"CenterAttraction",DataType:"PreciseNumber",Default:.01,PictForm:{Section:"PFLCenterSection",Group:"PFLCenterGroup",Row:2,Width:12,Min:0,Max:1}},"PictFlowLayoutEditor.Parameters.SpringLength":{Name:"Spring length",Hash:"SpringLength",DataType:"PreciseNumber",Default:200,PictForm:{Section:"PFLForcesSection",Group:"PFLForcesGroup",Row:1,Width:6,Min:1,Max:2e3}},"PictFlowLayoutEditor.Parameters.SpringStiffness":{Name:"Spring stiffness",Hash:"SpringStiffness",DataType:"PreciseNumber",Default:.05,PictForm:{Section:"PFLForcesSection",Group:"PFLForcesGroup",Row:1,Width:6,Min:0,Max:1}},"PictFlowLayoutEditor.Parameters.Repulsion":{Name:"Repulsion",Hash:"Repulsion",DataType:"PreciseNumber",Default:8e3,PictForm:{Section:"PFLForcesSection",Group:"PFLForcesGroup",Row:2,Width:12,Min:0,Max:1e5}},"PictFlowLayoutEditor.Parameters.Iterations":{Name:"Iterations",Hash:"Iterations",DataType:"Number",Default:200,PictForm:{Section:"PFLSimSection",Group:"PFLSimGroup",Row:1,Width:6,Min:1,Max:2e3}},"PictFlowLayoutEditor.Parameters.CoolingFactor":{Name:"Cooling factor",Hash:"CoolingFactor",DataType:"PreciseNumber",Default:.95,PictForm:{Section:"PFLSimSection",Group:"PFLSimGroup",Row:1,Width:6,Min:.5,Max:1}},"PictFlowLayoutEditor.Parameters.InitialTemperature":{Name:"Initial temperature",Hash:"InitialTemperature",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLSimSection",Group:"PFLSimGroup",Row:2,Width:12,Min:1,Max:1e3}},"PictFlowLayoutEditor.Parameters.Seed":{Name:"Random seed",Hash:"Seed",DataType:"Number",Default:42,PictForm:{Section:"PFLInitSection",Group:"PFLInitGroup",Row:1,Width:6,Min:0,Max:2147483647}},"PictFlowLayoutEditor.Parameters.InitialSpread":{Name:"Initial spread",Hash:"InitialSpread",DataType:"PreciseNumber",Default:400,PictForm:{Section:"PFLInitSection",Group:"PFLInitGroup",Row:1,Width:6,Min:0,Max:5e3}},"PictFlowLayoutEditor.Parameters.PreservePositions":{Name:"Preserve existing positions",Hash:"PreservePositions",DataType:"Boolean",Default:!1,PictForm:{Section:"PFLInitSection",Group:"PFLInitGroup",Row:2,Width:12,InputType:"Boolean"}}}}}},{"./Layout-Coerce.js":70}],74:[function(t,e,o){var n=t("./Layout-Coerce.js");e.exports={Name:"Grid",Label:"Grid",Description:"Auto-arrange in a roughly-square grid.",DefaultEdgeTheme:"Orthogonal",Apply:function(t,e,o){if(t&&0!==t.length){var r,i=o||{},a=n.toFloat(i.Spacing,1),s=i.Columns,l=i.CellWidth,c=i.CellHeight,p=n.toFloat(i.HorizontalMargin,40)*a,u=n.toFloat(i.VerticalMargin,40)*a,d=n.toFloat(i.StartX,100),h=n.toFloat(i.StartY,100),f=i.OrderBy||"index";r="auto"===s||null==s||""===s?Math.max(1,Math.ceil(Math.sqrt(t.length))):Math.max(1,n.toInt(s,Math.max(1,Math.ceil(Math.sqrt(t.length)))));for(var m=0,v=0,g=0;g<t.length;g++)m=Math.max(m,t[g].Width||180),v=Math.max(v,t[g].Height||80);var w=null==l?m+p:n.toFloat(l,m+p),y=null==c?v+u:n.toFloat(c,v+u),b=t.slice();"hash"===f?b.sort(function(t,e){return String(t.Hash).localeCompare(String(e.Hash))}):"title"===f&&b.sort(function(t,e){return String(t.Title||t.Hash).localeCompare(String(e.Title||e.Hash))});for(var D=0;D<b.length;D++){var P=Math.floor(D/r),T=D%r;b[D].X=d+T*w,b[D].Y=h+P*y}}},DefaultParameters:{Spacing:1,Columns:"auto",HorizontalMargin:40,VerticalMargin:40,StartX:100,StartY:100,OrderBy:"index"},ParameterSchema:{Spacing:{Type:"PreciseNumber",Label:"Spacing (multiplier)",Default:1,Min:.1,Max:5},Columns:{Type:"string",Label:"Columns",Default:"auto",Description:'"auto" or an integer'},CellWidth:{Type:"PreciseNumber",Label:"Cell width",Description:"Defaults to largest node width + horizontal margin",Min:1,Max:5e3},CellHeight:{Type:"PreciseNumber",Label:"Cell height",Description:"Defaults to largest node height + vertical margin",Min:1,Max:5e3},HorizontalMargin:{Type:"PreciseNumber",Label:"Horizontal margin",Default:40,Min:0,Max:1e3},VerticalMargin:{Type:"PreciseNumber",Label:"Vertical margin",Default:40,Min:0,Max:1e3},StartX:{Type:"PreciseNumber",Label:"Start X",Default:100,Min:-1e4,Max:1e4},StartY:{Type:"PreciseNumber",Label:"Start Y",Default:100,Min:-1e4,Max:1e4},OrderBy:{Type:"enum",Label:"Order by",Default:"index",Options:["index","hash","title"]}},ParameterManifest:{Scope:"PictFlowLayout-Grid",Sections:[{Name:"Grid Parameters",Hash:"PFLGridSection",Groups:[{Name:"Defaults",Hash:"PFLGridGroup"}]}],Descriptors:{"PictFlowLayoutEditor.Parameters.Spacing":{Name:"Spacing (multiplier)",Hash:"Spacing",DataType:"PreciseNumber",Default:1,PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:0,Width:12,Min:.1,Max:5}},"PictFlowLayoutEditor.Parameters.Columns":{Name:'Columns ("auto" or integer)',Hash:"Columns",DataType:"String",Default:"auto",PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:1,Width:6}},"PictFlowLayoutEditor.Parameters.OrderBy":{Name:"Order by",Hash:"OrderBy",DataType:"String",Default:"index",PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:1,Width:6,InputType:"Option",SelectOptions:[{Value:"index",Name:"Index"},{Value:"hash",Name:"Hash"},{Value:"title",Name:"Title"}]}},"PictFlowLayoutEditor.Parameters.CellWidth":{Name:"Cell width (auto = blank)",Hash:"CellWidth",DataType:"PreciseNumber",PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:2,Width:6,Min:1,Max:5e3}},"PictFlowLayoutEditor.Parameters.CellHeight":{Name:"Cell height (auto = blank)",Hash:"CellHeight",DataType:"PreciseNumber",PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:2,Width:6,Min:1,Max:5e3}},"PictFlowLayoutEditor.Parameters.HorizontalMargin":{Name:"Horizontal margin",Hash:"HorizontalMargin",DataType:"PreciseNumber",Default:40,PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:3,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.VerticalMargin":{Name:"Vertical margin",Hash:"VerticalMargin",DataType:"PreciseNumber",Default:40,PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:3,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.StartX":{Name:"Start X",Hash:"StartX",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:4,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.StartY":{Name:"Start Y",Hash:"StartY",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLGridSection",Group:"PFLGridGroup",Row:4,Width:6,Min:-1e4,Max:1e4}}}}}},{"./Layout-Coerce.js":70}],75:[function(t,e,o){var n=t("./Layout-Coerce.js");e.exports={Name:"Layered",Label:"Layered (Topological)",Description:"Left-to-right layers based on connection topology.",DefaultEdgeTheme:"Orthogonal",Apply:function(t,e,o){if(t&&0!==t.length){for(var r=o||{},i=n.toFloat(r.Spacing,1),a=n.toFloat(r.HorizontalSpacing,250)*i,s=n.toFloat(r.VerticalSpacing,120)*i,l=n.toFloat(r.StartX,100),c=n.toFloat(r.StartY,100),p=Array.isArray(e)?e:[],u={},d={},h={},f=0;f<t.length;f++){var m=t[f];u[m.Hash]=m,d[m.Hash]=0,h[m.Hash]=[]}for(var v=0;v<p.length;v++){var g=p[v];d.hasOwnProperty(g.TargetNodeHash)&&d[g.TargetNodeHash]++,h.hasOwnProperty(g.SourceNodeHash)&&h[g.SourceNodeHash].push(g.TargetNodeHash)}var w=[],y=[],b={};for(var D in d)0===d[D]&&y.push(D);for(;y.length>0;){for(var P=[],T=[],S=0;S<y.length;S++){var F=y[S];if(!b[F]){b[F]=!0,P.push(F);for(var C=h[F]||[],x=0;x<C.length;x++){var _=C[x];d[_]--,d[_]<=0&&!b[_]&&T.push(_)}}}P.length>0&&w.push(P),y=T}for(var A=[],I=0;I<t.length;I++)b[t[I].Hash]||A.push(t[I].Hash);A.length>0&&w.push(A);for(var k=l,H=0;H<w.length;H++){for(var R=w[H],M=0,V=c,E=0;E<R.length;E++){var L=u[R[E]];if(L){L.X=k,L.Y=V;var N=L.Width||180,O=L.Height||80;M=Math.max(M,N),V+=O+s}}k+=M+a}}},DefaultParameters:{Spacing:1,HorizontalSpacing:250,VerticalSpacing:120,StartX:100,StartY:100},ParameterSchema:{Spacing:{Type:"PreciseNumber",Label:"Spacing (multiplier)",Default:1,Min:.1,Max:5},HorizontalSpacing:{Type:"PreciseNumber",Label:"Horizontal spacing",Default:250,Min:0,Max:1e3},VerticalSpacing:{Type:"PreciseNumber",Label:"Vertical spacing",Default:120,Min:0,Max:1e3},StartX:{Type:"PreciseNumber",Label:"Start X",Default:100,Min:-1e4,Max:1e4},StartY:{Type:"PreciseNumber",Label:"Start Y",Default:100,Min:-1e4,Max:1e4}},ParameterManifest:{Scope:"PictFlowLayout-Layered",Sections:[{Name:"Layered Parameters",Hash:"PictFlowLayoutSection",Groups:[{Name:"Defaults",Hash:"PictFlowLayoutGroup"}]}],Descriptors:{"PictFlowLayoutEditor.Parameters.Spacing":{Name:"Spacing (multiplier)",Hash:"Spacing",DataType:"PreciseNumber",Default:1,PictForm:{Section:"PictFlowLayoutSection",Group:"PictFlowLayoutGroup",Row:0,Width:12,Min:.1,Max:5}},"PictFlowLayoutEditor.Parameters.HorizontalSpacing":{Name:"Horizontal spacing",Hash:"HorizontalSpacing",DataType:"PreciseNumber",Default:250,PictForm:{Section:"PictFlowLayoutSection",Group:"PictFlowLayoutGroup",Row:1,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.VerticalSpacing":{Name:"Vertical spacing",Hash:"VerticalSpacing",DataType:"PreciseNumber",Default:120,PictForm:{Section:"PictFlowLayoutSection",Group:"PictFlowLayoutGroup",Row:1,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.StartX":{Name:"Start X",Hash:"StartX",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PictFlowLayoutSection",Group:"PictFlowLayoutGroup",Row:2,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.StartY":{Name:"Start Y",Hash:"StartY",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PictFlowLayoutSection",Group:"PictFlowLayoutGroup",Row:2,Width:6,Min:-1e4,Max:1e4}}}}}},{"./Layout-Coerce.js":70}],76:[function(t,e,o){var n=t("./Layout-Coerce.js");e.exports={Name:"Tabular",Label:"Tabular (Top-to-Bottom)",Description:"Single column, top-to-bottom.",DefaultEdgeTheme:"Orthogonal",Apply:function(t,e,o){if(t&&0!==t.length){var r=o||{},i=n.toFloat(r.Spacing,1),a=n.toFloat(r.StartX,100),s=n.toFloat(r.StartY,100),l=n.toFloat(r.VerticalSpacing,40)*i,c=r.RowHeight,p=r.OrderBy||"index",u=t.slice();"hash"===p?u.sort(function(t,e){return String(t.Hash).localeCompare(String(e.Hash))}):"title"===p&&u.sort(function(t,e){return String(t.Title||t.Hash).localeCompare(String(e.Title||e.Hash))});for(var d=s,h=0;h<u.length;h++){var f=u[h];f.X=a,f.Y=d,d+=(null==c?f.Height||80:n.toFloat(c,f.Height||80))+l}}},DefaultParameters:{Spacing:1,StartX:100,StartY:100,VerticalSpacing:40,OrderBy:"index"},ParameterSchema:{Spacing:{Type:"PreciseNumber",Label:"Spacing (multiplier)",Default:1,Min:.1,Max:5},StartX:{Type:"PreciseNumber",Label:"Start X",Default:100,Min:-1e4,Max:1e4},StartY:{Type:"PreciseNumber",Label:"Start Y",Default:100,Min:-1e4,Max:1e4},VerticalSpacing:{Type:"PreciseNumber",Label:"Vertical spacing",Default:40,Min:0,Max:1e3},RowHeight:{Type:"PreciseNumber",Label:"Row height",Description:"Defaults to each node's own height",Min:1,Max:5e3},OrderBy:{Type:"enum",Label:"Order by",Default:"index",Options:["index","hash","title"]}},ParameterManifest:{Scope:"PictFlowLayout-Tabular",Sections:[{Name:"Tabular Parameters",Hash:"PFLTabularSection",Groups:[{Name:"Defaults",Hash:"PFLTabularGroup"}]}],Descriptors:{"PictFlowLayoutEditor.Parameters.Spacing":{Name:"Spacing (multiplier)",Hash:"Spacing",DataType:"PreciseNumber",Default:1,PictForm:{Section:"PFLTabularSection",Group:"PFLTabularGroup",Row:0,Width:12,Min:.1,Max:5}},"PictFlowLayoutEditor.Parameters.StartX":{Name:"Start X",Hash:"StartX",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLTabularSection",Group:"PFLTabularGroup",Row:1,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.StartY":{Name:"Start Y",Hash:"StartY",DataType:"PreciseNumber",Default:100,PictForm:{Section:"PFLTabularSection",Group:"PFLTabularGroup",Row:1,Width:6,Min:-1e4,Max:1e4}},"PictFlowLayoutEditor.Parameters.VerticalSpacing":{Name:"Vertical spacing",Hash:"VerticalSpacing",DataType:"PreciseNumber",Default:40,PictForm:{Section:"PFLTabularSection",Group:"PFLTabularGroup",Row:2,Width:6,Min:0,Max:1e3}},"PictFlowLayoutEditor.Parameters.RowHeight":{Name:"Row height (auto = blank)",Hash:"RowHeight",DataType:"PreciseNumber",PictForm:{Section:"PFLTabularSection",Group:"PFLTabularGroup",Row:2,Width:6,Min:1,Max:5e3}},"PictFlowLayoutEditor.Parameters.OrderBy":{Name:"Order by",Hash:"OrderBy",DataType:"String",Default:"index",PictForm:{Section:"PFLTabularSection",Group:"PFLTabularGroup",Row:3,Width:12,InputType:"Option",SelectOptions:[{Value:"index",Name:"Index"},{Value:"hash",Name:"Hash"},{Value:"title",Name:"Title"}]}}}}}},{"./Layout-Coerce.js":70}],77:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowConnectionHandleManager",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"updateConnectionHandle",value:function(t,e,o,n){if(this._FlowView){var r=this._FlowView.getConnection(t);if(r){if(r.Data||(r.Data={}),r.Data.HandleCustomized=!0,e&&e.startsWith("bezier-handle-")){var i=parseInt(e.replace("bezier-handle-",""),10);return!isNaN(i)&&Array.isArray(r.Data.BezierHandles)&&i<r.Data.BezierHandles.length&&(r.Data.BezierHandles[i].x=o,r.Data.BezierHandles[i].y=n),void this._FlowView._renderSingleConnection(t)}switch(e){case"bezier-midpoint":Array.isArray(r.Data.BezierHandles)&&0!==r.Data.BezierHandles.length?(r.Data.BezierHandles[0].x=o,r.Data.BezierHandles[0].y=n):r.Data.BezierHandles=[{x:o,y:n}],r.Data.BezierHandleX=o,r.Data.BezierHandleY=n;break;case"ortho-corner1":r.Data.OrthoCorner1X=o,r.Data.OrthoCorner1Y=n;break;case"ortho-corner2":r.Data.OrthoCorner2X=o,r.Data.OrthoCorner2Y=n;break;case"ortho-midpoint":var a=this._FlowView.getPortPosition(r.SourceNodeHash,r.SourcePortHash),s=this._FlowView.getPortPosition(r.TargetNodeHash,r.TargetPortHash);if(a&&s){var l=this._FlowView._ConnectionRenderer._computeDirectionalGeometry(a,s),c=l.startDir;if(Math.abs(c.dx)>Math.abs(c.dy)){var p=(l.departX+l.approachX)/2;r.Data.OrthoMidOffset=o-p}else{var u=(l.departY+l.approachY)/2;r.Data.OrthoMidOffset=n-u}}}this._FlowView._renderSingleConnection(t)}}}},{key:"addConnectionHandle",value:function(t,e,o){if(this._FlowView){var n=this._FlowView.getConnection(t);if(n){n.Data||(n.Data={}),Array.isArray(n.Data.BezierHandles)||(n.Data.BezierHandles=[],null!=n.Data.BezierHandleX&&null!=n.Data.BezierHandleY&&n.Data.BezierHandles.push({x:n.Data.BezierHandleX,y:n.Data.BezierHandleY})),n.Data.LineMode="bezier";var r=this._FlowView.getPortPosition(n.SourceNodeHash,n.SourcePortHash),i=this._FlowView.getPortPosition(n.TargetNodeHash,n.TargetPortHash),a=0;r&&i&&this._FlowView._ConnectionRenderer&&(a=this._FlowView._ConnectionRenderer.computeInsertionIndex(n.Data.BezierHandles,{x:e,y:o},r,i)),n.Data.BezierHandles.splice(a,0,{x:e,y:o}),n.Data.HandleCustomized=!0,this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)}}}},{key:"removeConnectionHandle",value:function(t,e){if(this._FlowView){var o=this._FlowView.getConnection(t);o&&o.Data&&Array.isArray(o.Data.BezierHandles)&&(e<0||e>=o.Data.BezierHandles.length||(o.Data.BezierHandles.splice(e,1),0===o.Data.BezierHandles.length&&(o.Data.HandleCustomized=!1,o.Data.BezierHandleX=null,o.Data.BezierHandleY=null),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)))}}},{key:"resetHandlesForNode",value:function(t){if(this._FlowView){for(var e=0;e<this._FlowView._FlowData.Connections.length;e++){var o=this._FlowView._FlowData.Connections[e];o.SourceNodeHash!==t&&o.TargetNodeHash!==t||o.Data&&o.Data.HandleCustomized&&(o.Data.HandleCustomized=!1,o.Data.BezierHandles=[],o.Data.BezierHandleX=null,o.Data.BezierHandleY=null,o.Data.OrthoCorner1X=null,o.Data.OrthoCorner1Y=null,o.Data.OrthoCorner2X=null,o.Data.OrthoCorner2Y=null,o.Data.OrthoMidOffset=0)}this._FlowView._TetherService&&this._FlowView._TetherService.resetHandlesForNode(this._FlowView._FlowData.OpenPanels,t)}}},{key:"resetHandlesForPanel",value:function(t){if(this._FlowView){var e=this._FlowView._FlowData.OpenPanels.find(function(e){return e.Hash===t});e&&this._FlowView._TetherService&&this._FlowView._TetherService.resetHandlePositions(e)}}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],78:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../providers/edges/Edge-PerimeterMath.js"),i={"event-in":"var(--theme-color-status-info, #3498db)","event-out":"var(--theme-color-status-success, #2ecc71)",setting:"var(--theme-color-status-warning, #e67e22)",value:"var(--theme-color-status-warning, #f1c40f)",error:"var(--theme-color-status-error, #e74c3c)"},a=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowConnectionRenderer",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"renderConnection",value:function(t,e,o){if(this._FlowView){var n=this._FlowView.getPortPosition(t.SourceNodeHash,t.SourcePortHash),r=this._FlowView.getPortPosition(t.TargetNodeHash,t.TargetPortHash),i=n,a=r,s=this._resolveAttachmentsViaEdgeTheme(t,n,r);s.source&&(n=s.source),s.target&&(r=s.target);var l=null,c=this._FlowView.getNode(t.SourceNodeHash);if(c&&c.Ports)for(var p=0;p<c.Ports.length;p++)if(c.Ports[p].Hash===t.SourcePortHash){l=c.Ports[p].PortType||null;break}if(n&&r){var u=t.Data||{},d=this._generatePathViaEdgeTheme(t,n,r,u);this._FlowView._ThemeProvider&&(d=this._FlowView._ThemeProvider.processPathString(d,t.Hash));var h=null;if(this._FlowView._ThemeProvider){var f=this._FlowView._ThemeProvider.getActiveTheme();f&&f.ConnectionConfig&&f.ConnectionConfig.StrokeDashArray&&(h=f.ConnectionConfig.StrokeDashArray)}var m,v=this._FlowView.options.ViewIdentifier,g=l?" conn-type-"+l:"";m=o?"flow-arrowhead-selected-"+v:l?"flow-arrowhead-"+l+"-"+v:"flow-arrowhead-"+v;var w=this._FlowView._ConnectorShapesProvider;if(w){var y=w.createConnectionHitAreaElement(d,t.Hash);e.appendChild(y);var b=w.createConnectionPathElement(d,t.Hash,o,v);g&&b.setAttribute("class",(b.getAttribute("class")||"")+g),b.setAttribute("marker-end","url(#"+m+")"),h&&b.setAttribute("stroke-dasharray",h),e.appendChild(b)}else{var D=this._FlowView._SVGHelperProvider.createSVGElement("path");D.setAttribute("class","pict-flow-connection-hitarea"),D.setAttribute("d",d),D.setAttribute("data-connection-hash",t.Hash),D.setAttribute("data-element-type","connection-hitarea"),e.appendChild(D);var P=this._FlowView._SVGHelperProvider.createSVGElement("path");P.setAttribute("class","pict-flow-connection".concat(g," ").concat(o?"selected":"")),P.setAttribute("d",d),P.setAttribute("data-connection-hash",t.Hash),P.setAttribute("data-element-type","connection"),P.setAttribute("marker-end","url(#"+m+")"),h&&P.setAttribute("stroke-dasharray",h),e.appendChild(P)}var T=this._FlowView._EndpointsLayer||e;this._renderEndpointDots(t,T,n,r),this._FlowView._PortHintsLayer&&this._renderPortHints(t,this._FlowView._PortHintsLayer,i,n,a,r),o&&this._renderHandles(t,e,n,r)}}}},{key:"_renderEndpointDots",value:function(t,e,o,n){var r=this._FlowView._ConnectorShapesProvider;if(r){var i=this._FlowView.getNode(t.SourceNodeHash),a=this._FlowView.getNode(t.TargetNodeHash),s=this._findPort(i,t.SourcePortHash),l=this._findPort(a,t.TargetPortHash);if(s&&o){var c=r.createPortElement(s,o,t.SourceNodeHash);c.setAttribute("data-connection-hash",t.Hash),c.setAttribute("data-connection-end","source"),e.appendChild(c)}if(l&&n){var p=r.createPortElement(l,n,t.TargetNodeHash);p.setAttribute("data-connection-hash",t.Hash),p.setAttribute("data-connection-end","target"),e.appendChild(p)}}}},{key:"_renderPortHints",value:function(t,e,o,n,r,i){var a=function(t,e){return!(!t||!e)&&(Math.abs(t.x-e.x)>.5||Math.abs(t.y-e.y)>.5)},s=this._FlowView.getNode(t.SourceNodeHash),l=this._FlowView.getNode(t.TargetNodeHash),c=this._findPort(s,t.SourcePortHash),p=this._findPort(l,t.TargetPortHash);if(o&&a(o,n)){var u=this._chipEdgeAimingAt(c,o,n);e.appendChild(this._buildPortHintPath(u,n,t.SourceNodeHash,t.SourcePortHash,t.Hash,"source",this._hintColor(c,l)))}if(r&&a(r,i)){var d=this._chipEdgeAimingAt(p,r,i);e.appendChild(this._buildPortHintPath(d,i,t.TargetNodeHash,t.TargetPortHash,t.Hash,"target",this._hintColor(p,s)))}}},{key:"_chipBoundsFor",value:function(t,e){if(!t||!e)return null;var o=e.side||t.Side||("input"===t.Direction?"left":"right"),n=t.Label||"";if(""===n)return null;var r,i,a=10+5*n.length+5+2;if(0===o.indexOf("left"))r=e.x+a/2+1,i=e.y;else if(0===o.indexOf("right"))r=e.x-a/2-1,i=e.y;else if(0===o.indexOf("top"))r=e.x,i=e.y+6+1;else{if(0!==o.indexOf("bottom"))return null;r=e.x,i=e.y-6-1}return{X:r-a/2,Y:i-6,Width:a,Height:12}}},{key:"_chipEdgeAimingAt",value:function(t,e,o){var n=this._chipBoundsFor(t,e);if(!n)return e;var i=r.resolvePerimeterAttachment({Node:n,OtherDefaultPosition:o});return i||e}},{key:"_resolveNodeIdentityColor",value:function(t){if(!t)return null;if(t.TitleBarColor)return t.TitleBarColor;if(t.BodyStyle&&t.BodyStyle.stroke)return t.BodyStyle.stroke;var e=this._FlowView?this._FlowView._NodeTypeProvider:null;if(e&&"function"==typeof e.getNodeType&&t.Type){var o=e.getNodeType(t.Type);if(o){if(o.TitleBarColor)return o.TitleBarColor;if(o.BodyStyle&&o.BodyStyle.stroke)return o.BodyStyle.stroke}}return null}},{key:"_hintColor",value:function(t,e){var o=this._resolveNodeIdentityColor(e);return o||(t&&t.PortType&&i[t.PortType]?i[t.PortType]:t&&"input"===t.Direction?i["event-in"]:t&&"output"===t.Direction?i["event-out"]:"var(--theme-color-border-default, #95a5a6)")}},{key:"_buildPortHintPath",value:function(t,e,o,n,r,i,a){var s=this._FlowView._SVGHelperProvider.createSVGElement("path"),l=e.x-t.x,c=e.y-t.y,p=Math.sqrt(l*l+c*c),u=Math.min(60,.35*p),d=p>0?-c/p:0,h=p>0?l/p:0,f=t.x+.35*l+d*u*.3,m=t.y+.35*c+h*u*.3,v=t.x+.65*l+d*u*.3,g=t.y+.65*c+h*u*.3,w="M ".concat(t.x," ").concat(t.y," C ").concat(f," ").concat(m," ").concat(v," ").concat(g," ").concat(e.x," ").concat(e.y);return s.setAttribute("class","pict-flow-port-hint"),s.setAttribute("d",w),s.setAttribute("data-node-hash",o),s.setAttribute("data-port-hash",n),s.setAttribute("data-connection-hash",r),s.setAttribute("data-connection-end",i),a&&s.setAttribute("stroke",a),s}},{key:"_computeDirectionalGeometry",value:function(t,e){return this._FlowView._PathGenerator.computeDirectionalGeometry(t,e)}},{key:"_generateDirectionalPath",value:function(t,e){var o=this._computeDirectionalGeometry(t,e);return this._FlowView._PathGenerator.buildBezierPathString({x:t.x,y:t.y},{x:o.departX,y:o.departY},{x:o.cp1X,y:o.cp1Y},{x:o.cp2X,y:o.cp2Y},{x:o.approachX,y:o.approachY},{x:e.x,y:e.y})}},{key:"_generatePathViaEdgeTheme",value:function(t,e,o,n){var r=this._FlowView?this._FlowView._LayoutService:null,i=r&&"function"==typeof r.resolveActiveEdgeTheme?r.resolveActiveEdgeTheme(t):null;if(!i||"function"!=typeof i.GeneratePath)return this._builtInPathFallback(e,o,n);var a={Source:e,Target:o,Connection:t,AllNodes:this._FlowView._FlowData?this._FlowView._FlowData.Nodes:[],AllConnections:this._FlowView._FlowData?this._FlowView._FlowData.Connections:[],FlowView:this._FlowView,Helpers:this._buildEdgeThemeHelpers(),Parameters:r.getMergedEdgeThemeParameters(i.Name,this._FlowView._FlowData&&this._FlowView._FlowData.EdgeThemeParameters||{})};try{var s=i.GeneratePath(a);return"string"!=typeof s||""===s?this._builtInPathFallback(e,o,n):s}catch(t){return this._FlowView.log.warn("PictServiceFlowConnectionRenderer edge theme '".concat(i.Name,"' threw: ").concat(t.message)),this._builtInPathFallback(e,o,n)}}},{key:"_resolveAttachmentsViaEdgeTheme",value:function(t,e,o){var n={source:null,target:null},r=this._FlowView?this._FlowView._LayoutService:null,i=r&&"function"==typeof r.resolveActiveEdgeTheme?r.resolveActiveEdgeTheme(t):null;if(!i||"function"!=typeof i.ResolveAttachment)return n;var a=this._FlowView.getNode(t.SourceNodeHash),s=this._FlowView.getNode(t.TargetNodeHash),l=this._findPort(a,t.SourcePortHash),c=this._findPort(s,t.TargetPortHash),p=r.getMergedEdgeThemeParameters(i.Name,this._FlowView._FlowData&&this._FlowView._FlowData.EdgeThemeParameters||{}),u=null,d=null;try{u=i.ResolveAttachment({Node:a,Port:l,DefaultPosition:e,Connection:t,IsSource:!0,OtherNode:s,OtherPort:c,OtherDefaultPosition:o,AllNodes:this._FlowView._FlowData?this._FlowView._FlowData.Nodes:[],FlowView:this._FlowView,Parameters:p}),d=i.ResolveAttachment({Node:s,Port:c,DefaultPosition:o,Connection:t,IsSource:!1,OtherNode:a,OtherPort:l,OtherDefaultPosition:e,AllNodes:this._FlowView._FlowData?this._FlowView._FlowData.Nodes:[],FlowView:this._FlowView,Parameters:p})}catch(t){return this._FlowView.log.warn("PictServiceFlowConnectionRenderer edge theme '".concat(i.Name,"' ResolveAttachment threw: ").concat(t.message)),n}return{source:u||null,target:d||null}}},{key:"_findPort",value:function(t,e){if(!t||!Array.isArray(t.Ports))return null;for(var o=0;o<t.Ports.length;o++)if(t.Ports[o].Hash===e)return t.Ports[o];return null}},{key:"_buildEdgeThemeHelpers",value:function(){var t=this;return{generateBezier:function(e,o){return t._generateDirectionalPath(e,o)},generateMultiBezier:function(e,o,n){return t._generateMultiHandleBezierPath(e,o,n)},generateOrthogonal:function(e,o,n,r){return t._generateOrthogonalPath(e,o,n||null,r||0)},getBezierHandles:function(e){return t._getBezierHandles(e)}}}},{key:"_builtInPathFallback",value:function(t,e,o){var n=o||{};if("orthogonal"===(n.LineMode||"bezier")){var r=null;return n.HandleCustomized&&null!=n.OrthoCorner1X&&(r={corner1:{x:n.OrthoCorner1X,y:n.OrthoCorner1Y},corner2:{x:n.OrthoCorner2X,y:n.OrthoCorner2Y}}),this._generateOrthogonalPath(t,e,r,n.OrthoMidOffset||0)}var i=this._getBezierHandles(n);return i.length>0?this._generateMultiHandleBezierPath(t,e,i):this._generateDirectionalPath(t,e)}},{key:"_getBezierHandles",value:function(t){return t&&t.HandleCustomized?Array.isArray(t.BezierHandles)&&t.BezierHandles.length>0?t.BezierHandles:null!=t.BezierHandleX&&null!=t.BezierHandleY?[{x:t.BezierHandleX,y:t.BezierHandleY}]:[]:[]}},{key:"_generateMultiHandleBezierPath",value:function(t,e,o){var n=this._computeDirectionalGeometry(t,e);return this._FlowView._PathGenerator.buildMultiBezierPathString({x:t.x,y:t.y},{x:n.departX,y:n.departY},o,{x:n.approachX,y:n.approachY},{x:e.x,y:e.y},n.startDir,n.endDir)}},{key:"computeInsertionIndex",value:function(t,e,o,n){for(var r=this._computeDirectionalGeometry(o,n),i=[{x:r.departX,y:r.departY}],a=0;a<t.length;a++)i.push(t[a]);i.push({x:r.approachX,y:r.approachY});for(var s=1/0,l=0,c=0;c<i.length-1;c++){var p=this._distanceToSegment(e.x,e.y,i[c].x,i[c].y,i[c+1].x,i[c+1].y);p<s&&(s=p,l=c)}return l}},{key:"_distanceToSegment",value:function(t,e,o,n,r,i){return this._FlowView._PathGenerator.distanceToSegment(t,e,o,n,r,i)}},{key:"getAutoMidpoint",value:function(t,e){return this._FlowView._PathGenerator.getAutoMidpoint(t,e)}},{key:"_generateOrthogonalPath",value:function(t,e,o,n){var r,i,a=this._FlowView._PathGenerator.computeDepartApproach(t,e,20);if(o&&o.corner1&&o.corner2)r=o.corner1,i=o.corner2;else{var s=this._FlowView._PathGenerator.computeAutoOrthogonalCorners(a.departX,a.departY,a.approachX,a.approachY,a.fromDir,a.toDir,n||0);r=s.corner1,i=s.corner2}return this._FlowView._PathGenerator.buildOrthogonalPathString({x:t.x,y:t.y},{x:a.departX,y:a.departY},r,i,{x:a.approachX,y:a.approachY},{x:e.x,y:e.y})}},{key:"getOrthogonalGeometry",value:function(t,e,o){var n=this._FlowView._PathGenerator.computeDepartApproach(t,e,20);if(o&&o.HandleCustomized&&null!=o.OrthoCorner1X){var r={x:o.OrthoCorner1X,y:o.OrthoCorner1Y},i={x:o.OrthoCorner2X,y:o.OrthoCorner2Y};return{corner1:r,corner2:i,midpoint:{x:(r.x+i.x)/2,y:(r.y+i.y)/2}}}return this._FlowView._PathGenerator.computeAutoOrthogonalCorners(n.departX,n.departY,n.approachX,n.approachY,n.fromDir,n.toDir,o&&o.OrthoMidOffset||0)}},{key:"_renderHandles",value:function(t,e,o,n){var r=t.Data||{};if("orthogonal"===(r.LineMode||"bezier")){var i=this.getOrthogonalGeometry(o,n,r);this._createHandle(e,t.Hash,"ortho-corner1",i.corner1.x,i.corner1.y,"pict-flow-connection-handle"),this._createHandle(e,t.Hash,"ortho-midpoint",i.midpoint.x,i.midpoint.y,"pict-flow-connection-handle-midpoint"),this._createHandle(e,t.Hash,"ortho-corner2",i.corner2.x,i.corner2.y,"pict-flow-connection-handle")}else{var a=this._getBezierHandles(r);if(a.length>0)for(var s=0;s<a.length;s++)this._createHandle(e,t.Hash,"bezier-handle-"+s,a[s].x,a[s].y,"pict-flow-connection-handle");else{var l=this.getAutoMidpoint(o,n);this._createHandle(e,t.Hash,"bezier-midpoint",l.x,l.y,"pict-flow-connection-handle")}}}},{key:"_createHandle",value:function(t,e,o,n,r,i){if(this._FlowView._ConnectorShapesProvider){var a="pict-flow-connection-handle-midpoint"===i?"connection-handle-midpoint":"connection-handle";this._FlowView._ConnectorShapesProvider.createFullHandle(t,e,o,n,r,a,"connection-handle","data-connection-hash")}}},{key:"_generateBezierPath",value:function(t,e){var o={x:t.x,y:t.y,side:t.side||"right"},n={x:e.x,y:e.y,side:e.side||"left"};return this._generateDirectionalPath(o,n)}},{key:"renderDragConnection",value:function(t,e,o,n,r,i){var a,s=this._generateDirectionalPath({x:t,y:e,side:i||"right"},{x:o,y:n,side:"left"}),l=this._FlowView._ConnectorShapesProvider;return l?a=l.createDragConnectionElement(s):((a=this._FlowView._SVGHelperProvider.createSVGElement("path")).setAttribute("class","pict-flow-drag-connection"),a.setAttribute("d",s)),r.appendChild(a),a}},{key:"updateDragConnection",value:function(t,e,o,n,r,i){if(t){var a=this._generateDirectionalPath({x:e,y:o,side:i||"right"},{x:n,y:r,side:"left"});t.setAttribute("d",a)}}}])}(n);e.exports=a},{"../providers/edges/Edge-PerimeterMath.js":67,"fable-serviceproviderbase":26}],79:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowDataManager",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"marshalToView",value:function(){if(this._FlowView&&this._FlowView.options.FlowDataAddress){var t={Fable:this._FlowView.fable,Pict:this._FlowView.pict||this._FlowView.fable,AppData:this._FlowView.pict?this._FlowView.pict.AppData:this._FlowView.fable.AppData,Bundle:this._FlowView.Bundle,Options:this._FlowView.options},e=this._FlowView.fable.manifest.getValueByHash(t,this._FlowView.options.FlowDataAddress);"object"===_typeof(e)&&null!==e&&this.setFlowData(e)}}},{key:"marshalFromView",value:function(){if(this._FlowView&&this._FlowView.options.FlowDataAddress){var t={Fable:this._FlowView.fable,Pict:this._FlowView.pict||this._FlowView.fable,AppData:this._FlowView.pict?this._FlowView.pict.AppData:this._FlowView.fable.AppData,Bundle:this._FlowView.Bundle,Options:this._FlowView.options};this._FlowView.fable.manifest.setValueByHash(t,this._FlowView.options.FlowDataAddress,JSON.parse(JSON.stringify(this._FlowView._FlowData)))}}},{key:"getFlowData",value:function(){return this._FlowView?JSON.parse(JSON.stringify(this._FlowView._FlowData)):{}}},{key:"setFlowData",value:function(t){if(this._FlowView)if("object"===_typeof(t)&&null!==t){var e=this._FlowView.options&&this._FlowView.options.DefaultLayoutAlgorithm||"Custom",o=this._FlowView.options&&this._FlowView.options.DefaultLayoutParameters||{},n=!(!this._FlowView.options||!this._FlowView.options.DefaultLayoutAutoApply),r=this._FlowView.options&&this._FlowView.options.DefaultEdgeTheme||null,i=this._FlowView.options&&this._FlowView.options.DefaultEdgeThemeParameters||{};this._FlowView._FlowData={Nodes:Array.isArray(t.Nodes)?t.Nodes:[],Connections:Array.isArray(t.Connections)?t.Connections:[],OpenPanels:Array.isArray(t.OpenPanels)?t.OpenPanels:[],SavedLayouts:Array.isArray(t.SavedLayouts)?t.SavedLayouts:[],ViewState:Object.assign({PanX:0,PanY:0,Zoom:1,SelectedNodeHash:null,SelectedConnectionHash:null,SelectedTetherHash:null},t.ViewState||{}),LayoutAlgorithm:"string"==typeof t.LayoutAlgorithm&&""!==t.LayoutAlgorithm?t.LayoutAlgorithm:e,LayoutParameters:t.LayoutParameters&&"object"===_typeof(t.LayoutParameters)?JSON.parse(JSON.stringify(t.LayoutParameters)):JSON.parse(JSON.stringify(o)),LayoutAutoApply:"boolean"==typeof t.LayoutAutoApply?t.LayoutAutoApply:n,EdgeTheme:"string"==typeof t.EdgeTheme&&""!==t.EdgeTheme?t.EdgeTheme:r,EdgeThemeParameters:t.EdgeThemeParameters&&"object"===_typeof(t.EdgeThemeParameters)?JSON.parse(JSON.stringify(t.EdgeThemeParameters)):JSON.parse(JSON.stringify(i))},this._FlowView._LayoutProvider&&this._FlowView._LayoutProvider.loadPersistedLayouts(),this._FlowView.initialRenderComplete&&this._FlowView.renderFlow()}else this._FlowView.log.warn("PictSectionFlow setFlowData received invalid data")}},{key:"addNode",value:function(t,e,o,n,r){if(!this._FlowView)return null;for(var i=t||this._FlowView.options.DefaultNodeType,a=this._FlowView._NodeTypeProvider.getNodeType(i),s={Hash:"node-".concat(this._FlowView.fable.getUUID()),Type:i,X:e||100,Y:o||100,Width:a&&a.DefaultWidth||this._FlowView.options.DefaultNodeWidth,Height:a&&a.DefaultHeight||this._FlowView.options.DefaultNodeHeight,Title:n||a&&a.Label||"New Node",Ports:a&&a.DefaultPorts?JSON.parse(JSON.stringify(a.DefaultPorts)):[{Hash:"port-in-".concat(this._FlowView.fable.getUUID()),Direction:"input",Side:"left",Label:"In"},{Hash:"port-out-".concat(this._FlowView.fable.getUUID()),Direction:"output",Side:"right",Label:"Out"}],Data:r||{}},l=0;l<s.Ports.length;l++)s.Ports[l].Hash||(s.Ports[l].Hash="port-".concat(s.Ports[l].Direction,"-").concat(this._FlowView.fable.getUUID()));return this._FlowView._FlowData.Nodes.push(s),this._FlowView.renderFlow(),this.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onNodeAdded",s),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)),s}},{key:"removeNode",value:function(t){if(!this._FlowView)return!1;var e=this._FlowView._FlowData.Nodes.findIndex(function(e){return e.Hash===t});if(e<0)return this._FlowView.log.warn("PictSectionFlow removeNode: node ".concat(t," not found")),!1;var o=this._FlowView._FlowData.Nodes.splice(e,1)[0];return this._FlowView._FlowData.Connections=this._FlowView._FlowData.Connections.filter(function(e){return e.SourceNodeHash!==t&&e.TargetNodeHash!==t}),this._FlowView.closePanelForNode(t),this._FlowView._FlowData.ViewState.SelectedNodeHash===t&&(this._FlowView._FlowData.ViewState.SelectedNodeHash=null),this._FlowView.renderFlow(),this.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onNodeRemoved",o),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)),!0}},{key:"addConnection",value:function(t,e,o,n,r){if(!this._FlowView)return!1;var i=this._FlowView._FlowData.Nodes.find(function(e){return e.Hash===t}),a=this._FlowView._FlowData.Nodes.find(function(t){return t.Hash===o});if(!i||!a)return this._FlowView.log.warn("PictSectionFlow addConnection: source or target node not found"),!1;var s=i.Ports.find(function(t){return t.Hash===e}),l=a.Ports.find(function(t){return t.Hash===n});if(!s||!l)return this._FlowView.log.warn("PictSectionFlow addConnection: source or target port not found"),!1;if(t===o)return this._FlowView.log.warn("PictSectionFlow addConnection: cannot connect a node to itself"),!1;if(this._FlowView._FlowData.Connections.find(function(r){return r.SourceNodeHash===t&&r.SourcePortHash===e&&r.TargetNodeHash===o&&r.TargetPortHash===n}))return this._FlowView.log.warn("PictSectionFlow addConnection: duplicate connection"),!1;var c={Hash:"conn-".concat(this._FlowView.fable.getUUID()),SourceNodeHash:t,SourcePortHash:e,TargetNodeHash:o,TargetPortHash:n,Data:r||{}};return this._FlowView._FlowData.Connections.push(c),this._FlowView.renderFlow(),this.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onConnectionCreated",c),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)),c}},{key:"removeConnection",value:function(t){if(!this._FlowView)return!1;var e=this._FlowView._FlowData.Connections.findIndex(function(e){return e.Hash===t});if(e<0)return this._FlowView.log.warn("PictSectionFlow removeConnection: connection ".concat(t," not found")),!1;var o=this._FlowView._FlowData.Connections.splice(e,1)[0];return this._FlowView._FlowData.ViewState.SelectedConnectionHash===t&&(this._FlowView._FlowData.ViewState.SelectedConnectionHash=null),this._FlowView.renderFlow(),this.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onConnectionRemoved",o),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)),!0}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],80:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={IDLE:"idle",DRAGGING_NODE:"dragging-node",DRAGGING_PANEL:"dragging-panel",DRAGGING_HANDLE:"dragging-handle",CONNECTING:"connecting",PANNING:"panning",RESIZING_PANEL:"resizing-panel"},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowInteractionManager",i._FlowView=o&&o.FlowView?o.FlowView:null,i._SVGElement=null,i._ViewportElement=null,i._State=r.IDLE,i._DragNodeHash=null,i._DragStartX=0,i._DragStartY=0,i._DragNodeStartX=0,i._DragNodeStartY=0,i._DragPanelHash=null,i._DragPanelStartX=0,i._DragPanelStartY=0,i._DragPanelDataStartX=0,i._DragPanelDataStartY=0,i._DragHandleConnectionHash=null,i._DragHandlePanelHash=null,i._DragHandleType=null,i._DragHandleIsTether=!1,i._PanStartX=0,i._PanStartY=0,i._PanStartPanX=0,i._PanStartPanY=0,i._ConnectSourceNodeHash=null,i._ConnectSourcePortHash=null,i._ConnectDragLine=null,i._LastClickTime=0,i._LastClickNodeHash=null,i._DoubleClickThreshold=400,i._ResizePanelHash=null,i._ResizeStartY=0,i._ResizePanelStartHeight=0,i._LastConnectionClickTime=0,i._LastConnectionClickHash=null,i._LastTetherClickTime=0,i._LastTetherClickHash=null,i._LastHandleClickTime=0,i._LastHandleClickHash=null,i._LastHandleClickType=null,i._boundOnPointerDown=i._onPointerDown.bind(i),i._boundOnPointerMove=i._onPointerMove.bind(i),i._boundOnPointerUp=i._onPointerUp.bind(i),i._boundOnWheel=i._onWheel.bind(i),i._boundOnKeyDown=i._onKeyDown.bind(i),i}return _inherits(e,t),_createClass2(e,[{key:"initialize",value:function(t,e){this._SVGElement=t,this._ViewportElement=e,this._SVGElement&&document.addEventListener("keydown",this._boundOnKeyDown)}},{key:"handleContextMenu",value:function(t){t.preventDefault();var e=t.target;switch(this._getElementType(e)){case"connection":case"connection-hitarea":this._addBezierHandle(e,t);break;case"connection-handle":this._removeBezierHandle(e);break;case"tether":case"tether-hitarea":this._addTetherBezierHandle(e,t);break;case"tether-handle":this._removeTetherBezierHandle(e)}}},{key:"destroy",value:function(){document.removeEventListener("keydown",this._boundOnKeyDown)}},{key:"_onPointerDown",value:function(t){if(this._FlowView){var e=t.target,o=this._getElementType(e);if(!e.closest||!e.closest(".pict-flow-panel-content"))switch(0===t.button&&this._SVGElement.setPointerCapture(t.pointerId),o){case"port":this._startConnection(t,e);break;case"node":case"node-body":case"panel-indicator":var n=this._getNodeHash(e),r=Date.now();n&&n===this._LastClickNodeHash&&r-this._LastClickTime<this._DoubleClickThreshold?(this._LastClickTime=0,this._LastClickNodeHash=null,this._FlowView.togglePanel(n)):(this._LastClickTime=r,this._LastClickNodeHash=n,this._startNodeDrag(t,e));break;case"panel-titlebar":this._startPanelDrag(t,e);break;case"panel-resize":this._startPanelResize(t,e);break;case"panel-close":var i=this._getPanelHash(e);i&&this._FlowView.closePanel(i);break;case"connection-handle":var a=this._getConnectionHash(e),s=e.getAttribute("data-handle-type"),l=Date.now();a===this._LastHandleClickHash&&s===this._LastHandleClickType&&l-this._LastHandleClickTime<this._DoubleClickThreshold?(this._toggleConnectionLineMode(a),this._LastHandleClickTime=0,this._LastHandleClickHash=null,this._LastHandleClickType=null):(this._LastHandleClickTime=l,this._LastHandleClickHash=a,this._LastHandleClickType=s,this._startHandleDrag(t,a,null,s,!1)),t.stopPropagation();break;case"tether":case"tether-hitarea":var c=this._getPanelHash(e),p=Date.now();c&&c===this._LastTetherClickHash&&p-this._LastTetherClickTime<this._DoubleClickThreshold?(this._LastTetherClickTime=0,this._LastTetherClickHash=null,this._addTetherBezierHandle(e,t)):(this._LastTetherClickTime=p,this._LastTetherClickHash=c,this._selectTether(e));break;case"tether-handle":var u=this._getPanelHash(e),d=e.getAttribute("data-handle-type"),h=Date.now();u===this._LastHandleClickHash&&d===this._LastHandleClickType&&h-this._LastHandleClickTime<this._DoubleClickThreshold?(this._toggleTetherLineMode(u),this._LastHandleClickTime=0,this._LastHandleClickHash=null,this._LastHandleClickType=null):(this._LastHandleClickTime=h,this._LastHandleClickHash=u,this._LastHandleClickType=d,this._startHandleDrag(t,null,u,d,!0)),t.stopPropagation();break;case"connection":case"connection-hitarea":var f=this._getConnectionHash(e),m=Date.now();f&&f===this._LastConnectionClickHash&&m-this._LastConnectionClickTime<this._DoubleClickThreshold?(this._LastConnectionClickTime=0,this._LastConnectionClickHash=null,this._addBezierHandle(e,t)):(this._LastConnectionClickTime=m,this._LastConnectionClickHash=f,this._selectConnection(e));break;default:0===t.button&&this._FlowView.options.EnablePanning&&this._startPanning(t)}}}},{key:"_onPointerMove",value:function(t){if(this._FlowView)switch(this._State){case r.DRAGGING_NODE:this._onNodeDrag(t);break;case r.DRAGGING_PANEL:this._onPanelDrag(t);break;case r.DRAGGING_HANDLE:this._onHandleDrag(t);break;case r.CONNECTING:this._onConnectionDrag(t);break;case r.RESIZING_PANEL:this._onPanelResize(t);break;case r.PANNING:this._onPan(t)}}},{key:"_onPointerUp",value:function(t){if(this._FlowView)switch(this._SVGElement.hasPointerCapture&&this._SVGElement.hasPointerCapture(t.pointerId)&&this._SVGElement.releasePointerCapture(t.pointerId),this._State){case r.DRAGGING_NODE:this._endNodeDrag(t);break;case r.DRAGGING_PANEL:this._endPanelDrag(t);break;case r.DRAGGING_HANDLE:this._endHandleDrag(t);break;case r.RESIZING_PANEL:this._endPanelResize(t);break;case r.CONNECTING:this._endConnection(t);break;case r.PANNING:this._endPanning(t)}}},{key:"_onWheel",value:function(t){if(this._FlowView&&this._FlowView.options.EnableZooming){t.preventDefault();var e=t.deltaY>0?-this._FlowView.options.ZoomStep:this._FlowView.options.ZoomStep,o=this._FlowView.viewState.Zoom+e,n=this._SVGElement.getBoundingClientRect(),r=t.clientX-n.left,i=t.clientY-n.top;this._FlowView.setZoom(o,r,i)}}},{key:"_onKeyDown",value:function(t){if(this._FlowView)if("Delete"===t.key||"Backspace"===t.key){if(t.target&&("INPUT"===t.target.tagName||"TEXTAREA"===t.target.tagName||"SELECT"===t.target.tagName))return;if(t.target&&t.target.closest&&t.target.closest(".pict-flow-panel"))return;this._FlowView.deleteSelected(),t.preventDefault()}else if("Escape"===t.key){if(this._State===r.CONNECTING&&this._cancelConnection(),this._FlowView._IsFullscreen){if(this._FlowView.exitFullscreen(),this._FlowView._ToolbarView){var e=this._FlowView.options.ViewIdentifier,o=this._FlowView.pict.ContentAssignment.getElement("#Flow-Toolbar-Fullscreen-".concat(e));o.length>0&&(o[0].innerHTML="⛶ Fullscreen")}return void t.preventDefault()}this._FlowView.deselectAll()}}},{key:"_startNodeDrag",value:function(t,e){if(this._FlowView.options.EnableNodeDragging){var o=this._getNodeHash(e);if(o){this._FlowView.selectNode(o);var n=this._FlowView.getNode(o);if(n){this._State=r.DRAGGING_NODE,this._DragNodeHash=o,this._DragStartX=t.clientX,this._DragStartY=t.clientY,this._DragNodeStartX=n.X,this._DragNodeStartY=n.Y,this._SVGElement.classList.add("panning");var i=this._FlowView._NodesLayer.querySelector('[data-node-hash="'.concat(o,'"]'));i&&i.classList.add("dragging")}}}}},{key:"_onNodeDrag",value:function(t){if(this._DragNodeHash){var e=this._FlowView.viewState,o=(t.clientX-this._DragStartX)/e.Zoom,n=(t.clientY-this._DragStartY)/e.Zoom,r=this._DragNodeStartX+o,i=this._DragNodeStartY+n;this._FlowView.updateNodePosition(this._DragNodeHash,r,i)}}},{key:"_endNodeDrag",value:function(t){this._SVGElement.classList.remove("panning");var e=this._FlowView._NodesLayer.querySelector('[data-node-hash="'.concat(this._DragNodeHash,'"]'));e&&e.classList.remove("dragging"),this._FlowView.renderFlow(),this._FlowView.marshalFromView();var o=this._FlowView.getNode(this._DragNodeHash);o&&this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onNodeMoved",o),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView.flowData)),this._State=r.IDLE,this._DragNodeHash=null}},{key:"_startPanelDrag",value:function(t,e){var o=this._getPanelHash(e);if(o){var n=this._FlowView._FlowData.OpenPanels.find(function(t){return t.Hash===o});n&&(this._State=r.DRAGGING_PANEL,this._DragPanelHash=o,this._DragPanelStartX=t.clientX,this._DragPanelStartY=t.clientY,this._DragPanelDataStartX=n.X,this._DragPanelDataStartY=n.Y,this._SVGElement.classList.add("panning"))}}},{key:"_onPanelDrag",value:function(t){if(this._DragPanelHash){var e=this._FlowView.viewState,o=(t.clientX-this._DragPanelStartX)/e.Zoom,n=(t.clientY-this._DragPanelStartY)/e.Zoom,r=this._DragPanelDataStartX+o,i=this._DragPanelDataStartY+n;this._FlowView.updatePanelPosition(this._DragPanelHash,r,i)}}},{key:"_endPanelDrag",value:function(t){var e=this;this._SVGElement.classList.remove("panning"),this._FlowView.marshalFromView();var o=this._FlowView._FlowData.OpenPanels.find(function(t){return t.Hash===e._DragPanelHash});o&&this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onPanelMoved",o),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView.flowData)),this._State=r.IDLE,this._DragPanelHash=null}},{key:"_startPanelResize",value:function(t,e){var o=this._getPanelHash(e);if(o){var n=this._FlowView._FlowData.OpenPanels.find(function(t){return t.Hash===o});n&&(this._State=r.RESIZING_PANEL,this._ResizePanelHash=o,this._ResizeStartY=t.clientY,this._ResizePanelStartHeight=n.Height,this._SVGElement.classList.add("panning"))}}},{key:"_onPanelResize",value:function(t){var e=this;if(this._ResizePanelHash){var o=this._FlowView.viewState,n=(t.clientY-this._ResizeStartY)/o.Zoom,r=Math.max(120,this._ResizePanelStartHeight+n),i=this._FlowView._FlowData.OpenPanels.find(function(t){return t.Hash===e._ResizePanelHash});if(i&&(i.Height=r),this._FlowView._PanelsLayer){var a=this._FlowView._PanelsLayer.querySelector('[data-panel-hash="'+this._ResizePanelHash+'"]');a&&a.setAttribute("height",String(r))}}}},{key:"_endPanelResize",value:function(t){this._SVGElement.classList.remove("panning"),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView.flowData),this._State=r.IDLE,this._ResizePanelHash=null}},{key:"_startHandleDrag",value:function(t,e,o,n,i){this._State=r.DRAGGING_HANDLE,this._DragHandleConnectionHash=e,this._DragHandlePanelHash=o,this._DragHandleType=n,this._DragHandleIsTether=i,this._DragStartX=t.clientX,this._DragStartY=t.clientY,this._SVGElement.classList.add("panning")}},{key:"_onHandleDrag",value:function(t){var e=this._FlowView.screenToSVGCoords(t.clientX,t.clientY);this._DragHandleIsTether?this._FlowView.updateTetherHandle(this._DragHandlePanelHash,this._DragHandleType,e.x,e.y):this._FlowView.updateConnectionHandle(this._DragHandleConnectionHash,this._DragHandleType,e.x,e.y)}},{key:"_endHandleDrag",value:function(t){var e=this;if(this._SVGElement.classList.remove("panning"),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider)if(this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView.flowData),this._DragHandleIsTether){var o=this._FlowView._FlowData.OpenPanels.find(function(t){return t.Hash===e._DragHandlePanelHash});o&&this._FlowView._EventHandlerProvider.fireEvent("onTetherHandleMoved",o)}else{var n=this._FlowView.getConnection(this._DragHandleConnectionHash);n&&this._FlowView._EventHandlerProvider.fireEvent("onConnectionHandleMoved",n)}this._State=r.IDLE,this._DragHandleConnectionHash=null,this._DragHandlePanelHash=null,this._DragHandleType=null,this._DragHandleIsTether=!1}},{key:"_addBezierHandle",value:function(t,e){var o=this._getConnectionHash(t);if(o){this._FlowView.selectConnection(o);var n=this._FlowView.screenToSVGCoords(e.clientX,e.clientY);this._FlowView.addConnectionHandle(o,n.x,n.y)}}},{key:"_removeBezierHandle",value:function(t){var e=this._getConnectionHash(t);if(e){var o=t.getAttribute("data-handle-type");if(o&&o.startsWith("bezier-handle-")){var n=parseInt(o.replace("bezier-handle-",""),10);isNaN(n)||this._FlowView.removeConnectionHandle(e,n)}}}},{key:"_addTetherBezierHandle",value:function(t,e){var o=this._getPanelHash(t);if(o){this._FlowView.selectTether(o);var n=this._FlowView.screenToSVGCoords(e.clientX,e.clientY);this._FlowView.addTetherHandle(o,n.x,n.y)}}},{key:"_removeTetherBezierHandle",value:function(t){var e=this._getPanelHash(t);if(e){var o=t.getAttribute("data-handle-type");if(o&&o.startsWith("bezier-handle-")){var n=parseInt(o.replace("bezier-handle-",""),10);isNaN(n)||this._FlowView.removeTetherHandle(e,n)}}}},{key:"_toggleConnectionLineMode",value:function(t){var e=this._FlowView.getConnection(t);if(e){e.Data||(e.Data={});var o=e.Data.LineMode||"bezier";e.Data.LineMode="bezier"===o?"orthogonal":"bezier",e.Data.HandleCustomized=!1,e.Data.BezierHandles=[],e.Data.BezierHandleX=null,e.Data.BezierHandleY=null,e.Data.OrthoCorner1X=null,e.Data.OrthoCorner1Y=null,e.Data.OrthoCorner2X=null,e.Data.OrthoCorner2Y=null,e.Data.OrthoMidOffset=0,this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onConnectionModeChanged",e),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView.flowData))}}},{key:"_toggleTetherLineMode",value:function(t){var e=this._FlowView._FlowData.OpenPanels.find(function(e){return e.Hash===t});e&&(this._FlowView._TetherService&&this._FlowView._TetherService.toggleLineMode(e),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onTetherModeChanged",e),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView.flowData)))}},{key:"_selectTether",value:function(t){var e=this._getPanelHash(t);e&&this._FlowView.selectTether(e)}},{key:"_startConnection",value:function(t,e){if(this._FlowView.options.EnableConnectionCreation){var o=e.getAttribute("data-node-hash"),n=e.getAttribute("data-port-hash"),i=e.getAttribute("data-port-direction");if(o&&n&&"output"===i){this._State=r.CONNECTING,this._ConnectSourceNodeHash=o,this._ConnectSourcePortHash=n,this._SVGElement.classList.add("connecting");var a=this._FlowView.getPortPosition(o,n);a&&(this._ConnectDragLine=document.createElementNS("http://www.w3.org/2000/svg","path"),this._ConnectDragLine.setAttribute("class","pict-flow-drag-connection"),this._ConnectDragLine.setAttribute("d","M ".concat(a.x," ").concat(a.y," L ").concat(a.x," ").concat(a.y)),this._FlowView._ViewportElement.appendChild(this._ConnectDragLine)),t.stopPropagation()}}}},{key:"_onConnectionDrag",value:function(t){if(this._ConnectDragLine){var e=this._FlowView.getPortPosition(this._ConnectSourceNodeHash,this._ConnectSourcePortHash);if(e){var o=this._FlowView.screenToSVGCoords(t.clientX,t.clientY),n=.5*Math.abs(o.x-e.x),r="M ".concat(e.x," ").concat(e.y," C ").concat(e.x+n," ").concat(e.y,", ").concat(o.x-n," ").concat(o.y,", ").concat(o.x," ").concat(o.y);this._ConnectDragLine.setAttribute("d",r)}}}},{key:"_endConnection",value:function(t){this._ConnectDragLine&&this._ConnectDragLine.parentNode&&this._ConnectDragLine.parentNode.removeChild(this._ConnectDragLine),this._ConnectDragLine=null,this._SVGElement.classList.remove("connecting");var e=document.elementFromPoint(t.clientX,t.clientY);if(e){var o=e.getAttribute("data-port-hash"),n=e.getAttribute("data-node-hash"),i=e.getAttribute("data-port-direction");o&&n&&"input"===i&&this._FlowView.addConnection(this._ConnectSourceNodeHash,this._ConnectSourcePortHash,n,o)}this._State=r.IDLE,this._ConnectSourceNodeHash=null,this._ConnectSourcePortHash=null}},{key:"_cancelConnection",value:function(){this._ConnectDragLine&&this._ConnectDragLine.parentNode&&this._ConnectDragLine.parentNode.removeChild(this._ConnectDragLine),this._ConnectDragLine=null,this._SVGElement.classList.remove("connecting"),this._State=r.IDLE,this._ConnectSourceNodeHash=null,this._ConnectSourcePortHash=null}},{key:"_startPanning",value:function(t){this._FlowView.deselectAll(),this._State=r.PANNING,this._PanStartX=t.clientX,this._PanStartY=t.clientY,this._PanStartPanX=this._FlowView.viewState.PanX,this._PanStartPanY=this._FlowView.viewState.PanY,this._SVGElement.classList.add("panning")}},{key:"_onPan",value:function(t){var e=t.clientX-this._PanStartX,o=t.clientY-this._PanStartY;this._FlowView.viewState.PanX=this._PanStartPanX+e,this._FlowView.viewState.PanY=this._PanStartPanY+o,this._FlowView.updateViewportTransform()}},{key:"_endPanning",value:function(t){this._SVGElement.classList.remove("panning"),this._State=r.IDLE}},{key:"_selectConnection",value:function(t){var e=this._getConnectionHash(t);e&&this._FlowView.selectConnection(e)}},{key:"_getElementType",value:function(t){if(!t)return"background";var e=t.getAttribute?t.getAttribute("data-element-type"):null;if(e)return e;for(var o=t.parentElement,n=0;o&&n<5;){if(e=o.getAttribute?o.getAttribute("data-element-type"):null)return e;o=o.parentElement,n++}return"background"}},{key:"_getNodeHash",value:function(t){if(!t)return null;var e=t.getAttribute?t.getAttribute("data-node-hash"):null;if(e)return e;for(var o=t.parentElement,n=0;o&&n<5;){if(e=o.getAttribute?o.getAttribute("data-node-hash"):null)return e;o=o.parentElement,n++}return null}},{key:"_getPanelHash",value:function(t){if(!t)return null;var e=t.getAttribute?t.getAttribute("data-panel-hash"):null;if(e)return e;for(var o=t.parentElement,n=0;o&&n<5;){if(e=o.getAttribute?o.getAttribute("data-panel-hash"):null)return e;o=o.parentElement,n++}return null}},{key:"_getConnectionHash",value:function(t){if(!t)return null;var e=t.getAttribute?t.getAttribute("data-connection-hash"):null;if(e)return e;for(var o=t.parentElement,n=0;o&&n<5;){if(e=o.getAttribute?o.getAttribute("data-connection-hash"):null)return e;o=o.parentElement,n++}return null}}])}(n);e.exports=i,e.exports.INTERACTION_STATES=r},{"fable-serviceproviderbase":26}],81:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../providers/layouts/Layout-Custom.js"),i=t("../providers/layouts/Layout-Layered.js"),a=t("../providers/layouts/Layout-ForcedFromCenter.js"),s=t("../providers/layouts/Layout-Grid.js"),l=t("../providers/layouts/Layout-Circular.js"),c=t("../providers/layouts/Layout-Tabular.js"),p=t("../providers/layouts/Layout-Columnar.js"),u=t("../providers/edges/Edge-Bezier.js"),d=t("../providers/edges/Edge-Orthogonal.js"),h=t("../providers/edges/Edge-Straight.js"),f=t("../providers/edges/Edge-OrthogonalSnap.js"),m=t("../providers/edges/Edge-Perimeter.js"),v=t("../providers/edges/Edge-Perimeter-Linear.js"),g=t("../providers/edges/Edge-Perimeter-Orthogonal.js"),w=[r,i,a,s,l,c,p],y=[u,d,h,f,m,v,g],b="Layered",D=function(t){function e(t,o,n){var r;_classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowLayout",r._FlowView=o&&o.FlowView?o.FlowView:null,r._HorizontalSpacing=250,r._VerticalSpacing=120,r._StartX=100,r._StartY=100,r._Algorithms={},r._EdgeThemes={};for(var i=0;i<w.length;i++)r.registerAlgorithm(w[i]);for(var a=0;a<y.length;a++)r.registerEdgeTheme(y[a]);return r}return _inherits(e,t),_createClass2(e,[{key:"registerAlgorithm",value:function(t){return t&&"object"===_typeof(t)?"string"!=typeof t.Name||""===t.Name?(this.log.warn("PictServiceFlowLayout registerAlgorithm: descriptor.Name is required"),!1):"function"!=typeof t.Apply?(this.log.warn("PictServiceFlowLayout registerAlgorithm: descriptor.Apply for '".concat(t.Name,"' must be a function")),!1):(this._Algorithms[t.Name]=t,!0):(this.log.warn("PictServiceFlowLayout registerAlgorithm: descriptor must be an object"),!1)}},{key:"getAlgorithm",value:function(t){return this._Algorithms[t]||null}},{key:"getAlgorithmNames",value:function(){return Object.keys(this._Algorithms)}},{key:"listAlgorithms",value:function(){for(var t=Object.keys(this._Algorithms),e=[],o=0;o<t.length;o++)e.push(this._Algorithms[t[o]]);return e}},{key:"getMergedParameters",value:function(t,e){var o=this.getAlgorithm(t);return o?Object.assign({},o.DefaultParameters||{},e||{}):Object.assign({},e||{})}},{key:"registerEdgeTheme",value:function(t){return t&&"object"===_typeof(t)?"string"!=typeof t.Name||""===t.Name?(this.log.warn("PictServiceFlowLayout registerEdgeTheme: descriptor.Name is required"),!1):"function"!=typeof t.GeneratePath?(this.log.warn("PictServiceFlowLayout registerEdgeTheme: descriptor.GeneratePath for '".concat(t.Name,"' must be a function")),!1):(this._EdgeThemes[t.Name]=t,!0):(this.log.warn("PictServiceFlowLayout registerEdgeTheme: descriptor must be an object"),!1)}},{key:"getEdgeTheme",value:function(t){return this._EdgeThemes[t]||null}},{key:"getEdgeThemeNames",value:function(){return Object.keys(this._EdgeThemes)}},{key:"listEdgeThemes",value:function(){for(var t=Object.keys(this._EdgeThemes),e=[],o=0;o<t.length;o++)e.push(this._EdgeThemes[t[o]]);return e}},{key:"resolveActiveEdgeTheme",value:function(t){var e=t&&t.Data||{},o=this._FlowView,n=o?o._FlowData:null;if(e.EdgeTheme){var r=this.getEdgeTheme(e.EdgeTheme);if(r)return r}if("orthogonal"===e.LineMode&&!e.EdgeTheme){var i=this.getEdgeTheme("Orthogonal");if(i)return i}if(n&&n.EdgeTheme){var a=this.getEdgeTheme(n.EdgeTheme);if(a)return a}if(n&&n.LayoutAlgorithm){var s=this.getAlgorithm(n.LayoutAlgorithm);if(s&&s.DefaultEdgeTheme){var l=this.getEdgeTheme(s.DefaultEdgeTheme);if(l)return l}}return this.getEdgeTheme("Bezier")}},{key:"getMergedEdgeThemeParameters",value:function(t,e){var o=this.getEdgeTheme(t);return o?Object.assign({},o.DefaultParameters||{},e||{}):Object.assign({},e||{})}},{key:"applyLayout",value:function(t,e,o,n){var r=this.getAlgorithm(o);if(r||(this.log.warn("PictServiceFlowLayout applyLayout: unknown algorithm '".concat(o,"', falling back to '").concat(b,"'")),r=this.getAlgorithm(b))){var i=Object.assign({},r.DefaultParameters||{},n||{});r.Apply(t,e,i)}}},{key:"autoLayout",value:function(t,e,o,n){if(t&&0!==t.length){var r="string"==typeof o&&""!==o?o:b;this.applyLayout(t,e,r,n)}}},{key:"snapToGrid",value:function(t,e){return!e||e<=0?t:Math.round(t/e)*e}},{key:"autoLayoutSubset",value:function(t,e,o){if(t&&0!==t.length){var n=this._StartX,r=this._StartY;if(e&&e.length>0){for(var i=-1/0,a=0;a<e.length;a++){var s=e[a].X+(e[a].Width||180);s>i&&(i=s)}n=i+this._HorizontalSpacing}for(var l={},c=0;c<t.length;c++)l[t[c].Hash]=!0;for(var p={},u={},d={},h=0;h<t.length;h++){var f=t[h];p[f.Hash]=f,u[f.Hash]=0,d[f.Hash]=[]}for(var m=0;m<o.length;m++){var v=o[m],g=l[v.SourceNodeHash],w=l[v.TargetNodeHash];g&&w&&(u[v.TargetNodeHash]++,d[v.SourceNodeHash].push(v.TargetNodeHash))}var y=[],b=[],D={};for(var P in u)0===u[P]&&b.push(P);for(;b.length>0;){for(var T=[],S=[],F=0;F<b.length;F++){var C=b[F];if(!D[C]){D[C]=!0,T.push(C);for(var x=d[C]||[],_=0;_<x.length;_++){var A=x[_];u[A]--,u[A]<=0&&!D[A]&&S.push(A)}}}T.length>0&&y.push(T),b=S}for(var I=[],k=0;k<t.length;k++)D[t[k].Hash]||I.push(t[k].Hash);I.length>0&&y.push(I);for(var H=n,R=0;R<y.length;R++){for(var M=y[R],V=0,E=r,L=0;L<M.length;L++){var N=p[M[L]];if(N){N.X=H,N.Y=E;var O=N.Width||180,G=N.Height||80;V=Math.max(V,O),E+=G+this._VerticalSpacing}}H+=V+this._HorizontalSpacing}}}},{key:"centerNodes",value:function(t,e,o){if(t&&0!==t.length){for(var n=1/0,r=1/0,i=-1/0,a=-1/0,s=0;s<t.length;s++)n=Math.min(n,t[s].X),r=Math.min(r,t[s].Y),i=Math.max(i,t[s].X+(t[s].Width||180)),a=Math.max(a,t[s].Y+(t[s].Height||80));for(var l=e-(n+i)/2,c=o-(r+a)/2,p=0;p<t.length;p++)t[p].X+=l,t[p].Y+=c}}}])}(n);e.exports=D},{"../providers/edges/Edge-Bezier.js":61,"../providers/edges/Edge-Orthogonal.js":62,"../providers/edges/Edge-OrthogonalSnap.js":63,"../providers/edges/Edge-Perimeter-Linear.js":64,"../providers/edges/Edge-Perimeter-Orthogonal.js":65,"../providers/edges/Edge-Perimeter.js":66,"../providers/edges/Edge-Straight.js":68,"../providers/layouts/Layout-Circular.js":69,"../providers/layouts/Layout-Columnar.js":71,"../providers/layouts/Layout-Custom.js":72,"../providers/layouts/Layout-ForcedFromCenter.js":73,"../providers/layouts/Layout-Grid.js":74,"../providers/layouts/Layout-Layered.js":75,"../providers/layouts/Layout-Tabular.js":76,"fable-serviceproviderbase":26}],82:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowPanelManager",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"openPanel",value:function(t){var e=this._FlowView.getNode(t);if(!e)return!1;var o=this._FlowView._NodeTypeProvider.getNodeType(e.Type);if(!o)return!1;var n=this._FlowView._FlowData.OpenPanels.find(function(e){return e.NodeHash===t});if(n)return n;var r,i,a,s,l=o.PropertiesPanel,c="panel-".concat(this.fable.getUUID());l?(r=l.DefaultWidth||300,i=l.DefaultHeight||200,a=l.PanelType||"Base",s=l.Title||o.Label||"Properties"):(r=240,i=180,a="Info",s=o.Label||e.Title||"Node Info");var p={Hash:c,NodeHash:t,PanelType:a,Title:s,X:e.X+e.Width+30,Y:e.Y,Width:r,Height:i};return this._FlowView._FlowData.OpenPanels.push(p),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onPanelOpened",p),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)),p}},{key:"closePanel",value:function(t){var e=this._FlowView._FlowData.OpenPanels.findIndex(function(e){return e.Hash===t});if(e<0)return!1;var o=this._FlowView._FlowData.OpenPanels.splice(e,1)[0];return this._FlowView._PropertiesPanelView&&this._FlowView._PropertiesPanelView.destroyPanel(t),this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&(this._FlowView._EventHandlerProvider.fireEvent("onPanelClosed",o),this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)),!0}},{key:"closePanelForNode",value:function(t){var e=this._FlowView._FlowData.OpenPanels.filter(function(e){return e.NodeHash===t});if(0===e.length)return!1;for(var o=0;o<e.length;o++){var n=this._FlowView._FlowData.OpenPanels.indexOf(e[o]);n>=0&&this._FlowView._FlowData.OpenPanels.splice(n,1),this._FlowView._PropertiesPanelView&&this._FlowView._PropertiesPanelView.destroyPanel(e[o].Hash)}return!0}},{key:"togglePanel",value:function(t){var e=this._FlowView._FlowData.OpenPanels.find(function(e){return e.NodeHash===t});return e?(this.closePanel(e.Hash),!1):this.openPanel(t)}},{key:"updatePanelPosition",value:function(t,e,o){var n=this._FlowView._FlowData.OpenPanels.find(function(e){return e.Hash===t});if(n){if(n.X=e,n.Y=o,this._FlowView._resetHandlesForPanel(t),this._FlowView._PanelsLayer){var r=this._FlowView._PanelsLayer.querySelector('[data-panel-hash="'.concat(t,'"]'));r&&(r.setAttribute("x",String(e)),r.setAttribute("y",String(o)))}this._FlowView._renderTethersForNode(n.NodeHash)}}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],83:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowPathGenerator",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"computeDepartApproach",value:function(t,e,o){var n=this._FlowView._GeometryProvider,r=n.sideDirection(t.side||"right"),i=n.sideDirection(e.side||"left");return{departX:t.x+r.dx*o,departY:t.y+r.dy*o,approachX:e.x+i.dx*o,approachY:e.y+i.dy*o,fromDir:r,toDir:i}}},{key:"computeAutoOrthogonalCorners",value:function(t,e,o,n,r,i,a){var s,l,c,p=a||0,u=Math.abs(r.dx)>0,d=Math.abs(i.dx)>0;if(u&&d){var h=(t+o)/2+p;s={x:h,y:e},l={x:h,y:n},c={x:h,y:(e+n)/2}}else if(u||d)u&&!d?(s={x:o+p,y:e},l={x:o+p,y:n},c={x:o+p,y:(e+n)/2}):(s={x:t,y:n+p},l={x:o,y:n+p},c={x:(t+o)/2,y:n+p});else{var f=(e+n)/2+p;s={x:t,y:f},l={x:o,y:f},c={x:(t+o)/2,y:f}}return{corner1:s,corner2:l,midpoint:c}}},{key:"evaluateCubicBezier",value:function(t,e,o,n,r){var i=1-r,a=i*i,s=a*i,l=r*r,c=l*r;return{x:s*t.x+3*a*r*e.x+3*i*l*o.x+c*n.x,y:s*t.y+3*a*r*e.y+3*i*l*o.y+c*n.y}}},{key:"buildBezierPathString",value:function(t,e,o,n,r,i){return"M ".concat(t.x," ").concat(t.y," L ").concat(e.x," ").concat(e.y," C ").concat(o.x," ").concat(o.y,", ").concat(n.x," ").concat(n.y,", ").concat(r.x," ").concat(r.y," L ").concat(i.x," ").concat(i.y)}},{key:"buildSplitBezierPathString",value:function(t,e,o,n,r,i,a,s,l){return"M ".concat(t.x," ").concat(t.y," L ").concat(e.x," ").concat(e.y," C ").concat(o.x," ").concat(o.y,", ").concat(n.x," ").concat(n.y,", ").concat(r.x," ").concat(r.y," C ").concat(i.x," ").concat(i.y,", ").concat(a.x," ").concat(a.y,", ").concat(s.x," ").concat(s.y," L ").concat(l.x," ").concat(l.y)}},{key:"buildMultiBezierPathString",value:function(t,e,o,n,r,i,a){for(var s=[e],l=0;l<o.length;l++)s.push(o[l]);s.push(n);for(var c="M ".concat(t.x," ").concat(t.y," L ").concat(e.x," ").concat(e.y),p=0;p<s.length-1;p++){var u=s[p],d=s[p+1],h=d.x-u.x,f=d.y-u.y,m=Math.sqrt(h*h+f*f);m<1&&(m=1);var v=.35*m,g=void 0,w=void 0;if(0===p)g=i.dx,w=i.dy;else{var y=s[p-1],b=s[p+1];g=b.x-y.x,w=b.y-y.y;var D=Math.sqrt(g*g+w*w);D<1&&(D=1),g/=D,w/=D}var P=void 0,T=void 0;if(p===s.length-2)P=-a.dx,T=-a.dy;else{var S=s[p],F=s[p+2];P=F.x-S.x,T=F.y-S.y;var C=Math.sqrt(P*P+T*T);C<1&&(C=1),P/=C,T/=C}var x=u.x+g*v,_=u.y+w*v,A=d.x-P*v,I=d.y-T*v;c+=" C ".concat(x," ").concat(_,", ").concat(A," ").concat(I,", ").concat(d.x," ").concat(d.y)}return c+=" L ".concat(r.x," ").concat(r.y)}},{key:"buildOrthogonalPathString",value:function(t,e,o,n,r,i){return"M ".concat(t.x," ").concat(t.y," L ").concat(e.x," ").concat(e.y," L ").concat(o.x," ").concat(o.y," L ").concat(n.x," ").concat(n.y," L ").concat(r.x," ").concat(r.y," L ").concat(i.x," ").concat(i.y)}},{key:"computeDirectionalGeometry",value:function(t,e){var o,n=this._FlowView._GeometryProvider.sideDirection(t.side||"right"),r=this._FlowView._GeometryProvider.sideDirection(e.side||"left"),i=t.x+20*n.dx,a=t.y+20*n.dy,s=e.x+20*r.dx,l=e.y+20*r.dy,c=Math.abs(s-i),p=Math.abs(l-a),u=Math.sqrt(c*c+p*p),d=Math.max(Math.min(.4*u,180),30),h=0!==n.dx&&0!==r.dx||0!==n.dy&&0!==r.dy,f=!1;if(h&&(1===n.dx&&-1===r.dx&&e.x>=t.x||-1===n.dx&&1===r.dx&&e.x<=t.x||1===n.dy&&-1===r.dy&&e.y>=t.y||-1===n.dy&&1===r.dy&&e.y<=t.y)&&(f=!0),f){var m=0!==n.dx?c:p;o=Math.max(.35*m,30)}else o=h?Math.max(d,60):Math.max(.8*d,40);return{departX:i,departY:a,approachX:s,approachY:l,cp1X:i+n.dx*o,cp1Y:a+n.dy*o,cp2X:s+r.dx*o,cp2Y:l+r.dy*o,startDir:n,endDir:r}}},{key:"distanceToSegment",value:function(t,e,o,n,r,i){var a=r-o,s=i-n,l=a*a+s*s;if(l<.001){var c=t-o,p=e-n;return Math.sqrt(c*c+p*p)}var u=((t-o)*a+(e-n)*s)/l;u<0&&(u=0),u>1&&(u=1);var d=t-(o+u*a),h=e-(n+u*s);return Math.sqrt(d*d+h*h)}},{key:"getAutoMidpoint",value:function(t,e){var o=this.computeDirectionalGeometry(t,e);return this.evaluateCubicBezier({x:o.departX,y:o.departY},{x:o.cp1X,y:o.cp1Y},{x:o.cp2X,y:o.cp2Y},{x:o.approachX,y:o.approachY},.5)}},{key:"getAutoMidpointSimple",value:function(t,e,o){var n=this.computeDepartApproach(t,e,o),r=Math.abs(n.approachX-n.departX),i=Math.abs(n.approachY-n.departY),a=.4*Math.max(r,i,40),s={x:n.departX,y:n.departY},l={x:n.departX+n.fromDir.dx*a,y:n.departY+n.fromDir.dy*a},c={x:n.approachX+n.toDir.dx*a,y:n.approachY+n.toDir.dy*a},p={x:n.approachX,y:n.approachY};return this.evaluateCubicBezier(s,l,c,p,.5)}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],84:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowPortRenderer",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"renderPorts",value:function(t,e,o,n,r,i){if(this._FlowView&&t.Ports&&Array.isArray(t.Ports)){r&&r.PortLabelsVertical,r&&r.PortLabelPadding,r&&r.PortLabelsOutside;for(var a=this._FlowView._GeometryProvider,s=this._collectConnectedPortHashes(t.Hash),l={},c=0;c<t.Ports.length;c++){var p=t.Ports[c],u=p.Side||("input"===p.Direction?"left":"right");l[u]||(l[u]=[]),l[u].push(p)}var d={};for(var h in l)d[h]=l[h].length;for(var f in l)for(var m=l[f],v=a?a.getEdgeFromSide(f):f,g=0;g<m.length;g++){var w=m[g],y=this.getPortLocalPosition(f,g,m.length,o,n,i,d),b=null;if(w.Label){var D=w.PortType&&{"event-in":"var(--theme-color-status-info, #3498db)","event-out":"var(--theme-color-status-success, #2ecc71)",setting:"var(--theme-color-status-warning, #e67e22)",value:"var(--theme-color-status-warning, #f1c40f)",error:"var(--theme-color-status-error, #e74c3c)"}[w.PortType]||"var(--theme-color-border-default, #95a5a6)",P=12,T=5*w.Label.length,S=void 0,F=void 0,C=void 0,x=void 0,_=void 0,A=void 0,I=void 0,k=void 0,H=void 0,R=void 0;"left"===v?(x=(S=1)+5+5,_="start",A=S+(C=10+T+5+2)-2,I=F=y.y-6,k=2,H=P,R="M "+S+" "+F+" L "+(S+C)+" "+F+" L "+(S+C)+" "+(F+P)+" L "+S+" "+(F+P)):"right"===v?(x=(S=o-(C=7+T+5+5)-1)+2+5,_="start",A=S,I=F=y.y-6,k=2,H=P,R="M "+(S+C)+" "+F+" L "+S+" "+F+" L "+S+" "+(F+P)+" L "+(S+C)+" "+(F+P)):"top"===v?(C=T+10,S=y.x-C/2,F=1,x=y.x,_="middle",A=S,I=F+P-2,k=C,H=2,R="M "+S+" "+F+" L "+S+" "+(F+P)+" L "+(S+C)+" "+(F+P)+" L "+(S+C)+" "+F):(C=T+10,S=y.x-C/2,F=n-P-1,x=y.x,_="middle",A=S,I=F,k=C,H=2,R="M "+S+" "+(F+P)+" L "+S+" "+F+" L "+(S+C)+" "+F+" L "+(S+C)+" "+(F+P));var M=this._FlowView._SVGHelperProvider.createSVGElement("g");M.setAttribute("class","pict-flow-port-badge"),M.setAttribute("data-port-hash",w.Hash),M.setAttribute("data-node-hash",t.Hash),this._wirePortHintHover(M,w.Hash,null);var V=this._FlowView._SVGHelperProvider.createSVGElement("rect");V.setAttribute("class","pict-flow-port-label-bg"),V.setAttribute("x",String(S)),V.setAttribute("y",String(F)),V.setAttribute("width",String(C)),V.setAttribute("height",String(P)),V.setAttribute("fill","var(--pf-port-label-bg, rgba(255, 253, 240, 0.5))"),M.appendChild(V);var E=this._FlowView._SVGHelperProvider.createSVGElement("path");E.setAttribute("class","pict-flow-port-label-bg"),E.setAttribute("d",R),E.setAttribute("fill","none"),E.setAttribute("stroke",D),E.setAttribute("stroke-width","0.75"),M.appendChild(E);var L=this._FlowView._SVGHelperProvider.createSVGElement("rect");L.setAttribute("class","pict-flow-port-label-bg"),L.setAttribute("x",String(A)),L.setAttribute("y",String(I)),L.setAttribute("width",String(k)),L.setAttribute("height",String(H)),L.setAttribute("fill",D),M.appendChild(L),e.appendChild(M),(b=this._FlowView._SVGHelperProvider.createSVGElement("text")).setAttribute("class","pict-flow-port-label"),b.setAttribute("fill","var(--pf-port-label-text, #2c3e50)"),b.textContent=w.Label,b.setAttribute("x",String(x)),b.setAttribute("y",String(F+6)),b.setAttribute("text-anchor",_),b.setAttribute("dominant-baseline","central")}if(!s[w.Hash]){var N=this._FlowView._ConnectorShapesProvider,O=void 0;if(N)O=N.createPortElement(w,y,t.Hash);else{O=this._FlowView._SVGHelperProvider.createSVGElement("circle");var G="pict-flow-port ".concat(w.Direction);w.PortType&&(G+=" port-type-".concat(w.PortType)),O.setAttribute("class",G),O.setAttribute("cx",String(y.x)),O.setAttribute("cy",String(y.y)),O.setAttribute("r","5"),O.setAttribute("data-port-hash",w.Hash),O.setAttribute("data-node-hash",t.Hash),O.setAttribute("data-port-direction",w.Direction),w.PortType&&O.setAttribute("data-port-type",w.PortType),O.setAttribute("data-element-type","port")}e.appendChild(O)}b&&e.appendChild(b)}}}},{key:"_wirePortHintHover",value:function(t,e,o){if(t&&"function"==typeof t.setAttribute&&this._FlowView&&this._FlowView.options){var n=this._FlowView.options.ViewIdentifier,r=e?'"'+e+'", null':'null, "'+o+'"';t.setAttribute("onmouseenter","_Pict.views['"+n+"']._activatePortHints("+r+")"),t.setAttribute("onmouseleave","_Pict.views['"+n+"']._deactivatePortHints("+r+")")}}},{key:"_collectConnectedPortHashes",value:function(t){var e={};if(!this._FlowView||!this._FlowView._FlowData||!Array.isArray(this._FlowView._FlowData.Connections))return e;for(var o=this._FlowView._FlowData.Connections,n=0;n<o.length;n++){var r=o[n];r.SourceNodeHash===t&&r.SourcePortHash&&(e[r.SourcePortHash]=!0),r.TargetNodeHash===t&&r.TargetPortHash&&(e[r.TargetPortHash]=!0)}return e}},{key:"getPortLocalPosition",value:function(t,e,o,n,r,i,a){return this._FlowView._GeometryProvider.getPortLocalPosition(t,e,o,n,r,i,a)}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],85:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowRenderManager",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"renderFlow",value:function(){if(this._FlowView&&this._FlowView._NodesLayer&&this._FlowView._ConnectionsLayer){for(;this._FlowView._NodesLayer.firstChild;)this._FlowView._NodesLayer.removeChild(this._FlowView._NodesLayer.firstChild);for(;this._FlowView._ConnectionsLayer.firstChild;)this._FlowView._ConnectionsLayer.removeChild(this._FlowView._ConnectionsLayer.firstChild);if(this._FlowView._EndpointsLayer)for(;this._FlowView._EndpointsLayer.firstChild;)this._FlowView._EndpointsLayer.removeChild(this._FlowView._EndpointsLayer.firstChild);if(this._FlowView._PortHintsLayer)for(;this._FlowView._PortHintsLayer.firstChild;)this._FlowView._PortHintsLayer.removeChild(this._FlowView._PortHintsLayer.firstChild);for(var t=0;t<this._FlowView._FlowData.Connections.length;t++){var e=this._FlowView._FlowData.Connections[t],o=this._FlowView._FlowData.ViewState.SelectedConnectionHash===e.Hash;this._FlowView._ConnectionRenderer.renderConnection(e,this._FlowView._ConnectionsLayer,o)}for(var n=0;n<this._FlowView._FlowData.Nodes.length;n++){var r=this._FlowView._FlowData.Nodes[n],i=this._FlowView._FlowData.ViewState.SelectedNodeHash===r.Hash,a=this._FlowView._NodeTypeProvider.getNodeType(r.Type);if(a&&a.DefaultPorts&&r.Ports)for(var s=0;s<r.Ports.length;s++)for(var l=r.Ports[s],c=0;c<a.DefaultPorts.length;c++){var p=a.DefaultPorts[c];if(p.Label===l.Label&&p.Direction===l.Direction){p.PortType&&(l.PortType=p.PortType),p.Side&&(l.Side=p.Side);break}}this._FlowView._NodeView.renderNode(r,this._FlowView._NodesLayer,i,a)}this._FlowView._PropertiesPanelView&&this._FlowView._PanelsLayer&&this._FlowView._TethersLayer&&this._FlowView._PropertiesPanelView.renderPanels(this._FlowView._FlowData.OpenPanels,this._FlowView._PanelsLayer,this._FlowView._TethersLayer,this._FlowView._FlowData.ViewState.SelectedTetherHash),this._FlowView.updateViewportTransform()}}},{key:"renderSingleConnection",value:function(t){if(this._FlowView&&this._FlowView._ConnectionsLayer){this._removeConnectionElements(t);var e=this._FlowView.getConnection(t);if(e){var o=this._FlowView._FlowData.ViewState.SelectedConnectionHash===t;this._FlowView._ConnectionRenderer.renderConnection(e,this._FlowView._ConnectionsLayer,o)}}}},{key:"renderSingleTether",value:function(t){if(this._FlowView&&this._FlowView._TethersLayer&&this._FlowView._TetherService){for(var e=this._FlowView._TethersLayer.querySelectorAll('[data-panel-hash="'.concat(t,'"]')),o=0;o<e.length;o++)e[o].remove();var n=this._FlowView._FlowData.OpenPanels.find(function(e){return e.Hash===t});if(n){var r=this._FlowView.getNode(n.NodeHash);if(r){var i=this._FlowView._FlowData.ViewState.SelectedTetherHash===t;this._FlowView._TetherService.renderTether(n,r,this._FlowView._TethersLayer,i,this._FlowView.options.ViewIdentifier)}}}}},{key:"updateNodePosition",value:function(t,e,o){if(this._FlowView){var n=this._FlowView.getNode(t);if(n){this._FlowView.options.EnableGridSnap&&(e=this._FlowView._LayoutService.snapToGrid(e,this._FlowView.options.GridSnapSize),o=this._FlowView._LayoutService.snapToGrid(o,this._FlowView.options.GridSnapSize)),n.X=e,n.Y=o,this._FlowView._resetHandlesForNode(t);var r=this._FlowView._NodesLayer.querySelector('[data-node-hash="'.concat(t,'"]'));r&&r.setAttribute("transform","translate(".concat(e,", ").concat(o,")")),this.renderConnectionsForNode(t),this.renderTethersForNode(t)}}}},{key:"renderConnectionsForNode",value:function(t){if(this._FlowView&&this._FlowView._ConnectionsLayer)for(var e=this._FlowView._FlowData.Connections.filter(function(e){return e.SourceNodeHash===t||e.TargetNodeHash===t}),o=0;o<e.length;o++){var n=e[o],r=this._FlowView._FlowData.ViewState.SelectedConnectionHash===n.Hash;this._removeConnectionElements(n.Hash),this._FlowView._ConnectionRenderer.renderConnection(n,this._FlowView._ConnectionsLayer,r)}}},{key:"_removeConnectionElements",value:function(t){for(var e=[this._FlowView._ConnectionsLayer,this._FlowView._EndpointsLayer,this._FlowView._PortHintsLayer],o=0;o<e.length;o++){var n=e[o];if(n)for(var r=n.querySelectorAll('[data-connection-hash="'.concat(t,'"]')),i=0;i<r.length;i++)r[i].remove()}}},{key:"renderTethersForNode",value:function(t){if(this._FlowView&&this._FlowView._TethersLayer&&this._FlowView._TetherService){var e=this._FlowView._FlowData.OpenPanels.filter(function(e){return e.NodeHash===t});if(0!==e.length)for(var o=0;o<e.length;o++){for(var n=this._FlowView._TethersLayer.querySelectorAll('[data-panel-hash="'.concat(e[o].Hash,'"]')),r=0;r<n.length;r++)n[r].remove();var i=this._FlowView.getNode(e[o].NodeHash);if(i){var a=this._FlowView._FlowData.ViewState.SelectedTetherHash===e[o].Hash;this._FlowView._TetherService.renderTether(e[o],i,this._FlowView._TethersLayer,a,this._FlowView.options.ViewIdentifier)}}}}},{key:"reinjectMarkerDefs",value:function(){if(this._FlowView&&this._FlowView._ConnectorShapesProvider&&this._FlowView._SVGElement){var t=this._FlowView.options.ViewIdentifier,e=this._FlowView._SVGElement.querySelector("defs");if(e){for(var o=e.querySelectorAll("marker"),n=0;n<o.length;n++)o[n].remove();var r=this._FlowView._ConnectorShapesProvider.generateMarkerDefs(t),i=document.createElementNS("http://www.w3.org/2000/svg","svg");for(i.innerHTML=r;i.firstChild;)e.appendChild(i.firstChild)}}}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],86:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowSelectionManager",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"selectNode",value:function(t){var e=this._FlowView._FlowData.ViewState.SelectedNodeHash;if(this._FlowView._FlowData.ViewState.SelectedNodeHash=t,this._FlowView._FlowData.ViewState.SelectedConnectionHash=null,this._FlowView._FlowData.ViewState.SelectedTetherHash=null,this._FlowView.renderFlow(),this._FlowView._EventHandlerProvider&&t!==e){var o=t?this._FlowView._FlowData.Nodes.find(function(e){return e.Hash===t}):null;this._FlowView._EventHandlerProvider.fireEvent("onNodeSelected",o)}}},{key:"selectConnection",value:function(t){var e=this._FlowView._FlowData.ViewState.SelectedConnectionHash;if(this._FlowView._FlowData.ViewState.SelectedConnectionHash=t,this._FlowView._FlowData.ViewState.SelectedNodeHash=null,this._FlowView._FlowData.ViewState.SelectedTetherHash=null,this._FlowView.renderFlow(),this._FlowView._EventHandlerProvider&&t!==e){var o=t?this._FlowView._FlowData.Connections.find(function(e){return e.Hash===t}):null;this._FlowView._EventHandlerProvider.fireEvent("onConnectionSelected",o)}}},{key:"selectTether",value:function(t){var e=this._FlowView._FlowData.ViewState.SelectedTetherHash;if(this._FlowView._FlowData.ViewState.SelectedTetherHash=t,this._FlowView._FlowData.ViewState.SelectedNodeHash=null,this._FlowView._FlowData.ViewState.SelectedConnectionHash=null,this._FlowView.renderFlow(),this._FlowView._EventHandlerProvider&&t!==e){var o=t?this._FlowView._FlowData.OpenPanels.find(function(e){return e.Hash===t}):null;this._FlowView._EventHandlerProvider.fireEvent("onTetherSelected",o)}}},{key:"deselectAll",value:function(){this._FlowView._FlowData.ViewState.SelectedNodeHash=null,this._FlowView._FlowData.ViewState.SelectedConnectionHash=null,this._FlowView._FlowData.ViewState.SelectedTetherHash=null,this._FlowView.renderFlow()}},{key:"deleteSelected",value:function(){return this._FlowView._FlowData.ViewState.SelectedNodeHash?this._FlowView.removeNode(this._FlowView._FlowData.ViewState.SelectedNodeHash):!!this._FlowView._FlowData.ViewState.SelectedConnectionHash&&this._FlowView.removeConnection(this._FlowView._FlowData.ViewState.SelectedConnectionHash)}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],87:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowTether",r._FlowView=o&&o.FlowView?o.FlowView:null,r}return _inherits(e,t),_createClass2(e,[{key:"getSmartAnchors",value:function(t,e){var o,n,r=e.X+e.Width/2,i=e.Y+e.Height/2,a=t.X+t.Width/2-r,s=t.Y+t.Height/2-i;Math.abs(a)>=Math.abs(s)?a>=0?(o="right",n="left"):(o="left",n="right"):s>=0?(o="bottom",n="top"):(o="top",n="bottom");var l=this._FlowView._GeometryProvider.getEdgeCenter(e,o),c=this._FlowView._GeometryProvider.getEdgeCenter(t,n);return{nodeAnchor:Object.assign(l,{side:o}),panelAnchor:Object.assign(c,{side:n})}}},{key:"generateBezierPath",value:function(t,e,o,n){var r=this._FlowView._GeometryProvider.sideDirection(t.side),i=this._FlowView._GeometryProvider.sideDirection(e.side),a=t.x+20*r.dx,s=t.y+20*r.dy,l=e.x+20*i.dx,c=e.y+20*i.dy;if(null==o||null==n){var p=Math.abs(l-a),u=Math.abs(c-s),d=.4*Math.max(p,u,40),h=a+r.dx*d,f=s+r.dy*d,m=l+i.dx*d,v=c+i.dy*d;return this._FlowView._PathGenerator.buildBezierPathString({x:t.x,y:t.y},{x:a,y:s},{x:h,y:f},{x:m,y:v},{x:l,y:c},{x:e.x,y:e.y})}var g=a+30*r.dx,w=s+30*r.dy,y=l+30*i.dx,b=c+30*i.dy,D=l-a,P=c-s,T=Math.sqrt(D*D+P*P)||1,S=o-25*(D/=T),F=n-25*(P/=T),C=o+25*D,x=n+25*P;return this._FlowView._PathGenerator.buildSplitBezierPathString({x:t.x,y:t.y},{x:a,y:s},{x:g,y:w},{x:S,y:F},{x:o,y:n},{x:C,y:x},{x:y,y:b},{x:l,y:c},{x:e.x,y:e.y})}},{key:"generateOrthogonalPath",value:function(t,e,o,n){var r,i,a=this._FlowView._GeometryProvider.sideDirection(t.side),s=this._FlowView._GeometryProvider.sideDirection(e.side),l=t.x+20*a.dx,c=t.y+20*a.dy,p=e.x+20*s.dx,u=e.y+20*s.dy;if(o&&o.corner1&&o.corner2)r=o.corner1,i=o.corner2;else{var d=this._FlowView._PathGenerator.computeAutoOrthogonalCorners(l,c,p,u,a,s,n);r=d.corner1,i=d.corner2}return this._FlowView._PathGenerator.buildOrthogonalPathString({x:t.x,y:t.y},{x:l,y:c},{x:r.x,y:r.y},{x:i.x,y:i.y},{x:p,y:u},{x:e.x,y:e.y})}},{key:"getAutoMidpoint",value:function(t,e){return this._FlowView._PathGenerator.getAutoMidpointSimple(t,e,20)}},{key:"getOrthoGeometry",value:function(t,e,o){var n,r=this._FlowView._GeometryProvider.sideDirection(t.side),i=this._FlowView._GeometryProvider.sideDirection(e.side),a=t.x+20*r.dx,s=t.y+20*r.dy,l=e.x+20*i.dx,c=e.y+20*i.dy;o.TetherHandleCustomized&&null!=o.TetherOrthoCorner1X?((n=this._FlowView._PathGenerator.computeAutoOrthogonalCorners(a,s,l,c,r,i,o.TetherOrthoMidOffset||0)).corner1={x:o.TetherOrthoCorner1X,y:o.TetherOrthoCorner1Y},n.corner2={x:o.TetherOrthoCorner2X,y:o.TetherOrthoCorner2Y}):n=this._FlowView._PathGenerator.computeAutoOrthogonalCorners(a,s,l,c,r,i,o.TetherOrthoMidOffset||0);var p={x:(n.corner1.x+n.corner2.x)/2,y:(n.corner1.y+n.corner2.y)/2};return{corner1:n.corner1,corner2:n.corner2,midpoint:p}}},{key:"generatePath",value:function(t,e,o){if("orthogonal"===(t.TetherLineMode||"bezier")){var n=null;return t.TetherHandleCustomized&&null!=t.TetherOrthoCorner1X&&(n={corner1:{x:t.TetherOrthoCorner1X,y:t.TetherOrthoCorner1Y},corner2:{x:t.TetherOrthoCorner2X,y:t.TetherOrthoCorner2Y}}),this.generateOrthogonalPath(e,o,n,t.TetherOrthoMidOffset||0)}var r=this._getTetherBezierHandles(t);if(r.length>0)return this.generateMultiBezierPath(e,o,r);var i=t.TetherHandleCustomized&&null!=t.TetherBezierHandleX?t.TetherBezierHandleX:null,a=t.TetherHandleCustomized&&null!=t.TetherBezierHandleY?t.TetherBezierHandleY:null;return this.generateBezierPath(e,o,i,a)}},{key:"_getTetherBezierHandles",value:function(t){return t&&t.TetherHandleCustomized?Array.isArray(t.TetherBezierHandles)&&t.TetherBezierHandles.length>0?t.TetherBezierHandles:null!=t.TetherBezierHandleX&&null!=t.TetherBezierHandleY?[{x:t.TetherBezierHandleX,y:t.TetherBezierHandleY}]:[]:[]}},{key:"generateMultiBezierPath",value:function(t,e,o){var n=this._FlowView._GeometryProvider.sideDirection(t.side),r=this._FlowView._GeometryProvider.sideDirection(e.side),i={x:t.x+20*n.dx,y:t.y+20*n.dy},a={x:e.x+20*r.dx,y:e.y+20*r.dy};return this._FlowView._PathGenerator.buildMultiBezierPathString(t,i,t.side,a,e.side,e,o)}},{key:"updateHandlePosition",value:function(t,e,o,n){if(t.TetherHandleCustomized=!0,e&&e.startsWith("bezier-handle-")){var r=parseInt(e.replace("bezier-handle-",""),10);!isNaN(r)&&Array.isArray(t.TetherBezierHandles)&&r<t.TetherBezierHandles.length&&(t.TetherBezierHandles[r].x=o,t.TetherBezierHandles[r].y=n)}else switch(e){case"bezier-midpoint":Array.isArray(t.TetherBezierHandles)&&0!==t.TetherBezierHandles.length?(t.TetherBezierHandles[0].x=o,t.TetherBezierHandles[0].y=n):t.TetherBezierHandles=[{x:o,y:n}],t.TetherBezierHandleX=o,t.TetherBezierHandleY=n;break;case"ortho-corner1":t.TetherOrthoCorner1X=o,t.TetherOrthoCorner1Y=n;break;case"ortho-corner2":t.TetherOrthoCorner2X=o,t.TetherOrthoCorner2Y=n;break;case"ortho-midpoint":t.TetherOrthoMidOffset=t.TetherOrthoMidOffset||0,t._TetherMidDragX=o,t._TetherMidDragY=n}}},{key:"resetHandlePositions",value:function(t){t.TetherHandleCustomized&&(t.TetherHandleCustomized=!1,t.TetherBezierHandles=[],t.TetherBezierHandleX=null,t.TetherBezierHandleY=null,t.TetherOrthoCorner1X=null,t.TetherOrthoCorner1Y=null,t.TetherOrthoCorner2X=null,t.TetherOrthoCorner2Y=null,t.TetherOrthoMidOffset=0)}},{key:"resetHandlesForNode",value:function(t,e){for(var o=0;o<t.length;o++){var n=t[o];n.NodeHash===e&&this.resetHandlePositions(n)}}},{key:"addHandle",value:function(t,e,o,n,r){t.TetherLineMode="bezier",Array.isArray(t.TetherBezierHandles)||(t.TetherBezierHandles=[],null!=t.TetherBezierHandleX&&null!=t.TetherBezierHandleY&&t.TetherBezierHandles.push({x:t.TetherBezierHandleX,y:t.TetherBezierHandleY}));var i=0;this._FlowView._ConnectionRenderer&&n&&r&&(i=this._FlowView._ConnectionRenderer.computeInsertionIndex(t.TetherBezierHandles,{x:e,y:o},n,r)),t.TetherBezierHandles.splice(i,0,{x:e,y:o}),t.TetherHandleCustomized=!0}},{key:"removeHandle",value:function(t,e){Array.isArray(t.TetherBezierHandles)&&(e<0||e>=t.TetherBezierHandles.length||(t.TetherBezierHandles.splice(e,1),0===t.TetherBezierHandles.length&&(t.TetherHandleCustomized=!1,t.TetherBezierHandleX=null,t.TetherBezierHandleY=null)))}},{key:"toggleLineMode",value:function(t){var e=t.TetherLineMode||"bezier";return t.TetherLineMode="bezier"===e?"orthogonal":"bezier",t.TetherHandleCustomized=!1,t.TetherBezierHandles=[],t.TetherBezierHandleX=null,t.TetherBezierHandleY=null,t.TetherOrthoCorner1X=null,t.TetherOrthoCorner1Y=null,t.TetherOrthoCorner2X=null,t.TetherOrthoCorner2Y=null,t.TetherOrthoMidOffset=0,t.TetherLineMode}},{key:"renderTether",value:function(t,e,o,n,r){if(e){var i=this.getSmartAnchors(t,e),a=i.panelAnchor,s=i.nodeAnchor,l=this.generatePath(t,a,s),c=this._FlowView._ConnectorShapesProvider;if(c){var p=c.createTetherHitAreaElement(l,t.Hash);o.appendChild(p);var u=c.createTetherPathElement(l,t.Hash,n,r);o.appendChild(u)}else{var d=this._FlowView._SVGHelperProvider.createSVGElement("path");d.setAttribute("class","pict-flow-tether-hitarea"),d.setAttribute("d",l),d.setAttribute("data-element-type","tether-hitarea"),d.setAttribute("data-panel-hash",t.Hash),o.appendChild(d);var h=this._FlowView._SVGHelperProvider.createSVGElement("path");h.setAttribute("class","pict-flow-tether-line".concat(n?" selected":"")),h.setAttribute("d",l),h.setAttribute("marker-end","url(#flow-tether-arrowhead-".concat(r,")")),h.setAttribute("data-element-type","tether"),h.setAttribute("data-panel-hash",t.Hash),o.appendChild(h)}n&&this._renderHandles(t,o,a,s)}}},{key:"_renderHandles",value:function(t,e,o,n){if("orthogonal"===(t.TetherLineMode||"bezier")){var r=this.getOrthoGeometry(o,n,t);this._createHandle(e,t.Hash,"ortho-corner1",r.corner1.x,r.corner1.y,"pict-flow-tether-handle"),this._createHandle(e,t.Hash,"ortho-midpoint",r.midpoint.x,r.midpoint.y,"pict-flow-tether-handle-midpoint"),this._createHandle(e,t.Hash,"ortho-corner2",r.corner2.x,r.corner2.y,"pict-flow-tether-handle")}else{var i=this._getTetherBezierHandles(t);if(i.length>0)for(var a=0;a<i.length;a++)this._createHandle(e,t.Hash,"bezier-handle-"+a,i[a].x,i[a].y,"pict-flow-tether-handle");else{var s=this.getAutoMidpoint(o,n);this._createHandle(e,t.Hash,"bezier-midpoint",s.x,s.y,"pict-flow-tether-handle-midpoint")}}}},{key:"_createHandle",value:function(t,e,o,n,r,i){if(this._FlowView._ConnectorShapesProvider){var a="pict-flow-tether-handle-midpoint"===i?"tether-handle-midpoint":"tether-handle";this._FlowView._ConnectorShapesProvider.createFullHandle(t,e,o,n,r,a,"tether-handle","data-panel-hash")}}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],88:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).serviceType="PictServiceFlowViewportManager",r._FlowView=o&&o.FlowView?o.FlowView:null,r._IsFullscreen=!1,r}return _inherits(e,t),_createClass2(e,[{key:"updateViewportTransform",value:function(){if(this._FlowView._ViewportElement){var t=this._FlowView._FlowData.ViewState;this._FlowView._ViewportElement.setAttribute("transform","translate(".concat(t.PanX,", ").concat(t.PanY,") scale(").concat(t.Zoom,")"))}}},{key:"setZoom",value:function(t,e,o){var n=Math.max(this._FlowView.options.MinZoom,Math.min(this._FlowView.options.MaxZoom,t)),r=this._FlowView._FlowData.ViewState.Zoom;if("number"==typeof e&&"number"==typeof o){var i=this._FlowView._FlowData.ViewState;i.PanX=e-(e-i.PanX)*(n/r),i.PanY=o-(o-i.PanY)*(n/r)}this._FlowView._FlowData.ViewState.Zoom=n,this.updateViewportTransform()}},{key:"zoomToFit",value:function(){if(0!==this._FlowView._FlowData.Nodes.length&&this._FlowView._SVGElement){for(var t=1/0,e=1/0,o=-1/0,n=-1/0,r=0;r<this._FlowView._FlowData.Nodes.length;r++){var i=this._FlowView._FlowData.Nodes[r];t=Math.min(t,i.X),e=Math.min(e,i.Y),o=Math.max(o,i.X+i.Width),n=Math.max(n,i.Y+i.Height)}var a=o-t+100,s=n-e+100,l=this._FlowView._SVGElement.getBoundingClientRect(),c=l.width/a,p=l.height/s,u=Math.min(c,p,1);u=Math.max(this._FlowView.options.MinZoom,Math.min(this._FlowView.options.MaxZoom,u));var d=(t+o)/2,h=(e+n)/2;this._FlowView._FlowData.ViewState.Zoom=u,this._FlowView._FlowData.ViewState.PanX=l.width/2-d*u,this._FlowView._FlowData.ViewState.PanY=l.height/2-h*u,this.updateViewportTransform()}}},{key:"screenToSVGCoords",value:function(t,e){if(!this._FlowView._SVGElement)return{x:t,y:e};var o=this._FlowView._SVGElement.createSVGPoint();o.x=t,o.y=e;var n=this._FlowView._SVGElement.getScreenCTM();if(n){var r=n.inverse(),i=o.matrixTransform(r),a=this._FlowView._FlowData.ViewState;return{x:(i.x-a.PanX)/a.Zoom,y:(i.y-a.PanY)/a.Zoom}}return{x:t,y:e}}},{key:"toggleFullscreen",value:function(){var t=this._FlowView.options.ViewIdentifier,e=this._FlowView.pict.ContentAssignment.getElement("#Flow-Wrapper-".concat(t));if(e.length<1)return this._IsFullscreen;var o=e[0];return this._IsFullscreen=!this._IsFullscreen,this._IsFullscreen?o.classList.add("pict-flow-fullscreen"):o.classList.remove("pict-flow-fullscreen"),this._IsFullscreen}},{key:"exitFullscreen",value:function(){if(this._IsFullscreen){var t=this._FlowView.options.ViewIdentifier,e=this._FlowView.pict.ContentAssignment.getElement("#Flow-Wrapper-".concat(t));e.length>0&&e[0].classList.remove("pict-flow-fullscreen"),this._IsFullscreen=!1}}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],89:[function(t,e,o){var n=t("pict-view"),r={ViewIdentifier:"Flow-FloatingToolbar",DefaultRenderable:"Flow-FloatingToolbar-Content",DefaultDestinationAddress:"#Flow-FloatingToolbar-Container",AutoRender:!1,FlowViewIdentifier:"Pict-Flow",CSS:!1,Templates:[{Hash:"Flow-FloatingToolbar-Template",Template:'\n<div class="pict-flow-floating-toolbar" id="Flow-FloatingToolbar-{~D:Record.FlowViewIdentifier~}">\n\t<div class="pict-flow-floating-grip" id="Flow-FloatingGrip-{~D:Record.FlowViewIdentifier~}" title="Drag to move · Double-click to collapse"\n\t\tonmousedown="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._startDrag(event)"\n\t\tondblclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleGripDoubleClick(event)">\n\t\t<span id="Flow-FloatingIcon-grip-{~D:Record.FlowViewIdentifier~}"></span>\n\t</div>\n\t<button class="pict-flow-floating-btn" data-flow-action="add-node" title="Add Node"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'add-node\')">\n\t\t<span id="Flow-FloatingIcon-plus-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<button class="pict-flow-floating-btn" data-flow-action="cards-popup" title="Cards"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'cards-popup\')">\n\t\t<span id="Flow-FloatingIcon-cards-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<button class="pict-flow-floating-btn" data-flow-action="delete-selected" title="Delete Selected"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'delete-selected\')">\n\t\t<span id="Flow-FloatingIcon-trash-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<div class="pict-flow-floating-separator"></div>\n\t<button class="pict-flow-floating-btn" data-flow-action="zoom-in" title="Zoom In"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'zoom-in\')">\n\t\t<span id="Flow-FloatingIcon-zoom-in-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<button class="pict-flow-floating-btn" data-flow-action="zoom-out" title="Zoom Out"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'zoom-out\')">\n\t\t<span id="Flow-FloatingIcon-zoom-out-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<button class="pict-flow-floating-btn" data-flow-action="zoom-fit" title="Fit to View"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'zoom-fit\')">\n\t\t<span id="Flow-FloatingIcon-zoom-fit-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<div class="pict-flow-floating-separator"></div>\n\t<button class="pict-flow-floating-btn" data-flow-action="auto-layout" title="Auto Layout"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'auto-layout\')">\n\t\t<span id="Flow-FloatingIcon-auto-layout-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<button class="pict-flow-floating-btn" data-flow-action="layout-popup" title="Layout"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'layout-popup\')">\n\t\t<span id="Flow-FloatingIcon-layout-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<button class="pict-flow-floating-btn" data-flow-action="fullscreen" title="Toggle Fullscreen"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'fullscreen\')">\n\t\t<span id="Flow-FloatingIcon-fullscreen-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n\t<div class="pict-flow-floating-separator"></div>\n\t<button class="pict-flow-floating-btn" data-flow-action="dock-toolbar" title="Dock Toolbar"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._FloatingToolbarView._handleButtonClick(\'dock-toolbar\')">\n\t\t<span id="Flow-FloatingIcon-dock-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n</div>\n'}],Renderables:[{RenderableHash:"Flow-FloatingToolbar-Content",TemplateHash:"Flow-FloatingToolbar-Template",DestinationAddress:"#Flow-FloatingToolbar-Container",RenderMethod:"replace"}]},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).serviceType="PictViewFlowFloatingToolbar",i._ToolbarView=null,i._FlowView=null,i._IsCollapsed=!1,i._IsDragging=!1,i._DragStartX=0,i._DragStartY=0,i._DragStartLeft=0,i._DragStartTop=0,i._BoundMouseMove=null,i._BoundMouseUp=null,i}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,o,n){return _superPropGet(e,"render",this,3)([t,o,this.options])}},{key:"onAfterRender",value:function(t,o,n,r){var i=this.options.FlowViewIdentifier;this._populateIcons();var a=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-".concat(i));if(a.length>0){if(!1===this.options.EnableAddNode){var s=a[0].querySelector('[data-flow-action="add-node"]');s&&s.remove()}if(!1===this.options.EnableCardPalette){var l=a[0].querySelector('[data-flow-action="cards-popup"]');l&&l.remove()}}return _superPropGet(e,"onAfterRender",this,3)([t,o,n,r])}},{key:"_handleButtonClick",value:function(t){"dock-toolbar"!==t?this._ToolbarView&&this._ToolbarView._handleToolbarAction(t):this._ToolbarView&&this._ToolbarView._setToolbarMode("docked")}},{key:"_handleGripDoubleClick",value:function(t){t&&"function"==typeof t.preventDefault&&(t.preventDefault(),t.stopPropagation()),this._toggleCollapse()}},{key:"_populateIcons",value:function(){var t=this._FlowView?this._FlowView._IconProvider:null;if(t)for(var e=this.options.FlowViewIdentifier,o={grip:"grip",plus:"plus",trash:"trash","zoom-in":"zoom-in","zoom-out":"zoom-out","zoom-fit":"zoom-fit","auto-layout":"auto-layout",cards:"cards",layout:"layout",fullscreen:"fullscreen",dock:"dock"},n=Object.keys(o),r=0;r<n.length;r++){var i="Flow-FloatingIcon-".concat(n[r],"-").concat(e),a=this.pict.ContentAssignment.getElement("#".concat(i));a.length>0&&(a[0].innerHTML=t.getIconSVGMarkup(o[n[r]],16))}}},{key:"_toggleCollapse",value:function(){var t=this.options.FlowViewIdentifier,e=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-".concat(t));e.length<1||(this._IsCollapsed=!this._IsCollapsed,this._IsCollapsed?e[0].classList.add("collapsed"):e[0].classList.remove("collapsed"))}},{key:"_startDrag",value:function(t){var e=this;t.preventDefault();var o=this.options.FlowViewIdentifier,n=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-".concat(o));if(!(n.length<1)){var r=n[0];this._IsDragging=!0,this._DragStartX=t.clientX,this._DragStartY=t.clientY,this._DragStartLeft=r.offsetLeft,this._DragStartTop=r.offsetTop,this._BoundMouseMove=function(t){e._onDragMove(t)},this._BoundMouseUp=function(){e._onDragEnd()},document.addEventListener("mousemove",this._BoundMouseMove),document.addEventListener("mouseup",this._BoundMouseUp)}}},{key:"_onDragMove",value:function(t){if(this._IsDragging){var e=this.options.FlowViewIdentifier,o=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-".concat(e));if(!(o.length<1)){var n=o[0],r=t.clientX-this._DragStartX,i=t.clientY-this._DragStartY,a=this._DragStartLeft+r,s=this._DragStartTop+i,l=n.parentElement;if(l){var c=l.clientWidth-n.offsetWidth,p=l.clientHeight-n.offsetHeight;a=Math.max(0,Math.min(a,c)),s=Math.max(0,Math.min(s,p))}n.style.left=a+"px",n.style.top=s+"px"}}}},{key:"_onDragEnd",value:function(){if(this._IsDragging=!1,this._BoundMouseMove&&(document.removeEventListener("mousemove",this._BoundMouseMove),this._BoundMouseMove=null),this._BoundMouseUp&&(document.removeEventListener("mouseup",this._BoundMouseUp),this._BoundMouseUp=null),this._ToolbarView){var t=this.options.FlowViewIdentifier,e=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-".concat(t));e.length>0&&(this._ToolbarView._FloatingPosition.X=e[0].offsetLeft,this._ToolbarView._FloatingPosition.Y=e[0].offsetTop)}}},{key:"show",value:function(){var t=this.options.FlowViewIdentifier,e=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-Container-".concat(t));e.length>0&&(e[0].style.display="block");var o=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-".concat(t));o.length>0&&this._ToolbarView&&(o[0].style.left=this._ToolbarView._FloatingPosition.X+"px",o[0].style.top=this._ToolbarView._FloatingPosition.Y+"px"),this._IsCollapsed&&o.length>0&&(this._IsCollapsed=!1,o[0].classList.remove("collapsed"))}},{key:"hide",value:function(){var t=this.options.FlowViewIdentifier,e=this.pict.ContentAssignment.getElement("#Flow-FloatingToolbar-Container-".concat(t));e.length>0&&(e[0].style.display="none")}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-view":171}],90:[function(t,e,o){var n=t("pict-view"),r={ViewIdentifier:"Flow-NodeRenderer",AutoRender:!1,NodeTitleBarHeight:22},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).serviceType="PictViewFlowNode",i._FlowView=null,i}return _inherits(e,t),_createClass2(e,[{key:"renderNode",value:function(t,e,o,n){var r=this,i=this._FlowView._SVGHelperProvider.createSVGElement("g"),a="pict-flow-node ".concat(o?"selected":""," pict-flow-node-").concat(t.Type||"default");n&&(n.PortLabelsOnHover&&(a+=" pict-flow-node-port-labels-hover"),n.PortLabelsVertical&&(a+=" pict-flow-node-port-labels-vertical"));var s=void 0!==t.ColorRole?t.ColorRole:n&&n.ColorRole;s&&"none"!==s&&(a+=" pict-flow-node-color-"+s),i.setAttribute("class",a),i.setAttribute("transform","translate(".concat(t.X,", ").concat(t.Y,")")),i.setAttribute("data-node-hash",t.Hash),i.setAttribute("data-element-type","node"),this._FlowView._PortRenderer&&"function"==typeof this._FlowView._PortRenderer._wirePortHintHover&&this._FlowView._PortRenderer._wirePortHintHover(i,null,t.Hash);var l=t.Width||180,c=t.Height||80,p=this.options.NodeTitleBarHeight,u=this._FlowView._GeometryProvider;if(u&&t.Ports&&t.Ports.length>0){var d=u.computeMinimumNodeHeight(t.Ports,p);d>c&&(c=d)}t.Width=l,t.Height=c;var h="rect";if(this._FlowView._ThemeProvider){var f=this._FlowView._ThemeProvider.getActiveTheme();f&&f.NodeBodyMode&&(h=f.NodeBodyMode)}"bracket"===h?this._renderBracketNodeBody(i,t,l,c,p,n):this._renderRectNodeBody(i,t,l,c,p,n);var m=!1,v=12;if(n&&n.CardMetadata){var g=n.CardMetadata,w=this._FlowView._IconProvider;(g.Icon||w)&&(m=!0)}var y=this._FlowView._SVGHelperProvider.createSVGElement("text");y.setAttribute("class","pict-flow-node-title"),m?(y.setAttribute("x",String(24)),y.setAttribute("text-anchor","start")):(y.setAttribute("x",String(l/2)),y.setAttribute("text-anchor","middle")),y.setAttribute("y",String(p/2+1)),y.setAttribute("dominant-baseline","central"),y.textContent=t.Title||"Untitled",i.appendChild(y);var b=!n||!1!==n.ShowTypeLabel,D=function(){if(b&&n&&n.Label&&n.Label!==t.Title){var e=r._FlowView._SVGHelperProvider.createSVGElement("text");e.setAttribute("class","pict-flow-node-type-label"),e.setAttribute("x",String(l/2)),e.setAttribute("y",String(p+16)),e.setAttribute("text-anchor","middle"),e.setAttribute("dominant-baseline","central"),e.textContent=n.Label,i.appendChild(e)}if(n&&n.CardMetadata){var o=n.CardMetadata,a=r._FlowView._IconProvider,s=!1,u=(p-v)/2;if(o.Icon&&a&&!a.isEmojiIcon(o.Icon)){var d=a.resolveIconKey(o),h=a.renderIconIntoSVGGroup(d,i,8,u,v);h&&h.setAttribute("class",(h.getAttribute("class")||"")+" pict-flow-node-title-icon"),s=!0}else if(o.Icon&&a&&a.isEmojiIcon(o.Icon)){var f=r._FlowView._SVGHelperProvider.createSVGElement("text");f.setAttribute("class","pict-flow-node-card-icon pict-flow-node-title-icon-emoji"),f.setAttribute("font-size",String(v)),f.setAttribute("text-anchor","middle"),f.setAttribute("dominant-baseline","central"),f.setAttribute("pointer-events","none"),f.setAttribute("x",String(14)),f.setAttribute("y",String(p/2)),f.textContent=o.Icon,i.appendChild(f),s=!0}else if(o.Icon){var m=r._FlowView._SVGHelperProvider.createSVGElement("text");m.setAttribute("class","pict-flow-node-card-icon pict-flow-node-title-icon-emoji"),m.setAttribute("font-size",String(v)),m.setAttribute("text-anchor","middle"),m.setAttribute("dominant-baseline","central"),m.setAttribute("pointer-events","none"),m.setAttribute("x",String(14)),m.setAttribute("y",String(p/2)),m.textContent=o.Icon,i.appendChild(m),s=!0}if(!s&&a){var g=a.renderIconIntoSVGGroup("default",i,8,u,v);g&&g.setAttribute("class",(g.getAttribute("class")||"")+" pict-flow-node-title-icon")}var w=p+(c-p)/2;if(b&&o.Code){var y=r._FlowView._SVGHelperProvider.createSVGElement("text");y.setAttribute("class","pict-flow-node-card-code"),y.setAttribute("font-size","10"),y.setAttribute("font-family","monospace"),y.setAttribute("fill","var(--theme-color-text-secondary, #7f8c8d)"),y.setAttribute("text-anchor","middle"),y.setAttribute("dominant-baseline","central"),y.setAttribute("pointer-events","none"),y.setAttribute("x",String(l/2)),y.setAttribute("y",String(w)),y.textContent=o.Code,i.appendChild(y)}if(o.Tooltip||o.Description){var D=r._FlowView._SVGHelperProvider.createSVGElement("title");D.textContent=o.Tooltip||o.Description,i.appendChild(D)}}};if(!n||!1!==n.LabelsInFront?(this._renderBodyContent(t,i,l,c,n),D(),this._renderPorts(t,i,l,c,n)):(D(),this._renderPorts(t,i,l,c,n),this._renderBodyContent(t,i,l,c,n)),n&&n.PropertiesPanel){var P,T=10,S=l-T-4,F=c-T-4,C=this._FlowView._ConnectorShapesProvider;C?P=C.createPanelIndicatorElement(t.Hash,S,F,T,T):((P=this._FlowView._SVGHelperProvider.createSVGElement("rect")).setAttribute("class","pict-flow-node-panel-indicator"),P.setAttribute("x",String(S)),P.setAttribute("y",String(F)),P.setAttribute("width",String(T)),P.setAttribute("height",String(T)),P.setAttribute("rx","2"),P.setAttribute("ry","2"),P.setAttribute("data-node-hash",t.Hash),P.setAttribute("data-element-type","panel-indicator"));var x=this._FlowView._SVGHelperProvider.createSVGElement("title");x.textContent="Double-click to open properties",P.appendChild(x),i.appendChild(P)}e.appendChild(i)}},{key:"_renderPorts",value:function(t,e,o,n,r){this._FlowView._PortRenderer.renderPorts(t,e,o,n,r,this.options.NodeTitleBarHeight)}},{key:"_renderBodyContent",value:function(t,e,o,n,r){if(r&&r.BodyContent){var i=r.BodyContent,a=i.ContentType;if(a){var s=this.options.NodeTitleBarHeight,l="number"==typeof i.Padding?i.Padding:2,c={x:l,y:s+l,width:o-2*l,height:n-s-2*l},p=this._FlowView.pict||this.pict;if(i.Templates&&Array.isArray(i.Templates)){this._registeredBodyTemplates||(this._registeredBodyTemplates=new Set);for(var u=0;u<i.Templates.length;u++){var d=i.Templates[u];d.Hash&&d.Template&&!this._registeredBodyTemplates.has(d.Hash)&&(p.TemplateProvider.addTemplate(d.Hash,d.Template,"PictViewFlowNode-BodyContent"),this._registeredBodyTemplates.add(d.Hash))}}switch(a){case"svg":this._renderBodyContentSVG(t,e,i,c,r,p);break;case"html":this._renderBodyContentHTML(t,e,i,c,r,p);break;case"canvas":this._renderBodyContentCanvas(t,e,i,c,r);break;default:this.log.warn("PictViewFlowNode _renderBodyContent: unknown ContentType ["+a+"]")}}}}},{key:"_renderBodyContentSVG",value:function(t,e,o,n,r,i){var a=this._FlowView._SVGHelperProvider.createSVGElement("g");a.setAttribute("class","pict-flow-node-body-content"),a.setAttribute("transform","translate(".concat(n.x,", ").concat(n.y,")"));var s=this._resolveBodyTemplate(o,t,i);if(s){var l=document.createElementNS("http://www.w3.org/2000/svg","svg");for(l.innerHTML=s;l.firstChild;)a.appendChild(l.firstChild)}"function"==typeof o.RenderCallback&&o.RenderCallback(a,t,r,n),e.appendChild(a)}},{key:"_renderBodyContentHTML",value:function(t,e,o,n,r,i){var a=this._FlowView._SVGHelperProvider.createSVGElement("foreignObject");a.setAttribute("class","pict-flow-node-body-content-fo"),a.setAttribute("x",String(n.x)),a.setAttribute("y",String(n.y)),a.setAttribute("width",String(n.width)),a.setAttribute("height",String(n.height));var s=document.createElement("div");s.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),s.setAttribute("class","pict-flow-node-body-content-html"),s.setAttribute("onpointerdown","event.stopPropagation()"),s.setAttribute("onwheel","event.stopPropagation()");var l=this._resolveBodyTemplate(o,t,i);l&&(s.innerHTML=l),"function"==typeof o.RenderCallback&&o.RenderCallback(s,t,r,n),a.appendChild(s),e.appendChild(a)}},{key:"_renderBodyContentCanvas",value:function(t,e,o,n,r){var i=this._FlowView._SVGHelperProvider.createSVGElement("foreignObject");i.setAttribute("class","pict-flow-node-body-content-fo"),i.setAttribute("x",String(n.x)),i.setAttribute("y",String(n.y)),i.setAttribute("width",String(n.width)),i.setAttribute("height",String(n.height));var a=document.createElement("canvas");a.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),a.setAttribute("class","pict-flow-node-body-content-canvas"),a.width=Math.floor(n.width),a.height=Math.floor(n.height),a.style.width="100%",a.style.height="100%",a.setAttribute("onpointerdown","event.stopPropagation()"),a.setAttribute("onwheel","event.stopPropagation()"),"function"==typeof o.RenderCallback&&o.RenderCallback(a,t,r,n),i.appendChild(a),e.appendChild(i)}},{key:"_resolveBodyTemplate",value:function(t,e,o){return t.TemplateHash?o.parseTemplateByHash(t.TemplateHash,e):t.Template?o.parseTemplate(t.Template,e,null,[e]):null}},{key:"_renderRectNodeBody",value:function(t,e,o,n,r,i){var a=this._FlowView._SVGHelperProvider.createSVGElement("rect");if(a.setAttribute("class","pict-flow-node-body"),a.setAttribute("x","0"),a.setAttribute("y","0"),a.setAttribute("width",String(o)),a.setAttribute("height",String(n)),a.setAttribute("data-node-hash",e.Hash),a.setAttribute("data-element-type","node-body"),i&&i.BodyStyle)for(var s in i.BodyStyle)a.setAttribute(s,i.BodyStyle[s]);if(e.BodyStyle)for(var l in e.BodyStyle)a.setAttribute(l,e.BodyStyle[l]);if(e.Style){var c=[];e.Style.BodyFill&&c.push("fill:"+e.Style.BodyFill),e.Style.BodyStroke&&c.push("stroke:"+e.Style.BodyStroke),e.Style.BodyStrokeWidth&&c.push("stroke-width:"+e.Style.BodyStrokeWidth),c.length>0&&a.setAttribute("style",c.join(";"))}t.appendChild(a);var p=this._FlowView._SVGHelperProvider.createSVGElement("rect");p.setAttribute("class","pict-flow-node-title-bar"),p.setAttribute("x","0"),p.setAttribute("y","0"),p.setAttribute("width",String(o)),p.setAttribute("height",String(r)),p.setAttribute("data-node-hash",e.Hash),p.setAttribute("data-element-type","node-body"),i&&i.TitleBarColor&&p.setAttribute("fill",i.TitleBarColor),e.TitleBarColor&&p.setAttribute("fill",e.TitleBarColor),t.appendChild(p);var u=this._FlowView._SVGHelperProvider.createSVGElement("rect");u.setAttribute("class","pict-flow-node-title-bar-bottom"),u.setAttribute("x","0"),u.setAttribute("y",String(r-8)),u.setAttribute("width",String(o)),u.setAttribute("height","8"),u.setAttribute("data-node-hash",e.Hash),u.setAttribute("data-element-type","node-body"),i&&i.TitleBarColor&&u.setAttribute("fill",i.TitleBarColor),e.TitleBarColor&&u.setAttribute("fill",e.TitleBarColor),e.Style&&e.Style.TitleBarColor&&(p.setAttribute("style","fill:"+e.Style.TitleBarColor),u.setAttribute("style","fill:"+e.Style.TitleBarColor)),t.appendChild(u)}},{key:"_renderBracketNodeBody",value:function(t,e,o,n,r,i){var a=this._FlowView._SVGHelperProvider.createSVGElement("rect");if(a.setAttribute("class","pict-flow-node-body pict-flow-node-bracket-fill"),a.setAttribute("x","0"),a.setAttribute("y","0"),a.setAttribute("width",String(o)),a.setAttribute("height",String(n)),a.setAttribute("data-node-hash",e.Hash),a.setAttribute("data-element-type","node-body"),e.Style){var s=[];e.Style.BodyFill&&s.push("fill:"+e.Style.BodyFill),s.length>0&&a.setAttribute("style",s.join(";"))}t.appendChild(a);var l=this._FlowView._SVGHelperProvider.createSVGElement("rect");l.setAttribute("class","pict-flow-node-title-bar pict-flow-node-bracket-title-fill"),l.setAttribute("x","0"),l.setAttribute("y","0"),l.setAttribute("width",String(o)),l.setAttribute("height",String(r)),l.setAttribute("data-node-hash",e.Hash),l.setAttribute("data-element-type","node-body"),i&&i.TitleBarColor&&l.setAttribute("style","fill:"+i.TitleBarColor),e.Style&&e.Style.TitleBarColor&&l.setAttribute("style","fill:"+e.Style.TitleBarColor),t.appendChild(l);var c={SerifLength:6,TitleSeparator:!0};if(this._FlowView._ThemeProvider){var p=this._FlowView._ThemeProvider.getActiveTheme();p&&p.BracketConfig&&(c=Object.assign(c,p.BracketConfig))}var u=0;this._FlowView._ThemeProvider&&(u=this._FlowView._ThemeProvider.getNodeNoiseAmplitude());var d="";this._FlowView._NoiseProvider&&(d=this._FlowView._NoiseProvider.generateBracketPath(o,n,c.SerifLength,c.TitleSeparator?r:0,u,e.Hash));var h=this._FlowView._SVGHelperProvider.createSVGElement("path");if(h.setAttribute("class","pict-flow-node-bracket"),h.setAttribute("d",d),h.setAttribute("data-node-hash",e.Hash),h.setAttribute("data-element-type","node-body"),e.Style){var f=[];e.Style.BodyStroke&&f.push("stroke:"+e.Style.BodyStroke),e.Style.BodyStrokeWidth&&f.push("stroke-width:"+e.Style.BodyStrokeWidth),f.length>0&&h.setAttribute("style",f.join(";"))}t.appendChild(h)}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-view":171}],91:[function(t,e,o){var n=t("pict-view"),r={ViewIdentifier:"Flow-PropertiesPanel",AutoRender:!1,Templates:[{Hash:"Flow-InfoPanel-Wrapper",Template:'<div class="pict-flow-info-panel">{~D:Record.PanelContent~}</div>'},{Hash:"Flow-InfoPanel-Header-Icon",Template:'<div class="pict-flow-info-panel-header with-icon">{~D:Record.Icon~} {~D:Record.Label~}</div>'},{Hash:"Flow-InfoPanel-Header",Template:'<div class="pict-flow-info-panel-header">{~D:Record.Label~}</div>'},{Hash:"Flow-InfoPanel-Description",Template:'<div class="pict-flow-info-panel-description">{~D:Record.Description~}</div>'},{Hash:"Flow-InfoPanel-Badges",Template:'<div class="pict-flow-info-panel-badges">{~D:Record.BadgesContent~}</div>'},{Hash:"Flow-InfoPanel-Badge-Category",Template:'<span class="pict-flow-info-panel-badge category">{~D:Record.Category~}</span>'},{Hash:"Flow-InfoPanel-Badge-Code",Template:'<span class="pict-flow-info-panel-badge code">{~D:Record.Code~}</span>'},{Hash:"Flow-InfoPanel-Section-Inputs",Template:'<div class="pict-flow-info-panel-section"><div class="pict-flow-info-panel-section-title">Inputs</div>{~D:Record.PortsContent~}</div>'},{Hash:"Flow-InfoPanel-Section-Outputs",Template:'<div class="pict-flow-info-panel-section"><div class="pict-flow-info-panel-section-title">Outputs</div>{~D:Record.PortsContent~}</div>'},{Hash:"Flow-InfoPanel-Port-Input",Template:'<div class="pict-flow-info-panel-port input">{~D:Record.Label~}{~D:Record.Constraint~}</div>'},{Hash:"Flow-InfoPanel-Port-Output",Template:'<div class="pict-flow-info-panel-port output">{~D:Record.Label~}</div>'},{Hash:"Flow-InfoPanel-Port-Constraint",Template:' <span class="pict-flow-info-panel-port-constraint">{~D:Record.ConstraintText~}</span>'},{Hash:"Flow-InfoPanel-Section-Generic",Template:'<div class="pict-flow-info-panel-section"><div class="pict-flow-info-panel-section-title">{~D:Record.SectionTitle~}</div>{~D:Record.PortsContent~}</div>'},{Hash:"Flow-InfoPanel-Port-Event",Template:'<div class="pict-flow-info-panel-port event">{~D:Record.Label~}</div>'},{Hash:"Flow-InfoPanel-Port-Value",Template:'<div class="pict-flow-info-panel-port value">{~D:Record.Label~}{~D:Record.DataType~}</div>'},{Hash:"Flow-InfoPanel-Port-DataType",Template:' <span class="pict-flow-info-panel-port-constraint">{~D:Record.DataTypeText~}</span>'},{Hash:"Flow-NodeProps-Editor",Template:'<div class="pict-flow-node-props-fields" data-flow-view="{~D:Record.FlowViewIdentifier~}" data-node-hash="{~D:Record.NodeHash~}"><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Title</label><input type="text" class="pict-flow-node-props-input" data-prop="Title" value="{~D:Record.Title~}" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Width</label><input type="number" class="pict-flow-node-props-input" data-prop="Width" value="{~D:Record.Width~}" min="60" step="10" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Height</label><input type="number" class="pict-flow-node-props-input" data-prop="Height" value="{~D:Record.Height~}" min="40" step="10" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Body Fill</label><input type="color" class="pict-flow-node-props-input pict-flow-node-props-color" data-prop="Style.BodyFill" value="{~D:Record.BodyFillValue~}" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Body Stroke</label><input type="color" class="pict-flow-node-props-input pict-flow-node-props-color" data-prop="Style.BodyStroke" value="{~D:Record.BodyStrokeValue~}" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Stroke Width</label><input type="number" class="pict-flow-node-props-input" data-prop="Style.BodyStrokeWidth" value="{~D:Record.BodyStrokeWidthValue~}" min="0" max="10" step="0.5" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div><div class="pict-flow-node-props-field"><label class="pict-flow-node-props-label">Title Bar</label><input type="color" class="pict-flow-node-props-input pict-flow-node-props-color" data-prop="Style.TitleBarColor" value="{~D:Record.TitleBarColorValue~}" oninput="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._applyNodePropChange(\'{~D:Record.NodeHash~}\', this.getAttribute(\'data-prop\'), this.value, this.type, event)" onpointerdown="event.stopPropagation()" /></div></div>'}]},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).serviceType="PictViewFlowPropertiesPanel",i._FlowView=null,i._PanelInstances={},i}return _inherits(e,t),_createClass2(e,[{key:"renderPanels",value:function(t,e,o,n){if(e&&o&&this._FlowView){for(var r=Array.isArray(t)?t:[],i=new Set,a=e.querySelectorAll(".pict-flow-panel-foreign-object"),s=0;s<a.length;s++)i.add(a[s].getAttribute("data-panel-hash"));for(var l=new Set,c=0;c<r.length;c++)l.add(r[c].Hash);for(var p=0;p<a.length;p++){var u=a[p].getAttribute("data-panel-hash");l.has(u)||(a[p].remove(),this._PanelInstances[u]&&(this._PanelInstances[u].destroy(),delete this._PanelInstances[u]))}for(var d=0;d<r.length;d++){var h=r[d];if(i.has(h.Hash)){var f=e.querySelector('[data-panel-hash="'.concat(h.Hash,'"]'));f&&(f.setAttribute("x",String(h.X)),f.setAttribute("y",String(h.Y)),f.setAttribute("width",String(h.Width)),f.setAttribute("height",String(h.Height)))}else this._createPanelForeignObject(h,e)}for(;o.firstChild;)o.removeChild(o.firstChild);for(var m=0;m<r.length;m++){var v=n===r[m].Hash;this._renderTether(r[m],o,v)}}}},{key:"_createPanelForeignObject",value:function(t,e){var o=this._FlowView._PanelChromeProvider;if(o){var n=o.createPanelForeignObject(t,e);n&&this._renderPanelContent(t,n);var r=e.querySelector('[data-panel-hash="'.concat(t.Hash,'"]'));r&&(this._renderAppearanceTab(t,r),this._renderHelpTab(t,r))}}},{key:"_renderPanelContent",value:function(t,e){var o=this._FlowView.getNode(t.NodeHash);if(o){var n=this._FlowView._NodeTypeProvider.getNodeType(o.Type);if(n)if(n.PropertiesPanel){var r=n.PropertiesPanel,i=r.PanelType||"Base",a="PictFlowCardPropertiesPanel-".concat(i),s=null;this._PanelInstances[t.Hash]?s=this._PanelInstances[t.Hash]:(this.fable.servicesMap.hasOwnProperty(a)?s=this.fable.instantiateServiceProviderWithoutRegistration(a,r):this.fable.servicesMap.hasOwnProperty("PictFlowCardPropertiesPanel")&&(s=this.fable.instantiateServiceProviderWithoutRegistration("PictFlowCardPropertiesPanel",r)),s&&(s._FlowView=this._FlowView,this._PanelInstances[t.Hash]=s)),s&&s.render(e,o),this._renderPortSummary(e,n)}else this._renderInfoPanelContent(e,o,n)}}},{key:"_renderInfoPanelContent",value:function(t,e,o){var n=o.CardMetadata||{},r=o.DefaultPorts||[],i=r.filter(function(t){return"input"===t.Direction}),a=r.filter(function(t){return"output"===t.Direction}),s=o.Label||e.Type,l=[],c=this._FlowView._IconProvider;if(n.Icon&&c&&!c.isEmojiIcon(n.Icon)){var p=c.resolveIconKey(n),u=c.getIconSVGMarkup(p,18);l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Header-Icon",{Icon:u,Label:s}))}else if(n.Icon)l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Header-Icon",{Icon:n.Icon,Label:s}));else if(c){var d=c.getIconSVGMarkup("default",18);l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Header-Icon",{Icon:d,Label:s}))}else l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Header",{Label:s}));if(n.Description&&l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Description",{Description:n.Description})),n.Category||n.Code){var h="";n.Category&&(h+=this.pict.parseTemplateByHash("Flow-InfoPanel-Badge-Category",{Category:n.Category})),n.Code&&(h+=this.pict.parseTemplateByHash("Flow-InfoPanel-Badge-Code",{Code:n.Code})),l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Badges",{BadgesContent:h}))}if(i.length>0){for(var f="",m=0;m<i.length;m++){var v=i[m],g=this._getPortConstraintHTML(v);f+=this.pict.parseTemplateByHash("Flow-InfoPanel-Port-Input",{Label:v.Label||"In",Constraint:g})}l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Section-Inputs",{PortsContent:f}))}if(a.length>0){for(var w="",y=0;y<a.length;y++){var b=a[y];w+=this.pict.parseTemplateByHash("Flow-InfoPanel-Port-Output",{Label:b.Label||"Out"})}l.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Section-Outputs",{PortsContent:w}))}t.innerHTML=this.pict.parseTemplateByHash("Flow-InfoPanel-Wrapper",{PanelContent:l.join("")})}},{key:"_renderPortSummary",value:function(t,e){var o=e.DefaultPorts||[];if(0!==o.length){for(var n=[],r=[],i=[],a=0;a<o.length;a++){var s=o[a],l=s.PortType||"";"event-in"===l?n.push(s):"event-out"===l||"error"===l?r.push(s):"value"===l&&i.push(s)}if(0!==n.length||0!==r.length||0!==i.length){var c=[];if(n.length>0){for(var p="",u=0;u<n.length;u++)p+=this.pict.parseTemplateByHash("Flow-InfoPanel-Port-Event",{Label:n[u].Label||n[u].Name||"Event In"});c.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Section-Generic",{SectionTitle:"Event Inputs",PortsContent:p}))}if(r.length>0){for(var d="",h=0;h<r.length;h++){var f=r[h],m=f.Label||f.Name||"Event Out";"error"===f.PortType&&(m+=" ⚠"),d+=this.pict.parseTemplateByHash("Flow-InfoPanel-Port-Event",{Label:m})}c.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Section-Generic",{SectionTitle:"Event Outputs",PortsContent:d}))}if(i.length>0){for(var v="",g=0;g<i.length;g++){var w=i[g],y=w.Label||w.Name||"Output",b="";w.DataType&&(b=this.pict.parseTemplateByHash("Flow-InfoPanel-Port-DataType",{DataTypeText:w.DataType})),v+=this.pict.parseTemplateByHash("Flow-InfoPanel-Port-Value",{Label:y,DataType:b})}c.push(this.pict.parseTemplateByHash("Flow-InfoPanel-Section-Generic",{SectionTitle:"State Outputs",PortsContent:v}))}if(c.length>0){var D=document.createElement("div");D.className="pict-flow-info-panel pict-flow-port-summary",D.innerHTML=c.join(""),t.appendChild(D)}}}}},{key:"_getPortConstraintHTML",value:function(t){var e="number"==typeof t.MinimumInputCount?t.MinimumInputCount:0,o="number"==typeof t.MaximumInputCount?t.MaximumInputCount:-1;if(e>0||o>0){var n="";return n=o<0?"(min ".concat(e,")"):e===o?"(exactly ".concat(e,")"):"(".concat(e,"–").concat(o,")"),this.pict.parseTemplateByHash("Flow-InfoPanel-Port-Constraint",{ConstraintText:n})}return""}},{key:"_renderAppearanceTab",value:function(t,e){var o=this._FlowView.getNode(t.NodeHash);if(o){var n=e.querySelector('.pict-flow-panel-tab-pane[data-tab="appearance"]');if(n){var r=o.Style||{},i=this._FlowView._NodeTypeProvider.getNodeType(o.Type),a="var(--theme-color-text-primary, #2c3e50)",s="#ffffff",l="#d0d4d8";i&&(i.TitleBarColor&&(a=i.TitleBarColor),i.BodyStyle&&(i.BodyStyle.fill&&(s=i.BodyStyle.fill),i.BodyStyle.stroke&&(l=i.BodyStyle.stroke)));var c={Title:o.Title||"",Width:o.Width||180,Height:o.Height||80,BodyFillValue:r.BodyFill||s,BodyStrokeValue:r.BodyStroke||l,BodyStrokeWidthValue:r.BodyStrokeWidth||1,TitleBarColorValue:r.TitleBarColor||a,NodeHash:t.NodeHash,FlowViewIdentifier:this._FlowView.options.ViewIdentifier};this.pict.ContentAssignment.assignContent(n,this.pict.parseTemplateByHash("Flow-NodeProps-Editor",c))}}}},{key:"_renderHelpTab",value:function(t,e){var o=this._FlowView.getNode(t.NodeHash);if(o){var n=this._FlowView._NodeTypeProvider.getNodeType(o.Type);if(n){var r=n.CardMetadata&&n.CardMetadata.Help?n.CardMetadata.Help:null;if(r){var i=e.querySelector('.pict-flow-panel-tab[data-tab-target="help"]');i&&(i.style.display="");var a=e.querySelector('.pict-flow-panel-tab-pane[data-tab="help"]');a&&(a.innerHTML='<div class="pict-flow-panel-help-content">'+r+"</div>")}}}}},{key:"switchPanelTab",value:function(t){var e=t.closest("foreignObject");if(e){for(var o=t.getAttribute("data-tab-target"),n=e.querySelectorAll(".pict-flow-panel-tab"),r=e.querySelectorAll(".pict-flow-panel-tab-pane"),i=0;i<n.length;i++)n[i].classList.remove("active");for(var a=0;a<r.length;a++)r[a].classList.remove("active"),r[a].style.display="none";t.classList.add("active");var s=e.querySelector('.pict-flow-panel-tab-pane[data-tab="'+o+'"]');s&&(s.classList.add("active"),s.style.display="block")}}},{key:"_applyNodePropChange",value:function(t,e,o,n){var r=this._FlowView.getNode(t);if(r){var i=o;if("number"!==n||(i=parseFloat(o),!isNaN(i))){if("Title"===e)r.Title=i;else if("Width"===e)r.Width=i;else if("Height"===e)r.Height=i;else if(e.startsWith("Style.")){r.Style||(r.Style={});var a=e.substring(6);r.Style[a]=i}this._FlowView.renderFlow(),this._FlowView.marshalFromView(),this._FlowView._EventHandlerProvider&&this._FlowView._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowView._FlowData)}}}},{key:"_renderTether",value:function(t,e,o){var n=this._FlowView._TetherService;if(n){var r=this._FlowView.getNode(t.NodeHash);if(r){var i=this._FlowView.options.ViewIdentifier;n.renderTether(t,r,e,o,i)}}}},{key:"marshalAllFromPanels",value:function(){for(var t in this._PanelInstances){var e=this._PanelInstances[t];e&&e._NodeData&&e.marshalFromPanel(e._NodeData)}}},{key:"destroyPanel",value:function(t){this._PanelInstances[t]&&(this._PanelInstances[t].destroy(),delete this._PanelInstances[t])}},{key:"destroyAllPanels",value:function(){for(var t in this._PanelInstances)this._PanelInstances[t].destroy();this._PanelInstances={}}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-view":171}],92:[function(t,e,o){var n=t("pict-view"),r={ViewIdentifier:"Flow-Toolbar",DefaultRenderable:"Flow-Toolbar-Content",DefaultDestinationAddress:"#Flow-Toolbar-Container",AutoRender:!1,FlowViewIdentifier:"Pict-Flow",EnablePalette:!0,EnableAddNode:!0,EnableCardPalette:!0,CSS:!1,Templates:[{Hash:"Flow-Toolbar-Template",Template:'\n<div class="pict-flow-toolbar" id="Flow-Toolbar-Bar-{~D:Record.FlowViewIdentifier~}">\n\t<div class="pict-flow-toolbar-group">\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="add-node" id="Flow-Toolbar-AddNode-{~D:Record.FlowViewIdentifier~}" title="Add Node"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'add-node\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-plus-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t\t<span class="pict-flow-toolbar-btn-text">Node</span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="cards-popup" id="Flow-Toolbar-Cards-{~D:Record.FlowViewIdentifier~}" title="Card Palette"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'cards-popup\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-cards-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t\t<span class="pict-flow-toolbar-btn-text">Cards</span>\n\t\t\t<span class="pict-flow-toolbar-btn-chevron" id="Flow-Toolbar-CardsChevron-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="delete-selected" title="Delete Node"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'delete-selected\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-trash-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t</div>\n\t<div class="pict-flow-toolbar-group">\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="layout-popup" id="Flow-Toolbar-Layout-{~D:Record.FlowViewIdentifier~}" title="Manage saved layouts"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'layout-popup\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-layout-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t\t<span class="pict-flow-toolbar-btn-text">Layouts</span>\n\t\t\t<span class="pict-flow-toolbar-btn-chevron" id="Flow-Toolbar-LayoutChevron-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<div class="pict-flow-toolbar-btn-split" id="Flow-Toolbar-Auto-{~D:Record.FlowViewIdentifier~}">\n\t\t\t<button class="pict-flow-toolbar-btn pict-flow-toolbar-btn-split-main" data-flow-action="apply-current-layout" title="Apply current layout algorithm"\n\t\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'apply-current-layout\')">\n\t\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-auto-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t\t\t<span class="pict-flow-toolbar-btn-text">Auto</span>\n\t\t\t</button>\n\t\t\t<button class="pict-flow-toolbar-btn pict-flow-toolbar-btn-split-chevron" data-flow-action="layout-algorithm-popup" title="Choose layout algorithm"\n\t\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'layout-algorithm-popup\')">\n\t\t\t\t<span class="pict-flow-toolbar-btn-chevron" id="Flow-Toolbar-AutoChevron-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n\t<div class="pict-flow-toolbar-group">\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="zoom-in" title="Zoom In"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'zoom-in\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-zoom-in-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="zoom-out" title="Zoom Out"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'zoom-out\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-zoom-out-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="zoom-fit" title="Fit to View"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'zoom-fit\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-zoom-fit-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t</div>\n\t<div class="pict-flow-toolbar-group pict-flow-toolbar-right">\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="settings-popup" id="Flow-Toolbar-Settings-{~D:Record.FlowViewIdentifier~}" title="Theme Settings"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'settings-popup\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-settings-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="fullscreen" id="Flow-Toolbar-Fullscreen-{~D:Record.FlowViewIdentifier~}" title="Toggle Fullscreen"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'fullscreen\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Fullscreen-Icon-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="toggle-floating" title="Float"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'toggle-floating\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-grip-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t\t<button class="pict-flow-toolbar-btn" data-flow-action="collapse-toolbar" title="Collapse Toolbar"\n\t\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'collapse-toolbar\')">\n\t\t\t<span class="pict-flow-toolbar-btn-icon" id="Flow-Toolbar-Icon-collapse-{~D:Record.FlowViewIdentifier~}"></span>\n\t\t</button>\n\t</div>\n</div>\n<div class="pict-flow-toolbar-collapsed" id="Flow-Toolbar-Collapsed-{~D:Record.FlowViewIdentifier~}">\n\t<button class="pict-flow-toolbar-expand-btn" data-flow-action="expand-toolbar" title="Expand Toolbar" id="Flow-Toolbar-ExpandBtn-{~D:Record.FlowViewIdentifier~}"\n\t\tonclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._handleToolbarAction(\'expand-toolbar\')">\n\t\t<span id="Flow-Toolbar-Icon-expand-{~D:Record.FlowViewIdentifier~}"></span>\n\t</button>\n</div>\n<div class="pict-flow-toolbar-popup-anchor" id="Flow-Toolbar-PopupAnchor-{~D:Record.FlowViewIdentifier~}">\n</div>\n'},{Hash:"Flow-AddNode-List",Template:"{~TS:Flow-AddNode-Row:Record.Rows~}"},{Hash:"Flow-AddNode-Row",Template:'<div class="pict-flow-popup-list-item" data-node-type="{~D:Record.NodeType~}" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._addNodeFromPopup(this.getAttribute(\'data-node-type\'))"><span class="pict-flow-popup-list-item-icon">{~D:Record.IconHTML~}</span><span class="pict-flow-popup-list-item-label">{~D:Record.Label~}</span>{~NE:Record.Code^<span class="pict-flow-popup-list-item-code">{~D:Record.Code~}</span>~}</div>'},{Hash:"Flow-Cards-List",Template:"{~TS:Flow-Cards-Category:Record.Categories~}"},{Hash:"Flow-Cards-Category",Template:'<div class="pict-flow-palette-category" style="padding:0.35em 0.5em;"><div class="pict-flow-palette-category-label">{~D:Record.Name~}</div><div class="pict-flow-palette-cards">{~TS:Flow-Cards-Card:Record.Cards~}</div></div>'},{Hash:"Flow-Cards-Card",Template:'<div class="pict-flow-palette-card{~D:Record.DisabledClass~}" data-card-type="{~D:Record.CardType~}" title="{~D:Record.Tooltip~}" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._addCardFromPopup(this.getAttribute(\'data-card-type\'))">{~NE:Record.IconHTML^<span class="pict-flow-palette-card-icon">{~D:Record.IconHTML~}</span>~}{~NE:Record.IconEmoji^<span class="pict-flow-palette-card-icon">{~D:Record.IconEmoji~}</span>~}{~NE:Record.SwatchColor^<span class="pict-flow-palette-card-swatch" style="background-color: {~D:Record.SwatchColor~};"></span>~}<span class="pict-flow-palette-card-title">{~D:Record.Label~}</span>{~NE:Record.Code^<span class="pict-flow-palette-card-code">{~D:Record.Code~}</span>~}</div>'},{Hash:"Flow-Layout-List",Template:"{~TS:Flow-Layout-Row:Record.Rows~}"},{Hash:"Flow-Layout-Row",Template:'<div class="pict-flow-popup-layout-row" data-layout-hash="{~D:Record.LayoutHash~}" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._restoreLayoutFromPopup(\'{~D:Record.LayoutHash~}\', event)"><span class="pict-flow-popup-layout-name">{~D:Record.Name~}</span><button class="pict-flow-popup-layout-delete" title="Delete layout" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._ToolbarView._deleteLayoutFromPopup(\'{~D:Record.LayoutHash~}\', event)">{~D:Record.DeleteIconHTML~}</button></div>'},{Hash:"Flow-Layout-OptionList",Template:"{~TS:Flow-Layout-Option:Record.Options~}"},{Hash:"Flow-Layout-Option",Template:'<option value="{~D:Record.Value~}"{~D:Record.SelectedAttr~}>{~D:Record.Label~}</option>'}],Renderables:[{RenderableHash:"Flow-Toolbar-Content",TemplateHash:"Flow-Toolbar-Template",DestinationAddress:"#Flow-Toolbar-Container",RenderMethod:"replace"}]},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).serviceType="PictViewFlowToolbar",i._FlowView=null,i._ToolbarMode="docked",i._ActivePopup=null,i._FloatingPosition={X:80,Y:80},i._DocumentClickHandler=null,i._FloatingToolbarView=null,i._LayoutFormMetacontroller=null,i._LayoutFormHostID=null,i._LayoutFormExpanded=!0,i}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,o,n){return _superPropGet(e,"render",this,3)([t,o,this.options])}},{key:"onAfterRender",value:function(t,o,n,r){var i=this.options.FlowViewIdentifier;if(this._populateToolbarIcons(),!1===this.options.EnableAddNode){var a=this.pict.ContentAssignment.getElement("#Flow-Toolbar-AddNode-".concat(i));a.length>0&&a[0].remove()}if(!1===this.options.EnableCardPalette){var s=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Cards-".concat(i));s.length>0&&s[0].remove()}if(!1===this.options.EnableLayoutMenu){var l=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Auto-".concat(i));l.length>0&&l[0].remove()}return _superPropGet(e,"onAfterRender",this,3)([t,o,n,r])}},{key:"_populateToolbarIcons",value:function(){var t=this._FlowView?this._FlowView._IconProvider:null;if(t){for(var e=this.options.FlowViewIdentifier,o={plus:"plus",trash:"trash","zoom-in":"zoom-in","zoom-out":"zoom-out","zoom-fit":"zoom-fit",auto:"auto-layout",cards:"cards",layout:"layout",settings:"settings",grip:"grip",collapse:"collapse",expand:"expand"},n=Object.keys(o),r=0;r<n.length;r++){var i="Flow-Toolbar-Icon-".concat(n[r],"-").concat(e),a=this.pict.ContentAssignment.getElement("#".concat(i));a.length>0&&(a[0].innerHTML=t.getIconSVGMarkup(o[n[r]],14))}var s=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Fullscreen-Icon-".concat(e));s.length>0&&(s[0].innerHTML=t.getIconSVGMarkup("fullscreen",14));var l=this.pict.ContentAssignment.getElement("#Flow-Toolbar-CardsChevron-".concat(e));l.length>0&&(l[0].innerHTML=t.getIconSVGMarkup("chevron-down",8));var c=this.pict.ContentAssignment.getElement("#Flow-Toolbar-LayoutChevron-".concat(e));c.length>0&&(c[0].innerHTML=t.getIconSVGMarkup("chevron-down",8));var p=this.pict.ContentAssignment.getElement("#Flow-Toolbar-AutoChevron-".concat(e));p.length>0&&(p[0].innerHTML=t.getIconSVGMarkup("chevron-down",8))}}},{key:"_openPopup",value:function(t){var e=this;if(this._ActivePopup!==t){this._closePopup();var o=this.options.FlowViewIdentifier,n=this.pict.ContentAssignment.getElement("#Flow-Toolbar-PopupAnchor-".concat(o));if(!(n.length<1)){var r=document.createElement("div");switch(r.className="pict-flow-toolbar-popup",r.setAttribute("id","Flow-Toolbar-Popup-".concat(o)),t){case"add-node":this._buildAddNodePopup(r);break;case"cards":this._buildCardsPopup(r);break;case"layout":this._buildLayoutPopup(r);break;case"layout-algorithm":this._buildLayoutAlgorithmPopup(r);break;case"settings":this._buildSettingsPopup(r)}if(n[0].appendChild(r),this._ActivePopup=t,this._positionPopup(r,t),setTimeout(function(){e._DocumentClickHandler=function(o){if(!r.contains(o.target)){var n=o.target.closest("[data-flow-action]");if(n){var i=n.getAttribute("data-flow-action");if(i===t||i===t.replace("-popup","")+"-popup")return}e._closePopup()}},document.addEventListener("click",e._DocumentClickHandler,!0)},0),"add-node"===t){var i=r.querySelector(".pict-flow-popup-search");i&&setTimeout(function(){i.focus()},50)}}}else this._closePopup()}},{key:"_closePopup",value:function(){this._DocumentClickHandler&&(document.removeEventListener("click",this._DocumentClickHandler,!0),this._DocumentClickHandler=null);var t=this.options.FlowViewIdentifier,e=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Popup-".concat(t));e.length>0&&e[0].parentNode.removeChild(e[0]),this._ActivePopup=null}},{key:"_positionPopup",value:function(t,e){var o,n=this.options.FlowViewIdentifier;switch(e){case"add-node":o="#Flow-Toolbar-AddNode-".concat(n);break;case"cards":o="#Flow-Toolbar-Cards-".concat(n);break;case"layout":o="#Flow-Toolbar-Layout-".concat(n);break;case"layout-algorithm":o="#Flow-Toolbar-Auto-".concat(n);break;case"settings":o="#Flow-Toolbar-Settings-".concat(n);break;default:return}var r=this.pict.ContentAssignment.getElement(o);if(!(r.length<1)){var i=this.pict.ContentAssignment.getElement("#Flow-Toolbar-PopupAnchor-".concat(n));if(!(i.length<1)){var a=r[0].getBoundingClientRect(),s=i[0].getBoundingClientRect(),l=a.left-s.left;t.style.left=l+"px",t.style.top="0px"}}}},{key:"_buildAddNodePopup",value:function(t){var e=this.options.FlowViewIdentifier,o=this._FlowView?this._FlowView._IconProvider:null,n=o?o.getIconSVGMarkup("search",12):"",r="Flow-Toolbar-AddNodeList-".concat(e),i="Flow-Toolbar-AddNodeSearch-".concat(e),a=this._renderNodeListHTML("");this.pict.ContentAssignment.assignContent(t,'<div class="pict-flow-popup-search-wrapper"><span class="pict-flow-popup-search-icon">'+n+'</span><input id="'+i+'" class="pict-flow-popup-search" type="text" placeholder="Search node types..." oninput="_Pict.views[\''+e+"']._ToolbarView._filterNodeList('"+r+'\', this.value)" /></div><div id="'+r+'" class="pict-flow-popup-node-list">'+a+"</div>")}},{key:"_renderNodeListHTML",value:function(t){if(!this._FlowView||!this._FlowView._NodeTypeProvider)return"";for(var e=this.options.FlowViewIdentifier,o=this._FlowView._NodeTypeProvider.getNodeTypes(),n=Object.keys(o),r=(t||"").toLowerCase().trim(),i=this._FlowView._IconProvider,a=[],s=0;s<n.length;s++){var l=o[n[s]],c=l.CardMetadata||{};if(!1!==c.Enabled){if(r){var p=(l.Label||"").toLowerCase(),u=(c.Code||"").toLowerCase(),d=(c.Category||"").toLowerCase();if(p.indexOf(r)<0&&u.indexOf(r)<0&&d.indexOf(r)<0)continue}var h="";if(i){var f=i.resolveIconKey(c);h=i.getIconSVGMarkup(f,16)}a.push({NodeType:n[s],Label:l.Label||"",IconHTML:h,Code:c.Code||"",FlowViewIdentifier:e})}}return 0===a.length?'<div class="pict-flow-popup-list-empty">No matching node types</div>':this.pict.parseTemplateByHash("Flow-AddNode-List",{Rows:a})}},{key:"_filterNodeList",value:function(t,e){var o=document.getElementById(t);o&&this.pict.ContentAssignment.assignContent(o,this._renderNodeListHTML(e))}},{key:"_addNodeFromPopup",value:function(t){this._addNodeAtCenter(t),this._closePopup()}},{key:"_buildCardsPopup",value:function(t){var e=this.options.FlowViewIdentifier,o=this._FlowView?this._FlowView._IconProvider:null,n=o?o.getIconSVGMarkup("search",12):"",r="Flow-Toolbar-CardsList-".concat(e),i="Flow-Toolbar-CardsSearch-".concat(e),a=this._renderCardsListHTML("");this.pict.ContentAssignment.assignContent(t,'<div class="pict-flow-popup-search-wrapper"><span class="pict-flow-popup-search-icon">'+n+'</span><input id="'+i+'" class="pict-flow-popup-search" type="text" placeholder="Search cards..." oninput="_Pict.views[\''+e+"']._ToolbarView._filterCardsList('"+r+'\', this.value)" /></div><div id="'+r+'" class="pict-flow-popup-node-list">'+a+"</div>"),setTimeout(function(){var t=document.getElementById(i);t&&t.focus()},50)}},{key:"_renderCardsListHTML",value:function(t){if(!this._FlowView||!this._FlowView._NodeTypeProvider)return"";for(var e=this.options.FlowViewIdentifier,o=this._FlowView._NodeTypeProvider.getCardsByCategory(),n=Object.keys(o),r=(t||"").toLowerCase().trim(),i=this._FlowView._IconProvider,a=0,s=[],l=0;l<n.length;l++){for(var c=n[l],p=o[c],u=[],d=0;d<p.length;d++){var h=p[d],f=h.CardMetadata||{};if(r){var m=(h.Label||"").toLowerCase(),v=(f.Code||"").toLowerCase(),g=c.toLowerCase();if(m.indexOf(r)<0&&v.indexOf(r)<0&&g.indexOf(r)<0)continue}var w="",y=!1;f.Icon&&i&&!i.isEmojiIcon(f.Icon)?w=i.getIconSVGMarkup(i.resolveIconKey(f),14):f.Icon?y=!0:i&&(w=i.getIconSVGMarkup("default",14)),u.push({CardType:h.Hash,Label:h.Label||"",Code:f.Code||"",IconHTML:w,IconEmoji:y?f.Icon:"",DisabledClass:!1===f.Enabled?" disabled":"",Tooltip:f.Tooltip||f.Description||"",SwatchColor:w||y||!h.TitleBarColor?"":h.TitleBarColor,FlowViewIdentifier:e})}0!==u.length&&(a+=u.length,s.push({Name:c,Cards:u,FlowViewIdentifier:e}))}return 0===a?'<div class="pict-flow-popup-list-empty">'+(r?"No matching cards":"No card types available")+"</div>":this.pict.parseTemplateByHash("Flow-Cards-List",{Categories:s})}},{key:"_filterCardsList",value:function(t,e){var o=document.getElementById(t);o&&this.pict.ContentAssignment.assignContent(o,this._renderCardsListHTML(e))}},{key:"_addCardFromPopup",value:function(t){this._addCardFromPalette(t),this._closePopup()}},{key:"_buildLayoutPopup",value:function(t){for(var e=this.options.FlowViewIdentifier,o=this._FlowView?this._FlowView._IconProvider:null,n=o?o.getIconSVGMarkup("save",14):"✓",r=o?o.getIconSVGMarkup("trash",12):"×",i="Flow-Toolbar-LayoutSaveRow-".concat(e),a="Flow-Toolbar-LayoutSaveInputRow-".concat(e),s="Flow-Toolbar-LayoutSaveInput-".concat(e),l="Flow-Toolbar-LayoutList-".concat(e),c=this._FlowView&&this._FlowView._LayoutProvider?this._FlowView._LayoutProvider.getLayouts():[],p=[],u=0;u<c.length;u++)p.push({LayoutHash:c[u].Hash,Name:c[u].Name||"",DeleteIconHTML:r,FlowViewIdentifier:e});var d=0===p.length?'<div class="pict-flow-popup-list-empty">No saved layouts</div>':this.pict.parseTemplateByHash("Flow-Layout-List",{Rows:p});this.pict.ContentAssignment.assignContent(t,'<div class="pict-flow-popup-layout-save-section"><div id="'+i+'" class="pict-flow-popup-layout-save" onclick="_Pict.views[\''+e+"']._ToolbarView._showLayoutSaveInput('"+i+"', '"+a+"', '"+s+'\')"><span class="pict-flow-popup-layout-save-icon">'+n+'</span><span>Save Current Layout</span></div><div id="'+a+'" class="pict-flow-popup-layout-save-input-row" style="display:none;"><input id="'+s+'" class="pict-flow-popup-layout-save-input" type="text" placeholder="Layout name..." onclick="event.stopPropagation()" onkeydown="_Pict.views[\''+e+"']._ToolbarView._handleLayoutSaveKey(event, '"+s+"', '"+i+"', '"+a+'\')" /><button class="pict-flow-popup-layout-save-confirm" title="Save" onclick="_Pict.views[\''+e+"']._ToolbarView._confirmLayoutSave('"+s+"')\">"+n+'</button></div></div><div class="pict-flow-popup-divider"></div><div id="'+l+'">'+d+"</div>")}},{key:"_showLayoutSaveInput",value:function(t,e,o){var n=document.getElementById(t),r=document.getElementById(e),i=document.getElementById(o);n&&(n.style.display="none"),r&&(r.style.display=""),i&&(i.value="",setTimeout(function(){i.focus()},50))}},{key:"_handleLayoutSaveKey",value:function(t,e,o,n){if("Enter"===t.key)t.preventDefault(),this._confirmLayoutSave(e);else if("Escape"===t.key){var r=document.getElementById(o),i=document.getElementById(n);i&&(i.style.display="none"),r&&(r.style.display="")}}},{key:"_confirmLayoutSave",value:function(t){var e=document.getElementById(t);if(e){var o=(e.value||"").trim();if(""!==o){this._FlowView._LayoutProvider.saveLayout(o);var n=this.options.FlowViewIdentifier,r=document.getElementById("Flow-Toolbar-Popup-".concat(n));r&&this._buildLayoutPopup(r)}}}},{key:"_restoreLayoutFromPopup",value:function(t,e){e&&e.target&&e.target.closest(".pict-flow-popup-layout-delete")||(this._FlowView._LayoutProvider.restoreLayout(t),this._closePopup())}},{key:"_deleteLayoutFromPopup",value:function(t,e){e&&"function"==typeof e.stopPropagation&&e.stopPropagation(),this._FlowView._LayoutProvider.deleteLayout(t);var o=this.options.FlowViewIdentifier,n=document.getElementById("Flow-Toolbar-Popup-".concat(o));n&&this._buildLayoutPopup(n)}},{key:"_buildLayoutAlgorithmPopup",value:function(t){if(this._FlowView&&this._FlowView._LayoutService){var e=this.options.FlowViewIdentifier,o=this._FlowView._LayoutService,n=this._FlowView.getLayoutAlgorithm(),r=o.getAlgorithm(n.Algorithm),i=this._FlowView.getEdgeTheme(),a=i.Theme,s=i.Override,l=r&&r.DefaultEdgeTheme||"Bezier",c=this._FlowView?this._FlowView._IconProvider:null,p=c?c.getIconSVGMarkup("settings",13):"⚙",u=o.listAlgorithms().map(function(t){return{Value:t.Name,Label:t.Label||t.Name,SelectedAttr:t.Name===n.Algorithm?' selected="selected"':""}}),d=[];d.push({Value:"__inherit__",Label:"Inherit from layout (".concat(l,")"),SelectedAttr:s?"":' selected="selected"'});for(var h=o.listEdgeThemes(),f=0;f<h.length;f++)d.push({Value:h[f].Name,Label:h[f].Label||h[f].Name,SelectedAttr:h[f].Name===s?' selected="selected"':""});var m=this.pict.parseTemplateByHash("Flow-Layout-OptionList",{Options:u}),v=this.pict.parseTemplateByHash("Flow-Layout-OptionList",{Options:d}),g=!(!r||!(r.ParameterManifest&&r.ParameterManifest.Descriptors||r.ParameterSchema&&Object.keys(r.ParameterSchema).length>0)),w=r&&r.Description?'<div class="pict-flow-popup-control-description">'+r.Description+"</div>":"",y="";g&&(y='<button type="button" class="pict-flow-popup-collapse-toggle" aria-expanded="'+(this._LayoutFormExpanded?"true":"false")+'" title="'+(this._LayoutFormExpanded?"Hide parameters":"Show parameters")+'" onclick="_Pict.views[\''+e+"']._ToolbarView._toggleLayoutFormCollapsed(this)\">"+p+"</button>");var b="Flow-Toolbar-AutoApply-".concat(e),D="Custom"===n.Algorithm?" disabled":"",P="Custom"===n.Algorithm?' title="Custom does not auto-position nodes"':"",T="";if(a){var S=o.getEdgeTheme(a);S&&S.Description&&(T='<div class="pict-flow-popup-control-description">'+S.Description+"</div>")}var F="Flow-Toolbar-LayoutParamFormHost-".concat(e);this.pict.ContentAssignment.assignContent(t,'<div class="pict-flow-popup-settings-section pict-flow-popup-layout-algorithm-row"><label class="pict-flow-popup-settings-label">Algorithm</label><div class="pict-flow-popup-layout-algorithm-controls"><select class="pict-flow-popup-settings-select pict-flow-popup-layout-algorithm-select" data-layout-control="algorithm" onclick="event.stopPropagation()" onchange="_Pict.views[\''+e+"']._ToolbarView._handleLayoutAlgoChange(this.value)\">"+m+"</select>"+y+"</div></div>"+w+'<div id="'+F+'"></div><div class="pict-flow-popup-divider"></div><div class="pict-flow-popup-settings-section"><label class="pict-flow-popup-settings-label">Edge theme</label><select class="pict-flow-popup-settings-select" data-layout-control="edge-theme" onclick="event.stopPropagation()" onchange="_Pict.views[\''+e+"']._ToolbarView._handleEdgeThemeChange(this.value)\">"+v+"</select></div>"+T+'<div class="pict-flow-popup-divider"></div><div class="pict-flow-popup-settings-section" style="display:flex;align-items:center;gap:8px;"><input type="checkbox" id="'+b+'"'+(n.AutoApply?' checked="checked"':"")+' onclick="event.stopPropagation()" onchange="_Pict.views[\''+e+'\']._ToolbarView._handleAutoApplyChange(this.checked)" /><label class="pict-flow-popup-settings-label" for="'+b+'" style="cursor:pointer;">Auto-apply on changes</label></div><div class="pict-flow-popup-divider"></div><div class="pict-flow-popup-settings-section" style="padding:4px 8px;"><button class="pict-flow-popup-layout-save-confirm" style="width:100%;padding:6px;"'+D+P+" onclick=\"_Pict.views['"+e+"']._ToolbarView._handleApplyLayoutNow()\">Apply Now</button></div>");var C=t.querySelector("#"+F);C&&this._buildLayoutParameterFormSection(C,r,n)}}},{key:"_handleLayoutAlgoChange",value:function(t){if(this._FlowView&&this._FlowView._LayoutService){var e=this._FlowView._LayoutService.getAlgorithm(t),o=e&&e.DefaultParameters?JSON.parse(JSON.stringify(e.DefaultParameters)):{};this._FlowView.setLayoutAlgorithm(t,o);var n=this.options.FlowViewIdentifier,r=document.getElementById("Flow-Toolbar-Popup-".concat(n));r&&this._buildLayoutAlgorithmPopup(r)}}},{key:"_handleEdgeThemeChange",value:function(t){if(this._FlowView){"__inherit__"===t?this._FlowView.setEdgeTheme(null):this._FlowView.setEdgeTheme(t);var e=this.options.FlowViewIdentifier,o=document.getElementById("Flow-Toolbar-Popup-".concat(e));o&&this._buildLayoutAlgorithmPopup(o)}}},{key:"_handleAutoApplyChange",value:function(t){this._FlowView&&this._FlowView.setLayoutAutoApply(t)}},{key:"_handleApplyLayoutNow",value:function(){this._FlowView&&("Custom"!==this._FlowView.getLayoutAlgorithm().Algorithm&&this._FlowView.applyCurrentLayout())}},{key:"_toggleLayoutFormCollapsed",value:function(t){this._LayoutFormExpanded=!this._LayoutFormExpanded,t.setAttribute("aria-expanded",this._LayoutFormExpanded?"true":"false"),t.title=this._LayoutFormExpanded?"Hide parameters":"Show parameters";var e=this._LayoutFormHostID?document.getElementById(this._LayoutFormHostID):null;e&&e.setAttribute("data-collapsed",this._LayoutFormExpanded?"false":"true")}},{key:"_buildLayoutParameterFormSection",value:function(t,e,o){if(e){var n=!(!e.ParameterManifest||!e.ParameterManifest.Descriptors),r=this._resolveMetacontrollerServiceType();if(n&&r)this._mountLayoutParameterMetacontroller(t,e,o,r);else{var i=e.ParameterSchema?e.ParameterSchema:{},a=Object.keys(i);if(0!==a.length){var s=document.createElement("div");s.className="pict-flow-popup-divider",t.appendChild(s);var l=document.createElement("div");l.className="pict-flow-popup-settings-label",l.style.fontWeight="bold",l.style.padding="4px 8px",l.textContent="Parameters",t.appendChild(l);for(var c=0;c<a.length;c++){var p=a[c],u=i[p],d=o.Parameters&&o.Parameters.hasOwnProperty(p)?o.Parameters[p]:u.Default,h=document.createElement("div");h.className="pict-flow-popup-settings-section",h.style.display="flex",h.style.alignItems="center",h.style.gap="8px";var f=document.createElement("label");f.className="pict-flow-popup-settings-label",f.textContent=u.Label||p,f.style.flex="1",h.appendChild(f);var m=this._buildLayoutParamInput(p,u,d);h.appendChild(m),t.appendChild(h)}}}}}},{key:"_evictLayoutFormViews",value:function(){if(this.pict&&this.pict.views){for(var t=Object.keys(this.pict.views),e=0;e<t.length;e++){var o=t[e];0===o.indexOf("PictSectionForm-")&&o.indexOf("PictFlowLayout")>0?delete this.pict.views[o]:0===o.indexOf("PictSectionForm-PFL")&&delete this.pict.views[o]}this._LayoutFormMetacontroller=null}}},{key:"_resolveMetacontrollerServiceType",value:function(){return this.fable&&this.fable.servicesMap?this.fable.servicesMap.hasOwnProperty("PictFormMetacontroller")?"PictFormMetacontroller":this.fable.servicesMap.hasOwnProperty("PictViewFormMetacontroller")?"PictViewFormMetacontroller":null:null}},{key:"_mountLayoutParameterMetacontroller",value:function(t,e,o,n){var r=JSON.parse(JSON.stringify(e.ParameterManifest)),i=this.options.FlowViewIdentifier,a=document.createElement("div");a.className="pict-flow-popup-divider",t.appendChild(a);var s="Flow-Toolbar-LayoutForm-".concat(i);this._LayoutFormHostID=s;var l=document.createElement("div");l.id=s,l.className="pict-flow-popup-layout-form-host",l.setAttribute("data-collapsed",this._LayoutFormExpanded?"false":"true"),l.setAttribute("onclick","event.stopPropagation()"),l.setAttribute("onchange","_Pict.views['"+i+"']._ToolbarView._pushLayoutFormBack('"+o.Algorithm+"')"),l.setAttribute("oninput","_Pict.views['"+i+"']._ToolbarView._pushLayoutFormBack('"+o.Algorithm+"')"),t.appendChild(l);var c=o.Algorithm;this.pict.AppData[c]=this.pict.AppData[c]||{},this.pict.AppData[c].PictFlowLayoutEditor=this.pict.AppData[c].PictFlowLayoutEditor||{},this.pict.AppData[c].PictFlowLayoutEditor.Parameters=JSON.parse(JSON.stringify(o.Parameters||{})),this._evictLayoutFormViews();try{this._LayoutFormMetacontroller=this.fable.instantiateServiceProviderWithoutRegistration(n,{ViewIdentifier:"Flow-Toolbar-LayoutForm-MC-".concat(i,"-").concat(this.fable.getUUID()),DefaultDestinationAddress:"#".concat(s),AutoRender:!1,AutoPopulateAfterRender:!0,AutoSolveBeforeRender:!1})}catch(t){this.log.warn("Failed to instantiate ".concat(n,": ").concat(t.message)),this._LayoutFormMetacontroller=null}if(this._LayoutFormMetacontroller){var p="Pict-".concat(this._LayoutFormMetacontroller.UUID,"-FormContainer");l.innerHTML='<div id="'.concat(p,'" class="pict-form pict-flow-popup-layout-form"></div>');try{var u="function"==typeof this._LayoutFormMetacontroller.injectManifest?this._LayoutFormMetacontroller.injectManifest.bind(this._LayoutFormMetacontroller):null;if(!u)throw new Error("Metacontroller exposes neither injectManifest nor injectManifestAndRender");var d=u("function"==typeof this._LayoutFormMetacontroller.createDistinctManifest?this._LayoutFormMetacontroller.createDistinctManifest(r,o.Algorithm):r),h=l.querySelector("#".concat(p));if(h){for(var f="",m=0;m<d.length;m++){var v=d[m].options.DefaultDestinationAddress;v&&"#"===v.charAt(0)&&(v=v.substring(1)),f+='<div id="'.concat(v,'" class="pict-form-view"></div>')}h.innerHTML=f}setTimeout(function(){for(var t=0;t<d.length;t++)d[t].render(),"function"==typeof d[t].marshalToView&&d[t].marshalToView()},0)}catch(t){return this.log.warn("PictViewFlowToolbar: layout-form injection failed: ".concat(t.message)),void(l.innerHTML='<em style="padding:8px;display:block;opacity:0.7;">Form render error: '.concat(t.message,"</em>"))}}else l.innerHTML='<em style="padding:8px;display:block;opacity:0.7;">pict-section-form not available; parameter form skipped.</em>'}},{key:"_pushLayoutFormBack",value:function(t){var e=this;this._LayoutFormPushScheduled||(this._LayoutFormPushScheduled=!0,Promise.resolve().then(function(){if(e._LayoutFormPushScheduled=!1,e._FlowView){var o=((e.pict.AppData[t]||{}).PictFlowLayoutEditor||{}).Parameters||{},n=Object.assign({},e._FlowView.getLayoutAlgorithm().Parameters||{},o);e._FlowView.setLayoutAlgorithm(t,n)}}))}},{key:"_buildLayoutParamInput",value:function(t,e,o){var n,r="_Pict.views['"+this.options.FlowViewIdentifier+"']._ToolbarView",i=t.replace(/'/g,"\\'");if("boolean"===e.Type)(n=document.createElement("input")).type="checkbox",n.checked=!!o,n.setAttribute("onchange",r+"._updateLayoutParameter('"+i+"', this.checked)");else if("enum"===e.Type&&Array.isArray(e.Options)){(n=document.createElement("select")).className="pict-flow-popup-settings-select";for(var a=0;a<e.Options.length;a++){var s=document.createElement("option");s.value=e.Options[a],s.textContent=e.Options[a],e.Options[a]===o&&(s.selected=!0),n.appendChild(s)}n.setAttribute("onchange",r+"._updateLayoutParameter('"+i+"', this.value)")}else if("number"===e.Type||"Number"===e.Type||"PreciseNumber"===e.Type){(n=document.createElement("input")).type="number",n.className="pict-flow-popup-settings-input";var l="PreciseNumber"===e.Type;"number"==typeof e.Min&&(n.min=String(e.Min)),"number"==typeof e.Max&&(n.max=String(e.Max)),n.step=l?"any":"1",n.value=null==o?"":String(o),n.style.width="90px";var c=l?"true":"false";n.setAttribute("onchange",r+"._updateLayoutNumberParameter('"+i+"', this.value, "+c+")")}else(n=document.createElement("input")).type="text",n.className="pict-flow-popup-settings-input",n.value=null==o?"":String(o),n.style.width="90px",n.setAttribute("onchange",r+"._updateLayoutParameter('"+i+"', this.value)");return n.setAttribute("onclick","event.stopPropagation()"),n}},{key:"_updateLayoutParameter",value:function(t,e){if(this._FlowView){var o=this._FlowView.getLayoutAlgorithm(),n=Object.assign({},o.Parameters||{});n[t]=e,this._FlowView.setLayoutAlgorithm(o.Algorithm,n)}}},{key:"_updateLayoutNumberParameter",value:function(t,e,o){if(""!==e)if(o)this._updateLayoutParameter(t,e);else{var n=parseFloat(e);isNaN(n)||this._updateLayoutParameter(t,n)}}},{key:"_buildSettingsPopup",value:function(t){if(this._FlowView){var e=this.options.FlowViewIdentifier,o=this._FlowView._StylePresetsProvider,n=this._FlowView._RendererProvider;if(o&&n){for(var r=o.listPresets(),i=o.getActivePresetHash(),a=[],s=0;s<r.length;s++){var l=r[s];a.push({Value:l.Hash,Label:l.Label||l.Hash,SelectedAttr:l.Hash===i?' selected="selected"':""})}var c=this.pict.parseTemplateByHash("Flow-Layout-OptionList",{Options:a}),p=Math.round(100*n.getNoiseLevel()),u=n.getActiveRenderer(),d=!!(u&&u.NoiseConfig&&u.NoiseConfig.Enabled)?"":"display:none;";this.pict.ContentAssignment.assignContent(t,'<div class="pict-flow-popup-settings-section"><label class="pict-flow-popup-settings-label">Theme</label><select class="pict-flow-popup-settings-select" onclick="event.stopPropagation()" onchange="_Pict.views[\''+e+"']._ToolbarView._handleThemeSelectChange(this.value)\">"+c+'</select></div><div class="pict-flow-popup-divider"></div><div class="pict-flow-popup-settings-section pict-flow-popup-settings-noise" data-settings-type="noise" style="'+d+'"><label class="pict-flow-popup-settings-label">Noise</label><div class="pict-flow-popup-settings-slider-row"><input type="range" class="pict-flow-popup-settings-slider" min="0" max="100" value="'+p+'" onclick="event.stopPropagation()" onpointerdown="event.stopPropagation()" oninput="_Pict.views[\''+e+'\']._ToolbarView._handleNoiseSliderInput(this)" /><span class="pict-flow-popup-settings-slider-value">'+p+"%</span></div></div>")}}}},{key:"_handleThemeSelectChange",value:function(t){if(this._FlowView){this._FlowView.setTheme(t);var e=this.options.FlowViewIdentifier,o=document.getElementById("Flow-Toolbar-Popup-".concat(e));o&&this._refreshNoiseSlider(o)}}},{key:"_handleNoiseSliderInput",value:function(t){var e=parseInt(t.value,10);if(!isNaN(e)){var o=e/100,n=t.parentNode?t.parentNode.querySelector(".pict-flow-popup-settings-slider-value"):null;n&&(n.textContent=e+"%"),this._FlowView&&this._FlowView.setNoiseLevel(o)}}},{key:"_refreshNoiseSlider",value:function(t){var e=t.querySelector('[data-settings-type="noise"]');if(e){var o=this._FlowView._RendererProvider;if(o){var n=o.getActiveRenderer();if(n&&n.NoiseConfig&&n.NoiseConfig.Enabled){e.style.display="";var r=e.querySelector(".pict-flow-popup-settings-slider"),i=e.querySelector(".pict-flow-popup-settings-slider-value");if(r){var a=Math.round(100*o.getNoiseLevel());r.value=String(a),i&&(i.textContent=a+"%")}}else e.style.display="none"}else e.style.display="none"}}},{key:"_setToolbarMode",value:function(t){this._closePopup();var e=this.options.FlowViewIdentifier,o=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Bar-".concat(e)),n=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Collapsed-".concat(e));switch(t){case"docked":o.length>0&&(o[0].style.display=""),n.length>0&&n[0].classList.remove("visible"),this._FloatingToolbarView&&this._FloatingToolbarView.hide();break;case"floating":o.length>0&&(o[0].style.display="none"),n.length>0&&n[0].classList.remove("visible"),this._showFloatingToolbar();break;case"collapsed":o.length>0&&(o[0].style.display="none"),n.length>0&&n[0].classList.add("visible"),this._FloatingToolbarView&&this._FloatingToolbarView.hide()}this._ToolbarMode=t}},{key:"_showFloatingToolbar",value:function(){if(this._FlowView){if(!this._FloatingToolbarView){var t=this.options.FlowViewIdentifier;this._FloatingToolbarView=this.fable.instantiateServiceProviderWithoutRegistration("PictViewFlowFloatingToolbar",{FlowViewIdentifier:t,DefaultDestinationAddress:"#Flow-FloatingToolbar-Container-".concat(t),EnableAddNode:this.options.EnableAddNode,EnableCardPalette:this.options.EnableCardPalette}),this._FloatingToolbarView._ToolbarView=this,this._FloatingToolbarView._FlowView=this._FlowView,this._FloatingToolbarView.render()}this._FloatingToolbarView.show()}}},{key:"_addNodeAtCenter",value:function(t){if(this._FlowView){var e=this._FlowView.viewState,o=this._FlowView._SVGElement,n=o?o.clientWidth:600,r=o?o.clientHeight:400,i=(-e.PanX+n/2)/e.Zoom,a=(-e.PanY+r/2)/e.Zoom,s=this._FlowView.flowData.Nodes.length;i+=s%5*30,a+=s%5*30,this._FlowView.addNode(t,i,a)}}},{key:"_addCardFromPalette",value:function(t){if(this._FlowView){var e=this._FlowView.viewState,o=(200-e.PanX)/e.Zoom,n=(200-e.PanY)/e.Zoom,r=this._FlowView.flowData.Nodes.length;o+=r%5*40,n+=r%5*40,this._FlowView.addNode(t,o,n)}}},{key:"_handleToolbarAction",value:function(t){if(this._FlowView){var e=this.options.FlowViewIdentifier;switch(t){case"add-node":this._openPopup("add-node");break;case"delete-selected":this._FlowView.deleteSelected();break;case"zoom-in":this._FlowView.setZoom(this._FlowView.viewState.Zoom+this._FlowView.options.ZoomStep);break;case"zoom-out":this._FlowView.setZoom(this._FlowView.viewState.Zoom-this._FlowView.options.ZoomStep);break;case"zoom-fit":this._FlowView.zoomToFit();break;case"auto-layout":case"apply-current-layout":this._FlowView.autoLayout();break;case"cards-popup":this._openPopup("cards");break;case"layout-popup":this._openPopup("layout");break;case"layout-algorithm-popup":this._openPopup("layout-algorithm");break;case"apply-layout":this._FlowView.applyCurrentLayout();break;case"settings-popup":this._openPopup("settings");break;case"toggle-floating":"floating"===this._ToolbarMode?this._setToolbarMode("docked"):this._setToolbarMode("floating");break;case"collapse-toolbar":this._setToolbarMode("collapsed");break;case"expand-toolbar":this._setToolbarMode("docked");break;case"fullscreen":var o=this._FlowView.toggleFullscreen(),n=this._FlowView._IconProvider,r=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Fullscreen-Icon-".concat(e));r.length>0&&n&&(r[0].innerHTML=n.getIconSVGMarkup(o?"exit-fullscreen":"fullscreen",14));var i=this.pict.ContentAssignment.getElement("#Flow-Toolbar-Fullscreen-".concat(e));i.length>0&&i[0].setAttribute("title",o?"Exit Fullscreen":"Toggle Fullscreen");break;default:this.log.warn("PictViewFlowToolbar: unknown action '".concat(t,"'"))}}}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-view":171}],93:[function(t,e,o){var n=t("pict-view"),r=t("../services/PictService-Flow-InteractionManager.js"),i=t("../services/PictService-Flow-ConnectionRenderer.js"),a=t("../services/PictService-Flow-Tether.js"),s=t("../services/PictService-Flow-Layout.js"),l=t("../services/PictService-Flow-PathGenerator.js"),c=t("../services/PictService-Flow-ViewportManager.js"),p=t("../services/PictService-Flow-SelectionManager.js"),u=t("../services/PictService-Flow-PanelManager.js"),d=t("../services/PictService-Flow-DataManager.js"),h=t("../services/PictService-Flow-ConnectionHandleManager.js"),f=t("../services/PictService-Flow-RenderManager.js"),m=t("../services/PictService-Flow-PortRenderer.js"),v=t("../providers/PictProvider-Flow-NodeTypes.js"),g=t("../providers/PictProvider-Flow-EventHandler.js"),w=t("../providers/PictProvider-Flow-Layouts.js"),y=t("../providers/PictProvider-Flow-SVGHelpers.js"),b=t("../providers/PictProvider-Flow-Geometry.js"),D=t("../providers/PictProvider-Flow-PanelChrome.js"),P=t("../providers/PictProvider-Flow-CSS.js"),T=t("../providers/PictProvider-Flow-Icons.js"),S=t("../providers/PictProvider-Flow-ConnectorShapes.js"),F=t("../providers/PictProvider-Flow-Theme.js"),C=t("../providers/PictProvider-Flow-Renderer.js"),x=t("../providers/PictProvider-Flow-StylePresets.js"),_=t("../providers/PictProvider-Flow-Noise.js"),A=t("./PictView-Flow-Node.js"),I=t("./PictView-Flow-Toolbar.js"),k=t("./PictView-Flow-FloatingToolbar.js"),H=t("./PictView-Flow-PropertiesPanel.js"),R=t("../PictFlowCardPropertiesPanel.js"),M=t("../panels/FlowCardPropertiesPanel-Template.js"),V=t("../panels/FlowCardPropertiesPanel-Markdown.js"),E=t("../panels/FlowCardPropertiesPanel-Form.js"),L=t("../panels/FlowCardPropertiesPanel-View.js"),N={ViewIdentifier:"Pict-Flow",DefaultRenderable:"Flow-Container",DefaultDestinationAddress:"#Flow-Container",AutoRender:!1,FlowDataAddress:!1,TargetElementAddress:"#Flow-SVG-Container",EnableToolbar:!0,EnableAddNode:!0,EnableCardPalette:!0,IncludeDefaultNodeTypes:!0,EnablePanning:!0,EnableZooming:!0,EnableNodeDragging:!0,EnableConnectionCreation:!0,EnableGridSnap:!1,GridSnapSize:20,EnableLayoutMenu:!0,MinZoom:.1,MaxZoom:5,ZoomStep:.1,DefaultNodeType:"default",DefaultNodeWidth:180,DefaultNodeHeight:80,DefaultLayoutAlgorithm:"Custom",DefaultLayoutParameters:{},DefaultLayoutAutoApply:!1,DefaultEdgeTheme:null,DefaultEdgeThemeParameters:{},CSS:!1,Templates:[{Hash:"Flow-PanelChrome-Template",Template:'<div class="pict-flow-panel" xmlns="http://www.w3.org/1999/xhtml"><div class="pict-flow-panel-titlebar" data-element-type="panel-titlebar" data-panel-hash="{~D:Record.Hash~}"><span class="pict-flow-panel-title-text">{~D:Record.Title~}</span><span class="pict-flow-panel-close-btn" data-element-type="panel-close" data-panel-hash="{~D:Record.Hash~}"><span class="pict-flow-panel-close-icon"></span></span></div><div class="pict-flow-panel-content" data-panel-hash="{~D:Record.Hash~}" onpointerdown="event.stopPropagation()" onwheel="event.stopPropagation()"><div class="pict-flow-panel-tab-pane active" data-tab="properties" data-panel-hash="{~D:Record.Hash~}"></div><div class="pict-flow-panel-tab-pane" data-tab="help" data-panel-hash="{~D:Record.Hash~}" style="display:none;"></div><div class="pict-flow-panel-tab-pane" data-tab="appearance" data-panel-hash="{~D:Record.Hash~}" style="display:none;"></div></div><div class="pict-flow-panel-resize-handle" data-element-type="panel-resize" data-panel-hash="{~D:Record.Hash~}"></div><div class="pict-flow-panel-tabbar" data-panel-hash="{~D:Record.Hash~}" onpointerdown="event.stopPropagation()" onwheel="event.stopPropagation()"><div class="pict-flow-panel-tab active" data-tab-target="properties" data-panel-hash="{~D:Record.Hash~}" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._handlePanelTabClick(this, event)">Properties</div><div class="pict-flow-panel-tab" data-tab-target="help" data-panel-hash="{~D:Record.Hash~}" style="display:none;" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._handlePanelTabClick(this, event)">Help</div><div class="pict-flow-panel-tab" data-tab-target="appearance" data-panel-hash="{~D:Record.Hash~}" onclick="_Pict.views[\'{~D:Record.FlowViewIdentifier~}\']._handlePanelTabClick(this, event)">Appearance</div></div></div>'},{Hash:"Flow-Container-Template",Template:'\n<div class="pict-flow-container" id="Flow-Wrapper-{~D:Record.ViewIdentifier~}">\n\t<div id="Flow-Toolbar-{~D:Record.ViewIdentifier~}"></div>\n\t<div id="Flow-FloatingToolbar-Container-{~D:Record.ViewIdentifier~}" style="display:none;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100;"></div>\n\t<div class="pict-flow-svg-container" id="Flow-SVG-Container-{~D:Record.ViewIdentifier~}">\n\t\t<svg class="pict-flow-svg"\n\t\t\tid="Flow-SVG-{~D:Record.ViewIdentifier~}"\n\t\t\txmlns="http://www.w3.org/2000/svg"\n\t\t\tonpointerdown="_Pict.views[\'{~D:Record.ViewIdentifier~}\']._handleSVGPointerDown(event)"\n\t\t\tonpointermove="_Pict.views[\'{~D:Record.ViewIdentifier~}\']._handleSVGPointerMove(event)"\n\t\t\tonpointerup="_Pict.views[\'{~D:Record.ViewIdentifier~}\']._handleSVGPointerUp(event)"\n\t\t\tonpointerleave="_Pict.views[\'{~D:Record.ViewIdentifier~}\']._handleSVGPointerUp(event)"\n\t\t\tonwheel="_Pict.views[\'{~D:Record.ViewIdentifier~}\']._handleSVGWheel(event)"\n\t\t\toncontextmenu="_Pict.views[\'{~D:Record.ViewIdentifier~}\']._handleSVGContextMenu(event)">\n\t\t\t<defs>\n\t\t\t\t<pattern id="flow-grid-{~D:Record.ViewIdentifier~}"\n\t\t\t\t\twidth="20" height="20" patternUnits="userSpaceOnUse">\n\t\t\t\t\t<line x1="20" y1="0" x2="20" y2="20" class="pict-flow-grid-pattern" />\n\t\t\t\t\t<line x1="0" y1="20" x2="20" y2="20" class="pict-flow-grid-pattern" />\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect width="10000" height="10000" x="-5000" y="-5000"\n\t\t\t\tfill="url(#flow-grid-{~D:Record.ViewIdentifier~})"\n\t\t\t\tclass="pict-flow-grid-background" />\n\t\t\t<g class="pict-flow-viewport" id="Flow-Viewport-{~D:Record.ViewIdentifier~}">\n\t\t\t\t<g class="pict-flow-connections-layer" id="Flow-Connections-{~D:Record.ViewIdentifier~}"></g>\n\t\t\t\t<g class="pict-flow-nodes-layer" id="Flow-Nodes-{~D:Record.ViewIdentifier~}"></g>\n\t\t\t\t<g class="pict-flow-endpoints-layer" id="Flow-Endpoints-{~D:Record.ViewIdentifier~}"></g>\n\t\t\t\t<g class="pict-flow-port-hints-layer" id="Flow-PortHints-{~D:Record.ViewIdentifier~}"></g>\n\t\t\t\t<g class="pict-flow-tethers-layer" id="Flow-Tethers-{~D:Record.ViewIdentifier~}"></g>\n\t\t\t\t<g class="pict-flow-panels-layer" id="Flow-Panels-{~D:Record.ViewIdentifier~}"></g>\n\t\t\t</g>\n\t\t</svg>\n\t</div>\n</div>\n'}],Renderables:[{RenderableHash:"Flow-Container",TemplateHash:"Flow-Container-Template",DestinationAddress:"#Flow-Container",RenderMethod:"replace"}]},O=function(t){function e(t,o,n){var O;_classCallCheck(this,e);var G=Object.assign({},JSON.parse(JSON.stringify(N)),o);return(O=_callSuper(this,e,[t,G,n])).serviceType="PictSectionFlow",O._ServiceRegistry=[{ServiceType:"PictProviderFlowSVGHelpers",Library:y,Property:"_SVGHelperProvider",NoFlowView:!0},{ServiceType:"PictProviderFlowGeometry",Library:b,Property:"_GeometryProvider",NoFlowView:!0},{ServiceType:"PictProviderFlowNoise",Library:_,Property:"_NoiseProvider",NoFlowView:!0},{ServiceType:"PictProviderFlowRenderer",Library:C,Property:"_RendererProvider"},{ServiceType:"PictProviderFlowStylePresets",Library:x,Property:"_StylePresetsProvider"},{ServiceType:"PictProviderFlowTheme",Library:F,Property:"_ThemeProvider"},{ServiceType:"PictProviderFlowCSS",Library:P,Property:"_CSSProvider",PostInit:"registerCSS"},{ServiceType:"PictProviderFlowIcons",Library:T,Property:"_IconProvider",PostInit:"registerIconTemplates"},{ServiceType:"PictProviderFlowConnectorShapes",Library:S,Property:"_ConnectorShapesProvider"},{ServiceType:"PictProviderFlowPanelChrome",Library:D,Property:"_PanelChromeProvider"},{ServiceType:"PictProviderFlowNodeTypes",Library:v,Property:"_NodeTypeProvider",ExtraOptions:function(){return{AdditionalNodeTypes:O.options.NodeTypes,IncludeDefaultNodeTypes:O.options.IncludeDefaultNodeTypes}}},{ServiceType:"PictProviderFlowEventHandler",Library:g,Property:"_EventHandlerProvider"},{ServiceType:"PictProviderFlowLayouts",Library:w,Property:"_LayoutProvider",PostInit:"loadPersistedLayouts"},{ServiceType:"PictServiceFlowPathGenerator",Library:l,Property:"_PathGenerator"},{ServiceType:"PictServiceFlowDataManager",Library:d,Property:"_DataManager"},{ServiceType:"PictServiceFlowConnectionHandleManager",Library:h,Property:"_ConnectionHandleManager"},{ServiceType:"PictServiceFlowRenderManager",Library:f,Property:"_RenderManager"},{ServiceType:"PictServiceFlowPortRenderer",Library:m,Property:"_PortRenderer"},{ServiceType:"PictServiceFlowInteractionManager",Library:r,Property:"_InteractionManager"},{ServiceType:"PictServiceFlowConnectionRenderer",Library:i,Property:"_ConnectionRenderer"},{ServiceType:"PictServiceFlowTether",Library:a,Property:"_TetherService"},{ServiceType:"PictServiceFlowLayout",Library:s,Property:"_LayoutService"},{ServiceType:"PictServiceFlowViewportManager",Library:c,Property:"_ViewportManager"},{ServiceType:"PictServiceFlowSelectionManager",Library:p,Property:"_SelectionManager"},{ServiceType:"PictServiceFlowPanelManager",Library:u,Property:"_PanelManager"},{ServiceType:"PictViewFlowNode",Library:A,RegisterOnly:!0},{ServiceType:"PictViewFlowToolbar",Library:I,RegisterOnly:!0},{ServiceType:"PictViewFlowFloatingToolbar",Library:k,RegisterOnly:!0},{ServiceType:"PictViewFlowPropertiesPanel",Library:H,RegisterOnly:!0},{ServiceType:"PictFlowCardPropertiesPanel",Library:R,RegisterOnly:!0},{ServiceType:"PictFlowCardPropertiesPanel-Template",Library:M,RegisterOnly:!0},{ServiceType:"PictFlowCardPropertiesPanel-Markdown",Library:V,RegisterOnly:!0},{ServiceType:"PictFlowCardPropertiesPanel-Form",Library:E,RegisterOnly:!0},{ServiceType:"PictFlowCardPropertiesPanel-View",Library:L,RegisterOnly:!0}],O._registerServiceTypes(),O._FlowData={Nodes:[],Connections:[],OpenPanels:[],SavedLayouts:[],ViewState:{PanX:0,PanY:0,Zoom:1,SelectedNodeHash:null,SelectedConnectionHash:null,SelectedTetherHash:null},LayoutAlgorithm:O.options.DefaultLayoutAlgorithm||"Custom",LayoutParameters:JSON.parse(JSON.stringify(O.options.DefaultLayoutParameters||{})),LayoutAutoApply:!!O.options.DefaultLayoutAutoApply,EdgeTheme:O.options.DefaultEdgeTheme||null,EdgeThemeParameters:JSON.parse(JSON.stringify(O.options.DefaultEdgeThemeParameters||{}))},O._AutoApplyInProgress=!1,O._AutoApplyHandlerHashes=[],O._SVGElement=null,O._ViewportElement=null,O._NodesLayer=null,O._ConnectionsLayer=null,O._EndpointsLayer=null,O._PortHintsLayer=null,O._TethersLayer=null,O._PanelsLayer=null,O._DataManager=null,O._ConnectionHandleManager=null,O._RenderManager=null,O._PortRenderer=null,O._InteractionManager=null,O._ConnectionRenderer=null,O._TetherService=null,O._LayoutService=null,O._PathGenerator=null,O._ViewportManager=null,O._SelectionManager=null,O._PanelManager=null,O._CSSProvider=null,O._IconProvider=null,O._ConnectorShapesProvider=null,O._ThemeProvider=null,O._RendererProvider=null,O._StylePresetsProvider=null,O._NoiseProvider=null,O._SVGHelperProvider=null,O._GeometryProvider=null,O._PanelChromeProvider=null,O._NodeTypeProvider=null,O._LayoutProvider=null,O._EventHandlerProvider=null,O._NodeView=null,O._ToolbarView=null,O._PropertiesPanelView=null,O.initialRenderComplete=!1,O}return _inherits(e,t),_createClass2(e,[{key:"_registerServiceTypes",value:function(){for(var t=0;t<this._ServiceRegistry.length;t++){var e=this._ServiceRegistry[t];this.fable.servicesMap.hasOwnProperty(e.ServiceType)||this.fable.addServiceType(e.ServiceType,e.Library)}}},{key:"_instantiateServices",value:function(){for(var t=0;t<this._ServiceRegistry.length;t++){var e=this._ServiceRegistry[t];if(!e.RegisterOnly&&!this[e.Property]){var o=e.NoFlowView?{}:{FlowView:this};"function"==typeof e.ExtraOptions&&Object.assign(o,e.ExtraOptions()),this[e.Property]=this.fable.instantiateServiceProviderWithoutRegistration(e.ServiceType,o),e.PostInit&&"function"==typeof this[e.Property][e.PostInit]&&this[e.Property][e.PostInit]()}}}},{key:"flowData",get:function(){return this._FlowData}},{key:"viewState",get:function(){return this._FlowData.ViewState}},{key:"_IsFullscreen",get:function(){return!!this._ViewportManager&&this._ViewportManager._IsFullscreen}},{key:"render",value:function(t,o){return _superPropGet(e,"render",this,3)([t,o,this.options])}},{key:"renderAsync",value:function(t,o,n,r,i){return"function"==typeof n||void 0===n?_superPropGet(e,"renderAsync",this,3)([t,o,this.options,r,n||i]):_superPropGet(e,"renderAsync",this,3)([t,o,n,r,i])}},{key:"onBeforeInitialize",value:function(){_superPropGet(e,"onBeforeInitialize",this,3)([]),this._NoiseProvider=this.fable.instantiateServiceProviderWithoutRegistration("PictProviderFlowNoise"),this._RendererProvider=this.fable.instantiateServiceProviderWithoutRegistration("PictProviderFlowRenderer",{FlowView:this}),this._StylePresetsProvider=this.fable.instantiateServiceProviderWithoutRegistration("PictProviderFlowStylePresets",{FlowView:this}),this._ThemeProvider=this.fable.instantiateServiceProviderWithoutRegistration("PictProviderFlowTheme",{FlowView:this});var t=this.options.StylePreset||this.options.Theme;return t&&this._StylePresetsProvider.applyPreset(t),this.options.Renderer&&(this._RendererProvider.setRenderer(this.options.Renderer),this._StylePresetsProvider.markCustomized()),"number"==typeof this.options.NoiseLevel&&this._RendererProvider.setNoiseLevel(this.options.NoiseLevel),this._instantiateServices(),this._CSSProvider&&"function"==typeof this._CSSProvider.registerRendererCSS&&this._CSSProvider.registerRendererCSS(this._RendererProvider.getActiveRenderer()),this._subscribeToHostTheme(),_superPropGet(e,"onBeforeInitialize",this,3)([])}},{key:"_subscribeToHostTheme",value:function(){var t=this,e=this._resolveHostThemeProvider();e&&"function"==typeof e.onApply&&(this._HostThemeUnsubscribe=e.onApply(function(){t._CSSProvider&&t._CSSProvider.registerCSS(),t._reinjectMarkerDefs(),t.initialRenderComplete&&t.renderFlow()}))}},{key:"_resolveHostThemeProvider",value:function(){var t=this.pict;if(!t)return null;if(t.providers)for(var e=Object.keys(t.providers),o=0;o<e.length;o++){var n=t.providers[e[o]];if(n&&"function"==typeof n.onApply&&"function"==typeof n.applyTheme&&"function"==typeof n.listThemes)return n}return null}},{key:"onAfterRender",value:function(t,o,n,r){return this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),_superPropGet(e,"onAfterRender",this,3)([t,o,n,r])}},{key:"onAfterInitialRender",value:function(){var t=this.options.ViewIdentifier,e=this.pict.ContentAssignment.getElement("#Flow-SVG-".concat(t));if(e.length<1)return this.log.error("PictSectionFlow could not find SVG element #Flow-SVG-".concat(t)),!1;this._SVGElement=e[0];var o=this.pict.ContentAssignment.getElement("#Flow-Viewport-".concat(t));o.length>0&&(this._ViewportElement=o[0]);var n=this.pict.ContentAssignment.getElement("#Flow-Nodes-".concat(t));n.length>0&&(this._NodesLayer=n[0]);var r=this.pict.ContentAssignment.getElement("#Flow-Connections-".concat(t));r.length>0&&(this._ConnectionsLayer=r[0]);var i=this.pict.ContentAssignment.getElement("#Flow-Endpoints-".concat(t));i.length>0&&(this._EndpointsLayer=i[0]);var a=this.pict.ContentAssignment.getElement("#Flow-PortHints-".concat(t));a.length>0&&(this._PortHintsLayer=a[0]);var s=this.pict.ContentAssignment.getElement("#Flow-Tethers-".concat(t));s.length>0&&(this._TethersLayer=s[0]);var l=this.pict.ContentAssignment.getElement("#Flow-Panels-".concat(t));if(l.length>0&&(this._PanelsLayer=l[0]),this._instantiateServices(),this._ConnectorShapesProvider&&this._SVGElement){var c=this._SVGElement.querySelector("defs");if(c){var p=this._ConnectorShapesProvider.generateMarkerDefs(t),u=document.createElementNS("http://www.w3.org/2000/svg","svg");for(u.innerHTML=p;u.firstChild;)c.appendChild(u.firstChild)}}this.options.EnableToolbar&&(this._ToolbarView=this.fable.instantiateServiceProviderWithoutRegistration("PictViewFlowToolbar",Object.assign({},I.default_configuration,{ViewIdentifier:"Flow-Toolbar-".concat(t),DefaultDestinationAddress:"#Flow-Toolbar-".concat(t),FlowViewIdentifier:t,EnableAddNode:this.options.EnableAddNode,EnableCardPalette:this.options.EnableCardPalette})),this._ToolbarView&&"function"==typeof this._ToolbarView.render&&(this._ToolbarView._FlowView=this,this._ToolbarView.render())),this._NodeView=this.fable.instantiateServiceProviderWithoutRegistration("PictViewFlowNode",Object.assign({},A.default_configuration,{ViewIdentifier:"Flow-NodeRenderer-".concat(t),AutoRender:!1})),this._NodeView._FlowView=this,this._PropertiesPanelView=this.fable.instantiateServiceProviderWithoutRegistration("PictViewFlowPropertiesPanel",Object.assign({},H.default_configuration,{ViewIdentifier:"Flow-PropertiesPanel-".concat(t),AutoRender:!1})),this._PropertiesPanelView._FlowView=this,this._InteractionManager.initialize(this._SVGElement,this._ViewportElement),this._subscribeAutoApplyHandlers(),this.options.FlowDataAddress&&this.marshalToView(),this.renderFlow()}},{key:"marshalToView",value:function(){return this._DataManager.marshalToView()}},{key:"marshalFromView",value:function(){return this._DataManager.marshalFromView()}},{key:"getFlowData",value:function(){return this._DataManager.getFlowData()}},{key:"setFlowData",value:function(t){return this._DataManager.setFlowData(t)}},{key:"addNode",value:function(t,e,o,n,r){return this._DataManager.addNode(t,e,o,n,r)}},{key:"removeNode",value:function(t){return this._DataManager.removeNode(t)}},{key:"addConnection",value:function(t,e,o,n,r){return this._DataManager.addConnection(t,e,o,n,r)}},{key:"removeConnection",value:function(t){return this._DataManager.removeConnection(t)}},{key:"selectNode",value:function(t){return this._SelectionManager.selectNode(t)}},{key:"selectConnection",value:function(t){return this._SelectionManager.selectConnection(t)}},{key:"deselectAll",value:function(){return this._SelectionManager.deselectAll()}},{key:"deleteSelected",value:function(){return this._SelectionManager.deleteSelected()}},{key:"updateViewportTransform",value:function(){return this._ViewportManager.updateViewportTransform()}},{key:"setZoom",value:function(t,e,o){return this._ViewportManager.setZoom(t,e,o)}},{key:"zoomToFit",value:function(){return this._ViewportManager.zoomToFit()}},{key:"autoLayout",value:function(t,e){if(this._LayoutService){var o,n;if("string"==typeof t&&""!==t)o=t,n=e||{};else{var r=this._FlowData.LayoutAlgorithm;n=(o="string"==typeof r&&""!==r&&"Custom"!==r?r:"Layered")===this._FlowData.LayoutAlgorithm&&this._FlowData.LayoutParameters||{}}this._LayoutService.autoLayout(this._FlowData.Nodes,this._FlowData.Connections,o,n),this.renderFlow(),this.marshalFromView(),this._EventHandlerProvider&&this._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowData)}}},{key:"applyCurrentLayout",value:function(){if(this._LayoutService){var t=this._FlowData.LayoutAlgorithm||"Custom";this._AutoApplyInProgress=!0;try{"Custom"!==t&&this._LayoutService.applyLayout(this._FlowData.Nodes,this._FlowData.Connections,t,this._FlowData.LayoutParameters||{});var e=this._LayoutService.resolveActiveEdgeTheme({});if(e&&"function"==typeof e.AdjustLayout)try{var o=this._LayoutService.getMergedEdgeThemeParameters(e.Name,this._FlowData.EdgeThemeParameters||{});e.AdjustLayout(this._FlowData.Nodes,this._FlowData.Connections,o)}catch(t){this.log.warn("PictSectionFlow edge theme '".concat(e.Name,"' AdjustLayout threw: ").concat(t.message))}var n=!(!e||"function"!=typeof e.AdjustLayout);if(!("Custom"!==t)&&!n)return;this.renderFlow(),this.marshalFromView(),this._EventHandlerProvider&&this._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowData)}finally{this._AutoApplyInProgress=!1}}}},{key:"setEdgeTheme",value:function(t,e){if(this._LayoutService&&(null==t||"string"==typeof t)){if(t){var o=this._LayoutService.getEdgeTheme(t);if(!o)return void this.log.warn("PictSectionFlow setEdgeTheme: unknown theme '".concat(t,"'"));this._FlowData.EdgeTheme=t,this._FlowData.EdgeThemeParameters=Object.assign({},o.DefaultParameters||{},e||{})}else this._FlowData.EdgeTheme=null,this._FlowData.EdgeThemeParameters=e?Object.assign({},e):{};this.applyCurrentLayout()}}},{key:"getEdgeTheme",value:function(){var t=this._LayoutService?this._LayoutService.resolveActiveEdgeTheme({}):null;return{Theme:t?t.Name:null,Override:this._FlowData.EdgeTheme||null,Parameters:JSON.parse(JSON.stringify(this._FlowData.EdgeThemeParameters||{}))}}},{key:"setLayoutAlgorithm",value:function(t,e,o){if(this._LayoutService&&"string"==typeof t&&""!==t){var n=this._LayoutService.getAlgorithm(t);n?(this._FlowData.LayoutAlgorithm=t,this._FlowData.LayoutParameters=Object.assign({},n.DefaultParameters||{},e||{}),"boolean"==typeof o&&(this._FlowData.LayoutAutoApply=o),this.applyCurrentLayout(),this.renderFlow()):this.log.warn("PictSectionFlow setLayoutAlgorithm: unknown algorithm '".concat(t,"'"))}}},{key:"setLayoutAutoApply",value:function(t){this._FlowData.LayoutAutoApply=!!t,this.marshalFromView()}},{key:"getLayoutAlgorithm",value:function(){return{Algorithm:this._FlowData.LayoutAlgorithm||"Custom",Parameters:JSON.parse(JSON.stringify(this._FlowData.LayoutParameters||{})),AutoApply:!!this._FlowData.LayoutAutoApply}}},{key:"_subscribeAutoApplyHandlers",value:function(){var t=this;if(this._EventHandlerProvider&&!(this._AutoApplyHandlerHashes.length>0))for(var e=["onNodeAdded","onNodeRemoved","onConnectionCreated","onConnectionRemoved"],o=0;o<e.length;o++){var n=this._EventHandlerProvider.registerHandler(e[o],function(){t._AutoApplyInProgress||t._FlowData.LayoutAutoApply&&t._FlowData.LayoutAlgorithm&&"Custom"!==t._FlowData.LayoutAlgorithm&&t.applyCurrentLayout()});n&&this._AutoApplyHandlerHashes.push({Event:e[o],Hash:n})}}},{key:"toggleFullscreen",value:function(){return this._ViewportManager.toggleFullscreen()}},{key:"exitFullscreen",value:function(){return this._ViewportManager.exitFullscreen()}},{key:"setStylePreset",value:function(t){this._StylePresetsProvider?this._StylePresetsProvider.applyPreset(t)&&(this._refreshAfterStyleChange(),this._EventHandlerProvider&&(this._EventHandlerProvider.fireEvent("onStylePresetChanged",t),this._EventHandlerProvider.fireEvent("onThemeChanged",t))):this.log.warn("PictSectionFlow setStylePreset: StylePresets provider not available")}},{key:"getStylePreset",value:function(){return this._StylePresetsProvider?this._StylePresetsProvider.getActivePresetHash():null}},{key:"setColorTheme",value:function(t){if(this.fable.providers&&this.fable.providers.Theme){try{this.fable.providers.Theme.applyTheme(t)}catch(t){return void this.log.warn("PictSectionFlow setColorTheme: applyTheme failed — ".concat(t.message))}this._StylePresetsProvider&&this._StylePresetsProvider.markCustomized(),this._refreshAfterStyleChange(),this._EventHandlerProvider&&this._EventHandlerProvider.fireEvent("onColorThemeChanged",t)}else this.log.warn("PictSectionFlow setColorTheme: pict-provider-theme not available in host")}},{key:"getColorThemeKey",value:function(){if(this.fable.providers&&this.fable.providers.Theme&&"function"==typeof this.fable.providers.Theme.getActiveTheme){var t=this.fable.providers.Theme.getActiveTheme();if(t&&t.Hash)return t.Hash}return null}},{key:"setRenderer",value:function(t){this._RendererProvider?this._RendererProvider.setRenderer(t)&&(this._StylePresetsProvider&&this._StylePresetsProvider.markCustomized(),this._refreshAfterStyleChange(),this._EventHandlerProvider&&this._EventHandlerProvider.fireEvent("onRendererChanged",t)):this.log.warn("PictSectionFlow setRenderer: Renderer provider not available")}},{key:"getRendererKey",value:function(){return this._RendererProvider?this._RendererProvider.getActiveRendererKey():"clean"}},{key:"setNoiseLevel",value:function(t){this._RendererProvider?this._RendererProvider.setNoiseLevel(t):this._ThemeProvider&&this._ThemeProvider.setNoiseLevel(t),this.initialRenderComplete&&this.renderFlow()}},{key:"getNoiseLevel",value:function(){return this._RendererProvider?this._RendererProvider.getNoiseLevel():this._ThemeProvider?this._ThemeProvider.getNoiseLevel():0}},{key:"setTheme",value:function(t){this.setStylePreset(t)}},{key:"getThemeKey",value:function(){return this.getStylePreset()}},{key:"_refreshAfterStyleChange",value:function(){this._CSSProvider&&"function"==typeof this._CSSProvider.registerRendererCSS&&this._RendererProvider&&this._CSSProvider.registerRendererCSS(this._RendererProvider.getActiveRenderer()),this._CSSProvider&&this._CSSProvider.registerCSS(),this._reinjectMarkerDefs(),this.initialRenderComplete&&this.renderFlow()}},{key:"_reinjectMarkerDefs",value:function(){return this._RenderManager.reinjectMarkerDefs()}},{key:"getNode",value:function(t){return this._FlowData.Nodes.find(function(e){return e.Hash===t})||null}},{key:"getConnection",value:function(t){return this._FlowData.Connections.find(function(e){return e.Hash===t})||null}},{key:"selectTether",value:function(t){return this._SelectionManager.selectTether(t)}},{key:"updateConnectionHandle",value:function(t,e,o,n){return this._ConnectionHandleManager.updateConnectionHandle(t,e,o,n)}},{key:"addConnectionHandle",value:function(t,e,o){return this._ConnectionHandleManager.addConnectionHandle(t,e,o)}},{key:"removeConnectionHandle",value:function(t,e){return this._ConnectionHandleManager.removeConnectionHandle(t,e)}},{key:"_resetHandlesForNode",value:function(t){return this._ConnectionHandleManager.resetHandlesForNode(t)}},{key:"_resetHandlesForPanel",value:function(t){return this._ConnectionHandleManager.resetHandlesForPanel(t)}},{key:"addTetherHandle",value:function(t,e,o){var n=this._FlowData.OpenPanels.find(function(e){return e.Hash===t});if(n&&this._TetherService){var r=this.getNode(n.NodeHash);if(r){var i=this._TetherService.getSmartAnchors(n,r);this._TetherService.addHandle(n,e,o,i.panelAnchor,i.nodeAnchor),this.renderFlow(),this.marshalFromView(),this._EventHandlerProvider&&this._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowData)}}}},{key:"removeTetherHandle",value:function(t,e){var o=this._FlowData.OpenPanels.find(function(e){return e.Hash===t});o&&this._TetherService&&(this._TetherService.removeHandle(o,e),this.renderFlow(),this.marshalFromView(),this._EventHandlerProvider&&this._EventHandlerProvider.fireEvent("onFlowChanged",this._FlowData))}},{key:"updateTetherHandle",value:function(t,e,o,n){var r=this._FlowData.OpenPanels.find(function(e){return e.Hash===t});r&&(this._TetherService&&this._TetherService.updateHandlePosition(r,e,o,n),this._renderSingleTether(t))}},{key:"getPortPosition",value:function(t,e){var o=this.getNode(t);if(!o)return null;var n=o.Ports.find(function(t){return t.Hash===e});if(!n)return null;var r=o.Ports.filter(function(t){return t.Side===n.Side}),i=r.indexOf(n),a=r.length,s=this._NodeView&&this._NodeView.options.NodeTitleBarHeight||28,l=o.Height||80;if(this._GeometryProvider&&o.Ports&&o.Ports.length>0){var c=this._GeometryProvider.computeMinimumNodeHeight(o.Ports,s);c>l&&(l=c)}var p=this._GeometryProvider.buildPortCountsBySide(o.Ports),u=this._GeometryProvider.getPortLocalPosition(n.Side,i,a,o.Width,l,s,p);return{x:o.X+u.x,y:o.Y+u.y,side:n.Side||"right"}}},{key:"screenToSVGCoords",value:function(t,e){return this._ViewportManager.screenToSVGCoords(t,e)}},{key:"renderFlow",value:function(){return this._RenderManager.renderFlow()}},{key:"_renderSingleConnection",value:function(t){return this._RenderManager.renderSingleConnection(t)}},{key:"_renderSingleTether",value:function(t){return this._RenderManager.renderSingleTether(t)}},{key:"updateNodePosition",value:function(t,e,o){return this._RenderManager.updateNodePosition(t,e,o)}},{key:"_renderConnectionsForNode",value:function(t){return this._RenderManager.renderConnectionsForNode(t)}},{key:"_renderTethersForNode",value:function(t){return this._RenderManager.renderTethersForNode(t)}},{key:"openPanel",value:function(t){return this._PanelManager.openPanel(t)}},{key:"closePanel",value:function(t){return this._PanelManager.closePanel(t)}},{key:"closePanelForNode",value:function(t){return this._PanelManager.closePanelForNode(t)}},{key:"togglePanel",value:function(t){return this._PanelManager.togglePanel(t)}},{key:"updatePanelPosition",value:function(t,e,o){return this._PanelManager.updatePanelPosition(t,e,o)}},{key:"_handlePanelTabClick",value:function(t,e){e&&"function"==typeof e.stopPropagation&&e.stopPropagation(),this._PropertiesPanelView&&this._PropertiesPanelView.switchPanelTab(t)}},{key:"_applyNodePropChange",value:function(t,e,o,n,r){r&&"function"==typeof r.stopPropagation&&r.stopPropagation(),this._PropertiesPanelView&&this._PropertiesPanelView._applyNodePropChange(t,e,o,n)}},{key:"_activatePortHints",value:function(t,e){this._togglePortHints(t,e,!0)}},{key:"_deactivatePortHints",value:function(t,e){this._togglePortHints(t,e,!1)}},{key:"_togglePortHints",value:function(t,e,o){for(var n=t?'.pict-flow-port-hint[data-port-hash="'+t+'"]':'.pict-flow-port-hint[data-node-hash="'+e+'"]',r=(this._SVGElement||document).querySelectorAll(n),i=0;i<r.length;i++)o?r[i].setAttribute("data-active","true"):r[i].removeAttribute("data-active")}},{key:"_handleSVGPointerDown",value:function(t){this._InteractionManager&&this._InteractionManager._onPointerDown(t)}},{key:"_handleSVGPointerMove",value:function(t){this._InteractionManager&&this._InteractionManager._onPointerMove(t)}},{key:"_handleSVGPointerUp",value:function(t){this._InteractionManager&&this._InteractionManager._onPointerUp(t)}},{key:"_handleSVGWheel",value:function(t){this._InteractionManager&&this._InteractionManager._onWheel(t)}},{key:"_handleSVGContextMenu",value:function(t){this._InteractionManager&&this._InteractionManager.handleContextMenu(t)}}])}(n);e.exports=O,e.exports.default_configuration=N},{"../PictFlowCardPropertiesPanel.js":43,"../panels/FlowCardPropertiesPanel-Form.js":44,"../panels/FlowCardPropertiesPanel-Markdown.js":45,"../panels/FlowCardPropertiesPanel-Template.js":46,"../panels/FlowCardPropertiesPanel-View.js":47,"../providers/PictProvider-Flow-CSS.js":48,"../providers/PictProvider-Flow-ConnectorShapes.js":49,"../providers/PictProvider-Flow-EventHandler.js":50,"../providers/PictProvider-Flow-Geometry.js":51,"../providers/PictProvider-Flow-Icons.js":52,"../providers/PictProvider-Flow-Layouts.js":53,"../providers/PictProvider-Flow-NodeTypes.js":54,"../providers/PictProvider-Flow-Noise.js":55,"../providers/PictProvider-Flow-PanelChrome.js":56,"../providers/PictProvider-Flow-Renderer.js":57,"../providers/PictProvider-Flow-SVGHelpers.js":58,"../providers/PictProvider-Flow-StylePresets.js":59,"../providers/PictProvider-Flow-Theme.js":60,"../services/PictService-Flow-ConnectionHandleManager.js":77,"../services/PictService-Flow-ConnectionRenderer.js":78,"../services/PictService-Flow-DataManager.js":79,"../services/PictService-Flow-InteractionManager.js":80,"../services/PictService-Flow-Layout.js":81,"../services/PictService-Flow-PanelManager.js":82,"../services/PictService-Flow-PathGenerator.js":83,"../services/PictService-Flow-PortRenderer.js":84,"../services/PictService-Flow-RenderManager.js":85,"../services/PictService-Flow-SelectionManager.js":86,"../services/PictService-Flow-Tether.js":87,"../services/PictService-Flow-ViewportManager.js":88,"./PictView-Flow-FloatingToolbar.js":89,"./PictView-Flow-Node.js":90,"./PictView-Flow-PropertiesPanel.js":91,"./PictView-Flow-Toolbar.js":92,"pict-view":171}],94:[function(t,e,o){e.exports={name:"pict-section-form",version:"1.0.199",description:"Pict dynamic form sections",main:"source/Pict-Section-Form.js",directories:{test:"test"},repository:{type:"git",url:"git+https://github.com/stevenvelozo/pict-section-form.git"},bugs:{url:"https://github.com/stevenvelozo/pict-section-form/issues"},homepage:"https://github.com/stevenvelozo/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.1","pict-service-commandlineutility":"^1.0.19",quackage:"^1.2.4","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-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"]}}},{}],95:[function(t,e,o){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")}},{"./application/Pict-Application-Form.js":96,"./providers/Pict-Provider-DynamicLayout.js":100,"./providers/Pict-Provider-DynamicTemplates.js":104,"./providers/Pict-Provider-FormPersistence.js":105,"./providers/Pict-Provider-InputExtension.js":107,"./services/ManifestConversionToCSV.js":136,"./services/ManifestFactory.js":137,"./services/Pict-Service-DynamicFormDependencyManager.js":138,"./views/Pict-View-DynamicForm.js":153,"./views/Pict-View-Form-Metacontroller.js":154,"./views/support/Pict-View-PSF-DebugViewer.js":157,"./views/support/Pict-View-PSF-LifeCycle-Visualization.js":158,"./views/support/Pict-View-PSF-SupportBase.js":161}],96:[function(t,e,o){var n=t("pict-application"),r=t("../Pict-Section-Form.js"),i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,o,n])).pict,i.pict.addServiceType("PictSectionForm",r),i.pict.addView("PictFormMetacontroller",{},r.PictFormMetacontroller),i}return _inherits(e,t),_createClass2(e,[{key:"marshalDataFromDynamicViewsToAppData",value:function(){this.pict.views.PictFormMetacontroller.marshalFromView()}},{key:"marshalDataFromAppDataToDynamicViews",value:function(){this.pict.views.PictFormMetacontroller.marshalToView()}}])}(n);e.exports=i,e.exports.default_configuration={Name:"A Simple Pict Forms Application",Hash:"PictFormsApp",MainViewportViewIdentifier:"PictFormMetacontroller",AutoSolveAfterInitialize:!1,pict_configuration:{Product:"PictDefaultFormsApp"}}},{"../Pict-Section-Form.js":95,"pict-application":30}],97:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-SolverBehaviors",AutoInitialize:!1,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).options,i.pict,i.log,i.cssHideSectionClass="pict-section-form-hidden-section",i.cssHideGroupClass="pict-section-form-hidden-group",i.cssTabularRowHighlightClass="pict-tabular-row-highlight",i.cssTabularColumnHighlightClass="pict-tabular-column-highlight",i.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; }",i.solverOrdinalMap={},i.setCSSSnippets(),i}return _inherits(e,t),_createClass2(e,[{key:"setCSSSnippets",value:function(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()}},{key:"addSolverFunction",value:function(t,e,o,n,r){var i=(e||"").trim().toLowerCase();t.functionMap.hasOwnProperty(i)&&this.log.warn("PictDynamicFormsInformary: Function ".concat(i," already exists in the solver, overwriting with address [").concat(o,"]."));var a={Name:n||"Autogenerated function ".concat(i),Address:o};Array.isArray(r)&&r.length>0&&(a.AddressParameterIndices=r),t.functionMap[i]=a}},{key:"runSolvers",value:function(){this.pict.providers.DynamicSolver.solveViews(void 0,!0)}},{key:"injectBehaviors",value:function(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}},{key:"unionArrays",value:function(t,e){var o=new Set;if(Array.isArray(t))for(var n=0;n<t.length;n++)o.add(t[n]);if(Array.isArray(e))for(var r=0;r<e.length;r++)o.add(e[r]);return Array.from(o)}},{key:"differenceArrays",value:function(t,e){var o=new Set,n=new Set;if(Array.isArray(t))for(var r=0;r<t.length;r++)o.add(t[r]);if(Array.isArray(e))for(var i=0;i<e.length;i++)n.add(e[i]);var a=new Set;return o.forEach(function(t){n.has(t)||a.add(t)}),Array.from(a)}},{key:"uniqueArray",value:function(t){var e=new Set;if(Array.isArray(t))for(var o=0;o<t.length;o++)e.add(t[o]);return Array.from(e)}},{key:"sortArray",value:function(t){return Array.isArray(t)?t.sort():[]}},{key:"setSolverOrdinalEnabled",value:function(t,e){this.solverOrdinalMap["ORD-".concat(t)]=1==e||"1"==e}},{key:"enableSolverOrdinal",value:function(t){this.solverOrdinalMap["ORD-".concat(t)]=!0}},{key:"disableSolverOrdinal",value:function(t){this.solverOrdinalMap["ORD-".concat(t)]=!1}},{key:"checkSolverOrdinalEnabled",value:function(t){var e="ORD-".concat(t);return!(e in this.solverOrdinalMap)||!0===this.solverOrdinalMap[e]}},{key:"getSectionSelector",value:function(t){return"#SECTION-".concat(t)}},{key:"setSectionVisibility",value:function(t,e){return"0"!=e?this.showSection(t):this.hideSection(t)}},{key:"showSections",value:function(t){for(var e=Array.isArray(t)?t:[t],o=0;o<e.length;o++)this.showSection(e[o])}},{key:"hideSections",value:function(t){for(var e=Array.isArray(t)?t:[t],o=0;o<e.length;o++)this.hideSection(e[o])}},{key:"hideSection",value:function(t){var 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)}},{key:"showSection",value:function(t){var 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)}},{key:"getGroupSelector",value:function(t,e){return"#GROUP-".concat(t,"-").concat(e)}},{key:"setGroupVisibility",value:function(t,e,o){return"0"!=o?this.showGroup(t,e):this.hideGroup(t,e)}},{key:"hideGroup",value:function(t,e){var o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return o?(this.pict.ContentAssignment.hasClass(this.getGroupSelector(o.formID,e),this.cssHideGroupClass)||this.pict.ContentAssignment.addClass(this.getGroupSelector(o.formID,e),this.cssHideGroupClass),!0):(this.log.warn("PictDynamicFormsInformary: hideGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1)}},{key:"showGroup",value:function(t,e){var o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return o?!this.pict.ContentAssignment.hasClass(this.getGroupSelector(o.formID,e),this.cssHideGroupClass)||(this.pict.ContentAssignment.removeClass(this.getGroupSelector(o.formID,e),this.cssHideGroupClass),!0):(this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1)}},{key:"refreshTabularSection",value:function(t,e){var o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(o){var n=o.getGroupIndexFromHash(e);if(n<0)this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find group with section hash [".concat(t,"] group [").concat(e,"]."));else{var r=o.getGroup(n);if(r){for(var i=this.pict.views.PictFormMetacontroller.filterViews(function(t){if(!t.isPictSectionForm)return!1;for(var e=t.getGroups(),o=0;o<e.length;o++)if(e[o].RecordSetAddress==r.RecordSetAddress)return!0;return!1}),a=0;a<i.length;a++)i[a].render();this.pict.views.PictFormMetacontroller.marshalFormSections()}}}else this.log.warn("PictDynamicFormsInformary: showGroup could not find group with section hash [".concat(t,"] group [").concat(e,"]."))}},{key:"setTabularRowLength",value:function(t,e,o){var 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;var i=r.getGroupIndexFromHash(e);if(i<0)return this.log.warn("PictDynamicFormsInformary: setTabularRowLength could not find group with section hash [".concat(t,"] group [").concat(e,"].")),!1;var a=r.getTabularRecordSet(i);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;var s=parseInt(o.toString());if(isNaN(s)||s<0)return this.log.warn("PictDynamicFormsInformary: setTabularRowLength was given an invalid length [".concat(o,"] with section hash [").concat(t,"] group [").concat(e,"].")),!1;var l=a.length,c=1==n||"1"==n;if(s>l)for(var p=l;p<s;p++)r.createDynamicTableRow(i);else if(s<l&&c)for(var u=l-1;u>=s;u--)r.deleteDynamicTableRow(i,u)}},{key:"generateHTMLHexColor",value:function(t,e,o){var n=parseInt(t)||0,r=parseInt(e)||0,i=parseInt(o)||0;n<0&&(n=0),n>255&&(n=255),r<0&&(r=0),r>255&&(r=255),i<0&&(i=0),i>255&&(i=255);var a=n.toString(16).toUpperCase();a.length<2&&(a="0".concat(a));var s=r.toString(16).toUpperCase();s.length<2&&(s="0".concat(s));var l=i.toString(16).toUpperCase();return l.length<2&&(l="0".concat(l)),"#".concat(a).concat(s).concat(l)}},{key:"colorSectionBackground",value:function(t,e,o){if("0"==o)return!0;var n=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!n)return this.log.warn("PictDynamicFormsInformary: colorSection could not find section with hash [".concat(t,"].")),!1;var 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)}},{key:"colorGroupBackground",value:function(t,e,o,n){if("0"==n)return!0;var 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;var i=this.pict.ContentAssignment.getElement(this.getGroupSelector(r.formID,e));return i.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):(i[0].style.backgroundColor=o,!0)}},{key:"colorInputBackground",value:function(t,e,o,n,r){if("0"==n)return!0;var i=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!i)return this.log.warn("PictDynamicFormsInformary: colorInput could not find input with section hash [".concat(t,"] input [").concat(e,"].")),!1;var a=i.getInputFromHash(e);if(!a)return this.log.warn("PictDynamicFormsInformary: colorInput could not find input with section hash [".concat(t,"] input [").concat(e,"].")),!1;var 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,o,r)}},{key:"colorInputBackgroundTabular",value:function(t,e,o,n,r,i,a){var s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"TABULAR-DATA-";if("0"==i)return!0;var l=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(!l)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(o,"].")),!1;var c=l.getTabularRecordInputByHash(e,o);if(!c)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(o,"].")),!1;if(!c.Macro)return this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular input with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(o,"] is missing Macro data.")),!1;var p=c.Macro.HTMLSelectorControlTabular+'[data-i-index="'.concat(n,'"]'),u=this.pict.ContentAssignment.getElement(p);return u.length<1&&(u=this.pict.ContentAssignment.getElement("#".concat(s).concat(c.Macro.RawHTMLID,"-").concat(n))),u.length<1?(this.log.warn("PictDynamicFormsInformary: colorInputBackgroundTabular could not find input element with section hash [".concat(t,"] group hash [").concat(e,"] input hash [").concat(o,"] row index [").concat(n,"] selector [#").concat(c.Macro.RawHTMLID,"-").concat(n,"].")),!1):this.colorElementBackground(u,r,a)}},{key:"colorElementBackground",value:function(t,e,o){var n=t[0];if(o)for(var r=0;r<t.length;r++){var i=t[r].closest("".concat(o));if(i&&i instanceof HTMLElement){n=i;break}}return n.style.backgroundColor=e,!0}},{key:"isSolverFlagEnabled",value:function(t){return null!=t&&!1!==t&&0!==t&&"0"!==t&&""!==t&&"false"!==t}},{key:"getTabularGroupSelector",value:function(t,e){if(!this.pict.views.PictFormMetacontroller)return this.log.warn("PictDynamicFormsSolverBehaviors: getTabularGroupSelector has no PictFormMetacontroller."),null;var o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);return o?"#GROUP-".concat(o.formID,"-").concat(e):(this.log.warn("PictDynamicFormsSolverBehaviors: getTabularGroupSelector could not find section view with hash [".concat(t,"].")),null)}},{key:"highlightTabularRow",value:function(t,e,o,n,r){var i=this.getTabularGroupSelector(t,e);if(!i)return!1;var a="string"==typeof r&&r.length>0?r:this.cssTabularRowHighlightClass,s="".concat(i,' tr[data-tabular-row-index="').concat(o,'"]');return this.isSolverFlagEnabled(n)?this.pict.ContentAssignment.addClass(s,a):this.pict.ContentAssignment.removeClass(s,a),!0}},{key:"highlightTabularColumn",value:function(t,e,o,n,r){var i=this.getTabularGroupSelector(t,e);if(!i)return!1;var a="string"==typeof r&&r.length>0?r:this.cssTabularColumnHighlightClass,s="".concat(i,' [data-tabular-column-index="').concat(o,'"]');return this.isSolverFlagEnabled(n)?this.pict.ContentAssignment.addClass(s,a):this.pict.ContentAssignment.removeClass(s,a),!0}},{key:"colorTabularRow",value:function(t,e,o,n,r){var i=this.getTabularGroupSelector(t,e);if(!i)return!1;for(var a=this.isSolverFlagEnabled(r)&&"string"==typeof n&&n.length>0,s=this.pict.ContentAssignment.getElement("".concat(i,' tr[data-tabular-row-index="').concat(o,'"] td')),l=0;l<s.length;l++)a?s[l].style.setProperty("background-color",n,"important"):s[l].style.removeProperty("background-color");return!0}},{key:"colorTabularColumn",value:function(t,e,o,n,r){var i=this.getTabularGroupSelector(t,e);if(!i)return!1;for(var a=this.isSolverFlagEnabled(r)&&"string"==typeof n&&n.length>0,s=this.pict.ContentAssignment.getElement("".concat(i,' [data-tabular-column-index="').concat(o,'"]')),l=0;l<s.length;l++)a?s[l].style.setProperty("background-color",n,"important"):s[l].style.removeProperty("background-color");return!0}},{key:"getGlobalFormData",value:function(t){if(this.pict.views.PictFormMetacontroller){var e=this.pict.views.PictFormMetacontroller.viewMarshalDestination,o=this.pict.resolveStateFromAddress(e);return"object"===_typeof(o)&&null!==o||(o=this.pict.AppData),this.pict.manifest.getValueByHash(o,t)}this.log.warn("getGlobalFormData: No PictFormMetacontroller available.")}},{key:"resolveGlobalFormData",value:function(t){if(this.pict.views.PictFormMetacontroller){var e=this.pict.views.PictFormMetacontroller.viewMarshalDestination,o=this.pict.resolveStateFromAddress(e);return"object"===_typeof(o)&&null!==o||(o=this.pict.AppData),this.pict.manifest.getValueAtAddress(o,t)}this.log.warn("resolveGlobalFormData: No PictFormMetacontroller available.")}},{key:"getSectionFormData",value:function(t,e){if(this.pict.views.PictFormMetacontroller){var o=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(o)return o.getValueByHash(e);this.log.warn("getSectionFormData: Could not find section view with hash [".concat(t,"]."))}else this.log.warn("getSectionFormData: No PictFormMetacontroller available.")}},{key:"getSectionTabularFormData",value:function(t,e,o,n){if(this.pict.views.PictFormMetacontroller){var r=this.pict.views.PictFormMetacontroller.getSectionViewFromHash(t);if(r){var i=r.getGroupIndexFromHash(e);if(i<0)this.log.warn("getSectionTabularFormData: Could not find group with hash [".concat(e,"] in section [").concat(t,"]."));else{var a=r.getGroup(i);if(a){var s=r.getTabularRecordSet(i);if(s){var l=parseInt(o.toString());if(isNaN(l)||l<0)this.log.warn("getSectionTabularFormData: Invalid row index [".concat(o,"] for group [").concat(e,"] in section [").concat(t,"]."));else if(l>=s.length)this.log.warn("getSectionTabularFormData: Row index [".concat(l,"] out of bounds for group [").concat(e,"] in section [").concat(t,"] (length ").concat(s.length,")."));else{var c=s[l];if(c&&"object"===_typeof(c))return a.supportingManifest?a.supportingManifest.getValueByHash(c,n):n in c?c[n]:void 0;this.log.warn("getSectionTabularFormData: No valid record at row index [".concat(l,"] for group [").concat(e,"] in section [").concat(t,"]."))}}else this.log.warn("getSectionTabularFormData: Could not find tabular record set for group [".concat(e,"] in section [").concat(t,"]."))}else this.log.warn("getSectionTabularFormData: Could not get group at index ".concat(i," in section [").concat(t,"]."))}}else this.log.warn("getSectionTabularFormData: Could not find section view with hash [".concat(t,"]."))}else this.log.warn("getSectionTabularFormData: No PictFormMetacontroller available.")}},{key:"logValues",value:function(){for(var t=null,e="Solver logvalues call: ",o=0;o<arguments.length;o++)t=arguments[o],e+=" [".concat(o,"]=[").concat(t,"]");return this.log.info(e),t}},{key:"resolveComprehensionDestination",value:function(){var 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);var 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))}},{key:"addComprehensionEntity",value:function(t,e,o,n,r){if(null!=t&&null!=e&&null!=o&&null!=n){var i=String(t),a=String(e),s=String(o),l=String(n);if(i.length<1||a.length<1||s.length<1||l.length<1)this.log.warn("addComprehensionEntity: ignoring call with empty parts (Context=[".concat(i,"], Entity=[").concat(a,"], GUID=[").concat(s,"], Property=[").concat(l,"])."));else{var c=this.resolveComprehensionDestination();if(c){for(var p=i.split("."),u=c,d=0;d<p.length;d++){var h=p[d];h.length<1||(u[h]&&"object"===_typeof(u[h])||(u[h]={}),u=u[h])}u[a]&&"object"===_typeof(u[a])||(u[a]={});var f=u[a];return f[s]&&"object"===_typeof(f[s])||(f[s]={}),f[s][l]=r,r}}}else this.log.warn("addComprehensionEntity: ignoring call with null/undefined parts (Context=[".concat(t,"], Entity=[").concat(e,"], GUID=[").concat(o,"], Property=[").concat(n,"])."))}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],98:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Input",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).templateProviderMap={},i.ignoredEventHashes={},i}return _inherits(e,t),_createClass2(e,[{key:"registerIgnoredEventHash",value:function(t){this.ignoredEventHashes[t]=!0}},{key:"getInputTemplateHash",value:function(t,e){if(e.IsTabular){var o="-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),i="-TabularTemplate-End-Input-DataType-".concat(e.DataType);if(t.checkViewSpecificTemplate(o)&&t.checkViewSpecificTemplate(n))return t.getViewSpecificTemplateHash(o);if(t.checkThemeSpecificTemplate(o)&&t.checkThemeSpecificTemplate(n))return t.getThemeSpecificTemplateHash(o);if(t.checkViewSpecificTemplate(r)&&t.checkViewSpecificTemplate(i))return t.getViewSpecificTemplateHash(r);if(t.checkThemeSpecificTemplate(r)&&t.checkThemeSpecificTemplate(i))return t.getThemeSpecificTemplateHash(r)}else{var a="-Template-Input-InputType-".concat(e.PictForm.InputType),s="-Template-Input-DataType-".concat(e.DataType);if(t.checkViewSpecificTemplate(a))return t.getViewSpecificTemplateHash(a);if(t.checkThemeSpecificTemplate(a))return t.getThemeSpecificTemplateHash(a);if(t.checkViewSpecificTemplate(s))return t.getViewSpecificTemplateHash(s);if(t.checkThemeSpecificTemplate(s))return t.getThemeSpecificTemplateHash(s)}return!1}},{key:"addDefaultInputProvider",value:function(t,e){t in this.templateProviderMap||(this.templateProviderMap[t]=[]),this.templateProviderMap[t].indexOf(e)<0&&this.templateProviderMap[t].push(e)}},{key:"getDefaultInputProviders",value:function(t,e){var o=this.getInputTemplateHash(t,e);return o&&this.templateProviderMap[o]?this.templateProviderMap[o]:[]}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],99:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-InputEvents",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])}return _inherits(e,t),_createClass2(e,[{key:"inputDataRequest",value:function(t,e,o){if(e){var n,r=t.getInputFromHash(e);if(o)if(n="string"==typeof o?o:o.namespace?"".concat(o.type,".").concat(o.namespace):o.type,this.pict.providers.DynamicInput.ignoredEventHashes[n])return;var i=t.sectionManifest.resolveHashAddress(e);try{for(var a=t.getMarshalDestinationObject(),s=t.sectionManifest.getValueByHash(a,i),l=t.getInputProviderList(r),c=0;c<l.length;c++)t.pict.providers[l[c]]?t.pict.providers[l[c]].onDataRequest(t,r,s,r.Macro.HTMLSelector):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] inputDataRequest cannot find embedded provider [").concat(l[c],"] for input [").concat(r.Hash,"]."))}catch(o){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(o))}}else t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find input hash [").concat(e,"] for inputDataRequest event."))}},{key:"inputEvent",value:function(t,e,o,n){var r=n&&"string"==typeof n?n:this.pict.getUUID(),i=t.getInputFromHash(e);if(e){var a=t.sectionManifest.resolveHashAddress(e);try{for(var s=t.getMarshalDestinationObject(),l=t.sectionManifest.getValueByHash(s,a),c=t.getInputProviderList(i),p=function(e){t.pict.providers[c[e]]?i.Macro&&(t.pict.providers[c[e]].onEvent(t,i,l,i.Macro.HTMLSelector,o,r),t.registerOnTransactionCompleteCallback(r,function(){t.pict.providers[c[e]].onAfterEventCompletion(t,i,l,i.Macro.HTMLSelector,o,r)})):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] inputEvent ").concat(o," cannot find embedded provider [").concat(c[e],"] for input [").concat(i.Hash,"]."))},u=0;u<c.length;u++)p(u);n!==r&&t.finalizeTransaction(r)}catch(n){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error running inputEvent ").concat(o," 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(o," event."))}},{key:"inputDataRequestTabular",value:function(t,e,o,n,r){var i=t.getTabularRecordInput(e,o);if(e&&o&&n&&i){var a;if(r)if(a="string"==typeof r?r:r.namespace?"".concat(r.type,".").concat(r.namespace):r.type,this.pict.providers.DynamicInput.ignoredEventHashes[a])return;try{for(var s=t.getMarshalDestinationObject(),l=t.pict.providers.Informary.getComposedContainerAddress(i.PictForm.InformaryContainerAddress,n,i.PictForm.InformaryDataAddress),c=t.sectionManifest.getValueByHash(s,l),p=i.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(n,'"]'),u=t.getInputProviderList(i),d=0;d<u.length;d++)t.pict.providers[u[d]]?t.pict.providers[u[d]].onDataRequestTabular(t,i,c,p,n):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find embedded provider [").concat(u[d],"] for input [").concat(i.Hash,"] row ").concat(n,"."))}catch(r){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error marshaling specific (").concat(e," | ").concat(o," | ").concat(n,") tabular data for group ").concat(e," row ").concat(n," from view in dataChanged event: ").concat(r))}}else t.marshalFromView()}},{key:"inputEventTabular",value:function(t,e,o,n,r,i){var a=i&&"string"==typeof i?i:this.pict.getUUID(),s=t.getTabularRecordInput(e,o);if(null!=e&&null!=o&&null!=n&&s)try{for(var l=t.getMarshalDestinationObject(),c=t.pict.providers.Informary.getComposedContainerAddress(s.PictForm.InformaryContainerAddress,n,s.PictForm.InformaryDataAddress),p=t.sectionManifest.getValueByHash(l,c),u=s.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(n,'"]'),d=t.getInputProviderList(s),h=function(e){t.pict.providers[d[e]]?(t.pict.providers[d[e]].onEventTabular(t,s,p,u,n,r,a),t.registerOnTransactionCompleteCallback(a,function(){t.pict.providers[d[e]].onAfterEventTabularCompletion(t,s,p,u,n,r,a)})):t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] cannot find embedded provider [").concat(d[e],"] for input [").concat(s.Hash,"] row ").concat(n," calling inputEvent ").concat(r,"."))},f=0;f<d.length;f++)h(f);i!==a&&t.finalizeTransaction(a)}catch(i){t.log.error("Dynamic form [".concat(t.Hash,"]::[").concat(t.UUID,"] gross error marshaling specific (").concat(e," | ").concat(o," | ").concat(n,") tabular data for group ").concat(e," row ").concat(n," from view in calling inputEvent ").concat(r,": ").concat(i))}}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],100:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Layout",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])}return _inherits(e,t),_createClass2(e,[{key:"generateGroupLayoutTemplate",value:function(t,e){return""}},{key:"onGroupLayoutInitialize",value:function(t,e){return!0}},{key:"onDataMarshalToForm",value:function(t,e){return!0}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],101:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-RecordSet",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).recordProviders={},i}return _inherits(e,t),_createClass2(e,[{key:"count",value:function(t,e){return e()}},{key:"readRecordList",value:function(t,e){return e()}},{key:"readRecord",value:function(t,e){return e()}},{key:"writeRecord",value:function(t,e){return e()}},{key:"deleteRecord",value:function(t,e){return e()}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],102:[function(t,e,o){var n=t("pict-provider"),r=t("./Pict-Provider-DynamicFormSolverBehaviors.js"),i=t("./Pict-Provider-ListDistilling.js"),a=t("./Pict-Provider-MetaLists.js"),s=t("./inputs/Pict-Provider-Input-Select.js"),l=t("./inputs/Pict-Provider-Input-DateTime.js"),c=t("./inputs/Pict-Provider-Input-TabGroupSelector.js"),p=t("./inputs/Pict-Provider-Input-TabSectionSelector.js"),u=t("./inputs/Pict-Provider-Input-EntityBundleRequest.js"),d=t("./inputs/Pict-Provider-Input-AutofillTriggerGroup.js"),h=t("./inputs/Pict-Provider-Input-Markdown.js"),f=t("./inputs/Pict-Provider-Input-HTML.js"),m=t("./inputs/Pict-Provider-Input-Templated.js"),v=t("./inputs/Pict-Provider-Input-PreciseNumber.js"),g=t("./inputs/Pict-Provider-Input-Link.js"),w=t("./inputs/Pict-Provider-Input-TemplatedEntityLookup.js"),y=t("./inputs/Pict-Provider-Input-Chart.js"),b=t("./inputs/Pict-Provider-Input-TabularTriggerGroup.js"),D={ProviderIdentifier:"Pict-DynamicForms-Solver",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},P=function(t){function e(t,o,n){var P;return _classCallCheck(this,e),(P=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(D)),o),n])).pict,P.fable,P.log,P.UUID,P.Hash,P._RunSolversRegex=/\brunsolvers\b/gi,P.fable.instantiateServiceProviderIfNotExists("ExpressionParser"),P.pict.addProviderSingleton("DynamicFormSolverBehaviors",r.default_configuration,r),P.pict.providers.DynamicFormSolverBehaviors.injectBehaviors(P.fable.ExpressionParser),P.pict.addProviderSingleton("DynamicMetaLists",a.default_configuration,a),P.pict.addProviderSingleton("ListDistilling",i.default_configuration,i),P.pict.addProviderSingleton("Pict-Input-Select",s.default_configuration,s),P.pict.addProviderSingleton("Pict-Input-DateTime",l.default_configuration,l),P.pict.addProviderSingleton("Pict-Input-TabGroupSelector",c.default_configuration,c),P.pict.addProviderSingleton("Pict-Input-TabSectionSelector",p.default_configuration,p),P.pict.addProviderSingleton("Pict-Input-EntityBundleRequest",u.default_configuration,u),P.pict.addProviderSingleton("Pict-Input-AutofillTriggerGroup",d.default_configuration,d),P.pict.addProviderSingleton("Pict-Input-Markdown",h.default_configuration,h),P.pict.addProviderSingleton("Pict-Input-HTML",f.default_configuration,f),P.pict.addProviderSingleton("Pict-Input-Templated",m.default_configuration,m),P.pict.addProviderSingleton("Pict-Input-PreciseNumber",v.default_configuration,v),P.pict.addProviderSingleton("Pict-Input-TemplatedEntityLookup",w.default_configuration,w),P.pict.addProviderSingleton("Pict-Input-Link",g.default_configuration,g),P.pict.addProviderSingleton("Pict-Input-Chart",y.default_configuration,y),P.pict.addProviderSingleton("Pict-Input-TabularTriggerGroup",b.default_configuration,b),P}return _inherits(e,t),_createClass2(e,[{key:"logSolveOutcome",value:function(t){var e=t;if("object"===_typeof(e)&&null!==e||(e=this.lastSolveOutcome),"object"===_typeof(e)&&null!==e){var o=e.SolverResultsMap.ExecutedSolvers.length;this.log.info("DynamicSolver completed solving ".concat(o," solvers in ").concat(e.EndTimeStamp-e.StartTimeStamp," ms."));for(var n=0;n<e.SolverResultsMap.ExecutedSolvers.length;n++){var r,i=e.SolverResultsMap.ExecutedSolvers[n];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===(r=i.ResultsObject)||void 0===r?void 0:r.PostfixedAssignmentAddress,"] expression [").concat(i.Expression,"]"))}}else this.log.error("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] No solve outcome available to log."))}},{key:"prepareSolverResultsMap",value:function(t){var e=t;return"object"===_typeof(e)&&null!==e||(e={}),"ExecutedSolvers"in e||(e.ExecutedSolvers=[]),"SolverResolutionMap"in e||(e.SolverResolutionMap={}),e}},{key:"backfillSolverDependencies",value:function(t){var e=t;if("object"===_typeof(e)&&null!==e||(e=this.lastSolveOutcome),"object"===_typeof(e)&&null!==e){for(var o=0;o<e.SolverResultsMap.ExecutedSolvers.length;o++){var n=e.SolverResultsMap.ExecutedSolvers[o];if("ResultsObject"in n&&"object"===_typeof(n.ResultsObject)&&null!==n.ResultsObject&&n.ResultsObject.PostfixedAssignmentAddress&&"Result"!=n.ResultsObject.PostfixedAssignmentAddress){"object"!==_typeof(e.SolverResultsMap.SolverResolutionMap[n.ResultsObject.PostfixedAssignmentAddress])&&(e.SolverResultsMap.SolverResolutionMap[n.ResultsObject.PostfixedAssignmentAddress]={});for(var r=0;r<n.ResultsObject.PostfixTokenObjects.length;r++){var i=n.ResultsObject.PostfixTokenObjects[r];"Token.Symbol"==i.Type&&(i.Token in e.SolverResultsMap.SolverResolutionMap[n.ResultsObject.PostfixedAssignmentAddress]||(e.SolverResultsMap.SolverResolutionMap[n.ResultsObject.PostfixedAssignmentAddress][i.Token]=0),e.SolverResultsMap.SolverResolutionMap[n.ResultsObject.PostfixedAssignmentAddress][i.Token]=e.SolverResultsMap.SolverResolutionMap[n.ResultsObject.PostfixedAssignmentAddress][i.Token]+1)}}}return e}this.log.error("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] No solve outcome available to backfill solver dependencies."))}},{key:"runSolver",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.pict.resolveStateFromAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination);"object"===_typeof(o)&&null!==o||(o=this.pict.AppData);var n={},r=this.fable.ExpressionParser.solve(t,o,n,this.pict.manifest);return n.fable&&delete n.fable,e||this.pict.log.trace("Manual solve executed for expression: ".concat(t),n),r}},{key:"checkSolver",value:function(t,e,o){var 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==o)return n}else this.log.error("Dynamic View solver ".concat(o," is missing the Expression property."),{Solver:t})}},{key:"executeSolvers",value:function(t,e,o){var n=Array.isArray(e)?e:[],r={SolverResultsMap:{}};r.StartTimeStamp=+new Date;var i={};r.SolveOrdinals=i;for(var a=0;a<n.length;a++){var s=this.checkSolver(n[a]);if(s)this.checkAutoSolveOrdinal(s.Ordinal,i).AdhocSolvers.push(s)}var l=Object.keys(i);l.sort(function(t,e){return isNaN(Number(t))||isNaN(Number(e))?t.localeCompare(e):Number(t)-Number(e)});for(var c=0;c<l.length;c++){this.pict.LogNoisiness>1&&this.log.trace("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] [").concat(o,"] Solving ordinal ").concat(l[c]));var p=i[l[c]];this.pict.providers.DynamicFormSolverBehaviors.checkSolverOrdinalEnabled(l[c])&&this.executeAdhocSolvers(t,p.AdhocSolvers,o,Number(l[c]),r.SolverResultsMap)}r.EndTimeStamp=+new Date,this.lastAdhocSolveOutcome=r}},{key:"executeAdhocSolvers",value:function(t,e,o,n,r){for(var i=arguments.length>5&&void 0!==arguments[5]&&arguments[5],a=void 0!==n,s=this.prepareSolverResultsMap(r),l=0;l<e.length;l++){var c=this.checkSolver(e[l],a,n);if(void 0!==c)if(i&&c.Expression.match(this._RunSolversRegex))this.pict.LogNoisiness>0&&t.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] [").concat(o,"] skipping RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"] due to solver cycle prevention."));else{c.StartTimeStamp=+new Date,c.Hash="AdhocSolver-".concat(l),this.pict.LogNoisiness>1&&this.pict.log.trace("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] [").concat(o,"] solving equation ").concat(l," ordinal ").concat(c.Ordinal," [").concat(t.options.Solvers[l],"]")),c.ResultsObject={};var p=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(o,"] result was ").concat(p)),s.ExecutedSolvers.push(c),c.EndTimeStamp=+new Date}}}},{key:"executeGroupSolvers",value:function(t,e,o){for(var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=void 0!==e,i=this.prepareSolverResultsMap(o),a=0;a<t.length;a++){var s=this.pict.views[t[a].ViewHash],l=s.getGroup(t[a].GroupIndex),c=this.checkSolver(t[a].Solver,r,e);if(void 0!==c)if(n&&c.Expression.match(this._RunSolversRegex))this.pict.LogNoisiness>0&&s.log.warn("Dynamic View [".concat(s.UUID,"]::[").concat(s.Hash,"] skipping RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"] due to solver cycle prevention."));else{c.StartTimeStamp=Date.now(),c.Hash="".concat(t[a].ViewHash,"-GroupSolver-").concat(a),this.pict.LogNoisiness>1&&s.log.trace("Dynamic View [".concat(s.UUID,"]::[").concat(s.Hash,"] solving RecordSet ordinal ").concat(c.Ordinal," [").concat(c.Expression,"]"));var p=s.getTabularRecordSet(l.GroupIndex);if(Array.isArray(p))for(var u=0;u<p.length;u++){var d=p[u];c.ResultsObject={};var h=s.fable.ExpressionParser.solve(c.Expression,d,c.ResultsObject,l.supportingManifest,d);this.pict.LogNoisiness>1&&s.log.trace("Group ".concat(l.Hash," [").concat(c.Expression,"] record ").concat(u," result was ").concat(h))}else if("object"==_typeof(p))for(var f=Object.keys(p),m=0;m<f.length;m++){var v=p[f[m]];c.ResultsObject={};var g=s.fable.ExpressionParser.solve(c.Expression,v,c.ResultsObject,l.supportingManifest,v);this.pict.LogNoisiness>1&&s.log.trace("Group ".concat(l.Hash," [").concat(c.Expression,"] record ").concat(m," result was ").concat(g))}i.ExecutedSolvers.push(c),c.EndTimeStamp=Date.now()}}}},{key:"executeSectionSolvers",value:function(t,e,o){for(var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=void 0!==e,i=this.prepareSolverResultsMap(o),a=0;a<t.length;a++){var s=this.pict.views[t[a].ViewHash],l=this.checkSolver(t[a].Solver,r,e);if(void 0!==l)if(n&&l.Expression.match(this._RunSolversRegex))this.pict.LogNoisiness>0&&s.log.warn("Dynamic View [".concat(s.UUID,"]::[").concat(s.Hash,"] skipping RecordSet ordinal ").concat(l.Ordinal," [").concat(l.Expression,"] due to solver cycle prevention."));else{l.StartTimeStamp=+new Date,l.Hash="".concat(t[a].ViewHash,"-SectionSolver-").concat(a),this.pict.LogNoisiness>1&&s.log.trace("Dynamic View [".concat(s.UUID,"]::[").concat(s.Hash,"] solving equation ").concat(a," ordinal ").concat(l.Ordinal," [").concat(s.options.Solvers[a],"]")),l.ResultsObject={};var c=s.fable.ExpressionParser.solve(l.Expression,s.getMarshalDestinationObject(),l.ResultsObject,this.pict.manifest,s.getMarshalDestinationObject());this.pict.LogNoisiness>1&&s.log.trace("[".concat(l.Expression,"] result was ").concat(c)),i.ExecutedSolvers.push(l),l.EndTimeStamp=+new Date}}}},{key:"executeViewSolvers",value:function(t,e,o){for(var n=void 0!==e,r=this.prepareSolverResultsMap(o),i=0;i<t.length;i++){var a=this.checkSolver(t[i].Solver,n,e);if(void 0!==a){a.Hash="".concat(t[i].ViewHash,"-ViewSolve-").concat(i),a.StartTimeStamp=+new Date;var s=this.pict.views[t[i].ViewHash];this.pict.LogNoisiness>1&&s.log.trace("Dynamic View [".concat(s.UUID,"]::[").concat(s.Hash,"] running solve() on view [").concat(t[i].ViewHash)),s.solve(),r.ExecutedSolvers.push(a),a.EndTimeStamp=+new Date}}}},{key:"executeValidationSolvers",value:function(t){var e,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],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))for(var r=this.pict.views.PictFormMetacontroller&&this.pict.resolveStateFromAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination)||this.pict.AppData,i=0;i<n.length;i++){var a=this.checkSolver(n[i]);void 0!==a&&(o&&a.Expression.match(this._RunSolversRegex)?this.pict.LogNoisiness>0&&this.pict.log.warn("Skipping Validation Solver ordinal ".concat(a.Ordinal," [").concat(a.Expression,"] due to solver cycle prevention.")):(this.pict.LogNoisiness>1&&this.pict.log.trace("Running validation solver ordinal ".concat(a.Ordinal," [").concat(a.Expression,"]")),this.pict.ExpressionParser.solve(a.Expression,r,t,this.pict.manifest,this.pict.AppData)))}}},{key:"checkAutoSolveOrdinal",value:function(t,e){return t.toString()in e||(e[t.toString()]={ViewSolvers:[],SectionSolvers:[],GroupSolvers:[],AdhocSolvers:[]}),e[t]}},{key:"solveViews",value:function(t,e){var o=Array.isArray(t)?t:Object.keys(this.fable.views),n=!0===e,r={SolverResultsMap:{}};r.StartTimeStamp=+new Date,r.ViewHashes=o;var i={};r.SolveOrdinals=i;for(var a=0;a<o.length;a++){var s=this.fable.views[o[a]];if(!s.isPictView||s.isPictSectionForm||s.isPictMetacontroller){if(s.isPictSectionForm){for(var l=0;l<s.sectionDefinition.Groups.length;l++){var c=s.getGroup(l);if("RecordSetSolvers"in c)for(var p=0;p<c.RecordSetSolvers.length;p++){var u=this.checkSolver(c.RecordSetSolvers[p]);if(u)this.checkAutoSolveOrdinal(u.Ordinal,i).GroupSolvers.push({ViewHash:o[a],GroupIndex:l,Solver:u})}}if(Array.isArray(s.options.Solvers))for(var d=0;d<s.options.Solvers.length;d++){var h=this.checkSolver(s.options.Solvers[d]);if(h)this.checkAutoSolveOrdinal(h.Ordinal,i).SectionSolvers.push({ViewHash:o[a],Solver:h})}}}else this.checkAutoSolveOrdinal(s.options.AutoSolveOrdinal,i).ViewSolvers.push({ViewHash:o[a]})}var f=Object.keys(i);f.sort(function(t,e){return isNaN(Number(t))||isNaN(Number(e))?t.localeCompare(e):Number(t)-Number(e)});for(var m=0;m<f.length;m++){this.pict.LogNoisiness>1&&this.log.trace("DynamicSolver [".concat(this.UUID,"]::[").concat(this.Hash,"] Solving ordinal ").concat(f[m]));var v=i[f[m]];this.pict.providers.DynamicFormSolverBehaviors.checkSolverOrdinalEnabled(f[m])&&(this.executeGroupSolvers(v.GroupSolvers,Number(f[m]),r.SolverResultsMap,n),this.executeSectionSolvers(v.SectionSolvers,Number(f[m]),r.SolverResultsMap,n),this.executeViewSolvers(v.ViewSolvers,Number(f[m]),r.SolverResultsMap))}return this.executeValidationSolvers(r.SolverResultsMap,n),this.pict.providers.DynamicMetaLists.buildViewSpecificLists(o),r.EndTimeStamp=+new Date,this.lastSolveOutcome=r,o}}])}(n);e.exports=P,e.exports.default_configuration=D},{"./Pict-Provider-DynamicFormSolverBehaviors.js":97,"./Pict-Provider-ListDistilling.js":108,"./Pict-Provider-MetaLists.js":109,"./inputs/Pict-Provider-Input-AutofillTriggerGroup.js":114,"./inputs/Pict-Provider-Input-Chart.js":115,"./inputs/Pict-Provider-Input-DateTime.js":116,"./inputs/Pict-Provider-Input-EntityBundleRequest.js":117,"./inputs/Pict-Provider-Input-HTML.js":118,"./inputs/Pict-Provider-Input-Link.js":119,"./inputs/Pict-Provider-Input-Markdown.js":120,"./inputs/Pict-Provider-Input-PreciseNumber.js":121,"./inputs/Pict-Provider-Input-Select.js":122,"./inputs/Pict-Provider-Input-TabGroupSelector.js":123,"./inputs/Pict-Provider-Input-TabSectionSelector.js":124,"./inputs/Pict-Provider-Input-TabularTriggerGroup.js":125,"./inputs/Pict-Provider-Input-Templated.js":126,"./inputs/Pict-Provider-Input-TemplatedEntityLookup.js":127,"pict-provider":32}],103:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-DynamicTabularData",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).options,i.pict,i.log,i}return _inherits(e,t),_createClass2(e,[{key:"getTabularRecordSet",value:function(t,e){var o=t.getGroup(e);return o&&null!=o&&o.RecordSetAddress?t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),o.RecordSetAddress):(this.log.warn("PICT View Metatemplate Helper getTabularRecordSet ".concat(e," was not a valid group or did not have a valid RecordSetAddress.")),!1)}},{key:"getTabularRecordInput",value:function(t,e,o){var n=t.getGroup(e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordInput ".concat(e," was not a valid group.")),!1;var r=n.supportingManifest.elementAddresses[o];return n.supportingManifest.elementDescriptors[r]}},{key:"getTabularRecordInputByHash",value:function(t,e,o){var n=t.getGroups().find(function(t){return 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(var r=0,i=Object.values(n.supportingManifest.elementDescriptors);r<i.length;r++){var a=i[r];if(a.Hash===o)return a}return this.log.warn("PICT View Metatemplate Helper getTabularRecordInputByHash ".concat(e," could not find input ").concat(o,".")),!1}},{key:"getTabularRecordData",value:function(t,e,o){var n=t.getGroup(e);if(!n)return this.log.warn("PICT View Metatemplate Helper getTabularRecordData ".concat(e," was not a valid group.")),!1;var 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[o]:(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}}},{key:"createDynamicTableRow",value:function(t,e){var o=t.getGroup(e);if(o){var n=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),o.RecordSetAddress);if(Array.isArray(n)){if(o.MaximumRowCount&&n.length>=o.MaximumRowCount)return void this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(o.Hash," attempting to add a row but the maximum rows ").concat(o.MaximumRowCount," has been reached."));var r={};o.DefaultRows&&n.length<o.DefaultRows.length&&(r=JSON.parse(JSON.stringify(o.DefaultRows[n.length]))),n.push(o.supportingManifest.populateDefaults(r));for(var i=this.pict.views.PictFormMetacontroller.filterViews(function(t){if(!t.isPictSectionForm)return!1;for(var e=t.getGroups(),n=0;n<e.length;n++)if(e[n].RecordSetAddress==o.RecordSetAddress)return!0;return!1}),a=0;a<i.length;a++)i[a].render();this.pict.providers.DynamicSolver.solveViews(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}},{key:"createDynamicTableRowWithoutEvents",value:function(t,e){var o=t.getGroup(e);if(o){var n=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),o.RecordSetAddress);if(Array.isArray(n)){if(o.MaximumRowCount&&n.length>=o.MaximumRowCount)return void this.log.warn("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(o.Hash," attempting to add a row but the maximum rows ").concat(o.MaximumRowCount," has been reached."));var r={};o.DefaultRows&&n.length<o.DefaultRows.length&&(r=JSON.parse(JSON.stringify(o.DefaultRows[n.length]))),n.push(o.supportingManifest.populateDefaults(r))}}}},{key:"setDynamicTableRowIndex",value:function(t,e,o,n){var r=t.getGroup(e);if(r){var i=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),r.RecordSetAddress);if(Array.isArray(i)){var a=parseInt(String(o),10),s=parseInt(String(n),10);if(i.length<=a||a<0)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(r.Hash," attempting to move row [").concat(o,"] to [").concat(n,"] but the index is out of bounds.")),!1;var l=i.splice(a,1);i.splice(s,0,l[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}},{key:"moveDynamicTableRowDown",value:function(t,e,o){var n=t.getGroup(e);if(n){var r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(r)){var i=parseInt(String(o),10);if(r.length<=i)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(o,"] down but it's already at the bottom.")),!1;var a=r.splice(i,1);r.splice(i+1,0,a[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}},{key:"moveDynamicTableRowUp",value:function(t,e,o){var n=t.getGroup(e);if(n){var r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(r)){var i=parseInt(String(o),10);if(0==i)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(o,"] up but it's already at the top.")),!1;if(r.length<=i)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to move row [").concat(o,"] but the index is out of bounds.")),!1;var a=r.splice(i,1);r.splice(i-1,0,a[0]),this.pict.providers.DynamicSolver.solveViews(),t.render(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}},{key:"deleteDynamicTableRow",value:function(t,e,o){var n=t.getGroup(e);if(n){var r=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),n.RecordSetAddress);if(Array.isArray(r)){if(n.MinimumRowCount&&r.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;var i=parseInt(String(o),10);if(r.length<=i)return this.log.error("Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] Group ").concat(n.Hash," attempting to delete row [").concat(o,"] but the index is out of bounds.")),!1;r.splice(i,1);for(var a=this.pict.views.PictFormMetacontroller.filterViews(function(t){if(!t.isPictSectionForm)return!1;for(var e=t.getGroups(),o=0;o<e.length;o++)if(e[o].RecordSetAddress==n.RecordSetAddress)return!0;return!1}),s=0;s<a.length;s++)a[s].render();this.pict.providers.DynamicSolver.solveViews(),this.pict.views.PictFormMetacontroller.marshalFormSections()}}}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],104:[function(t,e,o){var n=t("pict-provider"),r=t("../providers/Pict-Provider-DynamicInput.js"),i=t("./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates.js"),a=t("./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates-ReadOnly.js"),s=t("../templates/Pict-Template-Metacontroller-ValueSetWithGroup.js"),l=t("../templates/Pict-Template-Metatemplate-Input.js"),c=t("../templates/Pict-Template-Metatemplate-InputWithHashAddress.js"),p=t("../templates/Pict-Template-Metatemplate-InputWithView.js"),u=t("../templates/Pict-Template-Metatemplate-InputWithViewAndHashAddress.js"),d=t("../templates/Pict-Template-Metatemplate-InputWithViewAndDescriptorAddress.js"),h=t("../templates/Pict-Template-ControlFromDynamicManifest.js"),f=t("../templates/Pict-Template-ControlFromDynamicManifestForHash.js"),m=t("../templates/Pict-Template-DyanmicView-Value.js"),v=t("../templates/Pict-Template-DyanmicView-ValueByHash.js"),g=t("../templates/Pict-Template-TabularRowLabels.js"),w=t("../templates/Pict-Template-TabularEditingControls.js"),y=t("../templates/Pict-Template-Proxy-PluckJoinUnique.js"),b={ProviderIdentifier:"Pict-DynamicForms-MetaTemplates-Basic",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},D=function(t){function e(t,o,n){var D,P;return _classCallCheck(this,e),(P=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(b)),o),n])).options,P.pict,P.log,P.pict.addProviderSingleton("DynamicInput",r.default_configuration,r),P.pict.addTemplate(s),P.pict.addTemplate(l),P.pict.addTemplate(c),P.pict.addTemplate(p),P.pict.addTemplate(u),P.pict.addTemplate(d),P.pict.addTemplate(y),P.pict.addTemplate(h),P.pict.addTemplate(f),P.pict.addTemplate(m),P.pict.addTemplate(v),P.pict.addTemplate(g),P.pict.addTemplate(w),null!==(D=P.options)&&void 0!==D&&D.MetaTemplateSet&&"object"===_typeof(P.options.MetaTemplateSet)?P.injectTemplateSet(P.options.MetaTemplateSet):P.injectTemplateSet(i),P.injectTemplateSet(a),P}return _inherits(e,t),_createClass2(e,[{key:"injectTemplateSet",value:function(t){var e,o,n,r,a,s,l="PictFormsUnknown",c=[],p={};l=null!==(e=null===(o=this.options)||void 0===o?void 0:o.MetaTemplateSet)&&void 0!==e?e:l,c=null!==(n=null===(r=this.options)||void 0===r||null===(r=r.MetaTemplateSet)||void 0===r?void 0:r.Templates)&&void 0!==n?n:c,l=null!==(a=null==t?void 0:t.TemplatePrefix)&&void 0!==a?a:l,c=null!==(s=null==t?void 0:t.Templates)&&void 0!==s?s:c;for(var u=0;u<c.length;u++){var d=c[u],h="".concat(l).concat(d.HashPostfix);p[h]={Hash:h,Template:d.Template},d.hasOwnProperty("DefaultInputExtensions")&&(p[h].DefaultInputExtensions=JSON.parse(JSON.stringify(d.DefaultInputExtensions)))}for(var f=0;f<i.Templates.length;f++){var m=i.Templates[f],v="".concat(l).concat(m.HashPostfix);v in p||(p[v]={Hash:v,Template:m.Template},m.hasOwnProperty("DefaultInputExtensions")&&(p[v].DefaultInputExtensions=JSON.parse(JSON.stringify(m.DefaultInputExtensions))))}var g=Object.keys(p);this.log.info("Pict Form Section Provider for [".concat(l,"] Loaded ").concat(g.length," templates."));for(var w=0;w<g.length;w++){var y=p[g[w]];if(this.pict.TemplateProvider.addTemplate(y.Hash,y.Template),y.hasOwnProperty("DefaultInputExtensions"))for(var b=0;b<y.DefaultInputExtensions.length;b++)this.pict.providers.DynamicInput.addDefaultInputProvider(y.Hash,y.DefaultInputExtensions[b])}}}])}(n);e.exports=D,e.exports.default_configuration=b},{"../providers/Pict-Provider-DynamicInput.js":98,"../templates/Pict-Template-ControlFromDynamicManifest.js":139,"../templates/Pict-Template-ControlFromDynamicManifestForHash.js":140,"../templates/Pict-Template-DyanmicView-Value.js":141,"../templates/Pict-Template-DyanmicView-ValueByHash.js":142,"../templates/Pict-Template-Metacontroller-ValueSetWithGroup.js":143,"../templates/Pict-Template-Metatemplate-Input.js":144,"../templates/Pict-Template-Metatemplate-InputWithHashAddress.js":145,"../templates/Pict-Template-Metatemplate-InputWithView.js":146,"../templates/Pict-Template-Metatemplate-InputWithViewAndDescriptorAddress.js":147,"../templates/Pict-Template-Metatemplate-InputWithViewAndHashAddress.js":148,"../templates/Pict-Template-Proxy-PluckJoinUnique.js":149,"../templates/Pict-Template-TabularEditingControls.js":150,"../templates/Pict-Template-TabularRowLabels.js":151,"./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates-ReadOnly.js":112,"./dynamictemplates/Pict-DynamicTemplates-DefaultFormTemplates.js":113,"pict-provider":32}],105:[function(t,e,o){var 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},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).options,i.pict,i.log,i._activeFormGUID=null,i._persistTimerHandle=null,i.storageAdapter=i.createLocalStorageAdapter(),i}return _inherits(e,t),_createClass2(e,[{key:"createLocalStorageAdapter",value:function(){var t=this;return{setItem:function(e,o){try{return"undefined"!=typeof window&&window.localStorage?(window.localStorage.setItem(e,o),!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){var o=[];try{if("undefined"!=typeof window&&window.localStorage)for(var n=0;n<window.localStorage.length;n++){var r=window.localStorage.key(n);r&&r.startsWith(e)&&o.push(r)}}catch(e){t.log.error("FormPersistence: localStorage getKeysWithPrefix error: ".concat(e.message))}return o}}}},{key:"setStorageAdapter",value:function(t){if("object"!==_typeof(t)||null===t)return this.log.error("FormPersistence setStorageAdapter called with an invalid adapter."),!1;for(var e=["setItem","getItem","removeItem","getKeysWithPrefix"],o=0;o<e.length;o++)if("function"!=typeof t[e[o]])return this.log.error("FormPersistence setStorageAdapter: adapter is missing required method [".concat(e[o],"].")),!1;return this.storageAdapter=t,!0}},{key:"getAppIdentifier",value:function(){return this.options.AppIdentifier?this.options.AppIdentifier:this.pict&&this.pict.settings&&this.pict.settings.Product?this.pict.settings.Product:"DefaultApp"}},{key:"getFormTypeIdentifier",value:function(){return this.options.FormTypeIdentifier?this.options.FormTypeIdentifier:"DefaultForm"}},{key:"getStorageKey",value:function(t,e){var o="".concat(this.options.StorageKeyPrefix,":").concat(this.getAppIdentifier(),":").concat(this.getFormTypeIdentifier());return e?"".concat(o,":").concat(t,":").concat(e):"".concat(o,":").concat(t)}},{key:"getIndexKey",value:function(){return this.getStorageKey("Index")}},{key:"getFormIndex",value:function(){var t=this.getIndexKey(),e=this.storageAdapter.getItem(t);if(e)try{var o=JSON.parse(e);if("object"===_typeof(o)&&null!==o&&"Records"in o)return o}catch(t){this.log.error("FormPersistence getFormIndex: failed to parse index: ".concat(t.message))}return{Records:{}}}},{key:"_saveFormIndex",value:function(t){var e=this.getIndexKey();return this.storageAdapter.setItem(e,JSON.stringify(t))}},{key:"newFormRecord",value:function(t,e){var o=this.fable.getUUID(),n=(new Date).toISOString(),r=this.getFormIndex();return r.Records[o]={GUID:o,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(o,"]").concat(e?' labeled "'.concat(e,'"'):"",".")),o}},{key:"saveFormData",value:function(t){if(!t)return this.log.error("FormPersistence saveFormData called without an instance GUID."),!1;var e,o,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{o=JSON.stringify(e)}catch(t){return this.log.error("FormPersistence saveFormData: failed to serialize form data: ".concat(t.message)),!1}var r=this.getStorageKey("Form",t),i=this.storageAdapter.setItem(r,o);return i&&(n.Records[t].Modified=(new Date).toISOString(),n.Records[t].Synced=!1,this._saveFormIndex(n)),i}},{key:"getFormDataRaw",value:function(t){if(!t)return this.log.error("FormPersistence getFormDataRaw called without an instance GUID."),null;var e=this.getStorageKey("Form",t);return this.storageAdapter.getItem(e)}},{key:"loadFormData",value:function(t){if(!t)return this.log.error("FormPersistence loadFormData called without an instance GUID."),!1;var e,o,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{o=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}for(var i=Object.keys(o),a=0;a<i.length;a++)delete o[i[a]];return Object.assign(o,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}},{key:"deleteFormRecord",value:function(t){if(!t)return this.log.error("FormPersistence deleteFormRecord called without an instance GUID."),!1;var e=this.getStorageKey("Form",t);this.storageAdapter.removeItem(e);var o=this.getFormIndex();return t in o.Records&&(delete o.Records[t],this._saveFormIndex(o)),this.log.info("FormPersistence: deleted form record [".concat(t,"].")),!0}},{key:"saveBundleData",value:function(t){if(!t)return this.log.error("FormPersistence saveBundleData called without a context identifier."),!1;var e,o;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{o=JSON.stringify(e)}catch(t){return this.log.error("FormPersistence saveBundleData: failed to serialize bundle data: ".concat(t.message)),!1}var n=this.getStorageKey("Bundle",t);return this.storageAdapter.setItem(n,o)}},{key:"loadBundleData",value:function(t){if(!t)return this.log.error("FormPersistence loadBundleData called without a context identifier."),!1;var e,o,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{o=this.pict.resolveStateFromAddress(this.options.BundleSourceAddress)}catch(t){return this.log.error("FormPersistence loadBundleData: failed to resolve bundle destination: ".concat(t.message)),!1}for(var i=Object.keys(o),a=0;a<i.length;a++)delete o[i[a]];return Object.assign(o,e),this.log.info("FormPersistence: loaded bundle data for context [".concat(t,"].")),!0}},{key:"deleteBundleData",value:function(t){if(!t)return this.log.error("FormPersistence deleteBundleData called without a context identifier."),!1;var e=this.getStorageKey("Bundle",t);return this.storageAdapter.removeItem(e),this.log.info("FormPersistence: deleted bundle data for context [".concat(t,"].")),!0}},{key:"listFormRecords",value:function(){var t=this.getFormIndex();return Object.values(t.Records)}},{key:"listUnsyncedFormRecords",value:function(){for(var t=this.listFormRecords(),e=[],o=0;o<t.length;o++)t[o].Synced||e.push(t[o]);return e}},{key:"listFormRecordsForContext",value:function(t){for(var e=this.listFormRecords(),o=[],n=0;n<e.length;n++)e[n].BundleContextIdentifier===t&&o.push(e[n]);return o}},{key:"markFormSynced",value:function(t){if(!t)return this.log.error("FormPersistence markFormSynced called without an instance GUID."),!1;var 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)}},{key:"markFormDirty",value:function(t){if(!t)return this.log.error("FormPersistence markFormDirty called without an instance GUID."),!1;var 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)}},{key:"getActiveFormGUID",value:function(){return this._activeFormGUID}},{key:"setActiveFormGUID",value:function(t){this._activeFormGUID=t||null}},{key:"persistActiveForm",value:function(){if(!this._activeFormGUID)return this.log.warn("FormPersistence persistActiveForm: no active form GUID set."),!1;var t=this.saveFormData(this._activeFormGUID);if(t&&this.options.AutoPersistBundleWithForm){var e=this.getFormIndex().Records[this._activeFormGUID];e&&e.BundleContextIdentifier&&this.saveBundleData(e.BundleContextIdentifier)}return t}},{key:"triggerDebouncedPersist",value:function(){if(this._activeFormGUID){this._persistTimerHandle&&clearTimeout(this._persistTimerHandle);var t=this;this._persistTimerHandle=setTimeout(function(){t.persistActiveForm(),t._persistTimerHandle=null},this.options.AutoPersistDebounceMs)}}},{key:"onFormDataChanged",value:function(){this.options.AutoPersistOnDataChange&&this.triggerDebouncedPersist()}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],106:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-Informary",AutoInitialize:!1,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).options,i.pict,i.log,i.genericManifest=i.pict.newManyfest({Scope:"GenericInformary"}),i}return _inherits(e,t),_createClass2(e,[{key:"getFormElements",value:function(t){var e='[data-i-form="'.concat(t,'"]');return this.pict.ContentAssignment.getElement(e)}},{key:"getContentBrowserAddress",value:function(t,e,o,n){return o?'[data-i-form="'.concat(t,'"][data-i-datum="').concat(e,'"][data-i-container="').concat(o,'"][data-i-index="').concat(n,'"]'):'[data-i-form="'.concat(t,'"][data-i-datum="').concat(e,'"]')}},{key:"getComposedContainerAddress",value:function(t,e,o){return"".concat(t,"[").concat(e,"].").concat(o)}},{key:"marshalFormToData",value:function(t,e,o,n,r){var i,a="object"===_typeof(o)?o:this.genericManifest,s=this.getFormElements(e),l=null==n&&n,c="number"==typeof r?String(r):r,p=_createForOfIteratorHelper(s);try{for(p.s();!(i=p.n()).done;){var u=i.value;this.marshalSpecicificFormElementToData(e,u,a,t,l,c)}}catch(t){p.e(t)}finally{p.f()}}},{key:"marshalSpecicificFormElementToData",value:function(t,e,o,n,r,i){var a=e.getAttribute("data-i-datum"),s=e.getAttribute("data-i-container"),l=e.getAttribute("data-i-index");if(r&&r!==a)return!1;if(i&&l&&i!==l)return!1;var c=this.pict.ContentAssignment.readContent(this.getContentBrowserAddress(t,a,s,l));if(this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling BrowserForm Data ".concat(c," from form element [").concat(a,"] in container [").concat(s,"] at index [").concat(l,"] to the datum address [").concat(a,"].")),null==c)return!1;s?o.setValueAtAddress(n,this.getComposedContainerAddress(s,l,a),c):o.setValueAtAddress(n,a,c)}},{key:"marshalDataToForm",value:function(t,e,o){for(var n="object"===_typeof(o)?o:this.genericManifest,r=this.getFormElements(e),i=0;i<r.length;i++)this.marshalSpecificElementDataToForm(e,r[i],n,t)}},{key:"marshalSpecificElementDataToForm",value:function(t,e,o,n){var r=e.getAttribute("data-i-datum"),i=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(i){var s=o.getValueAtAddress(n,this.getComposedContainerAddress(i,a,r));this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling App State data ".concat(s," to Browser Form element [").concat(r,"] in container [").concat(i,"] at index [").concat(a,"].")),null!=s&&this.pict.ContentAssignment.assignContent(this.getContentBrowserAddress(t,r,i,a),s)}else{var l=o.getValueAtAddress(n,r);this.pict.LogNoisiness>3&&this.log.trace("Informary marshalling App State data ".concat(l," to Browser Form element [").concat(r,"].")),null!=l&&this.pict.ContentAssignment.assignContent(this.getContentBrowserAddress(t,r,i,a),l)}}},{key:"manualMarshalDataToFormByInput",value:function(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;var 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)}},{key:"manualMarshalTabularDataToFormByInput",value:function(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;var o=this.pict.views[t.PictForm.ViewHash];return o?this.pict.ContentAssignment.assignContent("".concat(t.Macro.HTMLSelectorTabular,'[data-i-index="').concat(e,'"]'),o.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)}},{key:"manualMarshalDataToForm",value:function(t,e){return this.pict.ContentAssignment.assignContent(t,e)}},{key:"manualMarshalTabularDataToForm",value:function(t,e,o){return this.pict.ContentAssignment.assignContent("".concat(t,'[data-i-index="').concat(o,'"]'),e)}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],107:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-InputExtension",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){return _classCallCheck(this,e),_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])}return _inherits(e,t),_createClass2(e,[{key:"getInputHTMLID",value:function(t){return"#INPUT-FOR-".concat(t)}},{key:"getTabularInputHTMLID",value:function(t,e){return"#TABULAR-DATA-".concat(t,"-").concat(e)}},{key:"onInputInitialize",value:function(t,e,o,n,r,i,a){return!0}},{key:"onInputInitializeTabular",value:function(t,e,o,n,r,i,a){return!0}},{key:"onDataChange",value:function(t,e,o,n,r){return!0}},{key:"onDataChangeTabular",value:function(t,e,o,n,r,i){return!0}},{key:"onDataMarshalToForm",value:function(t,e,o,n,r,i,a){return!0}},{key:"onDataMarshalToFormTabular",value:function(t,e,o,n,r,i,a){return!0}},{key:"onDataRequest",value:function(t,e,o,n){return!0}},{key:"onDataRequestTabular",value:function(t,e,o,n,r){return!0}},{key:"onEvent",value:function(t,e,o,n,r,i){return!0}},{key:"onAfterEventCompletion",value:function(t,e,o,n,r,i){return!0}},{key:"onEventTabular",value:function(t,e,o,n,r,i,a){return!0}},{key:"onAfterEventTabularCompletion",value:function(t,e,o,n,r,i,a){return!0}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],108:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"filterList",value:function(t,e,o){if("object"!=_typeof(e))return this.log.warn("FilterList failed because the input is not an object."),o;if(!("PictForm"in e))return this.log.warn("FilterList failed because the input does not have a PictForm stanza object."),o;if(!Array.isArray(o))return this.log.warn("FilterList for input [".concat(e.Hash,"] failed because the list is not an array.")),[];var n=e.PictForm.ListFilterRules;if(!n||0==n.length||!Array.isArray(n))return o;for(var r=o.slice(0),i=o.length-1;i>=0;i--){for(var a=o[i],s=!0,l=0;l<n.length;l++){var c=n[l],p="FilteredRecordComparisonValue"in c&&c.FilteredRecordComparisonValueAddress,u=void 0;switch(u=p?t.getValueByHash(p):a.id,c.FilterType){case"Explicit":var d=c.FilterValueAddress,h="FilterValueComparison"in c?c.FilterValueComparison:"==",f="IgnoreEmptyValue"in c&&c.IgnoreEmptyValue,m=t.getValueByHash(d);if(f&&(!m||""==m))break;switch(h.toLowerCase()){case"=":case"==":case"eq":u!=m&&(this.fable.log.debug("FilterList: ".concat(u," != ").concat(m,"; distilling is removing from the outcome array.")),s=!1);break;case"!=":case"ne":case"~=":case"ae":u==m&&(this.fable.log.debug("FilterList: ".concat(u," == ").concat(m,"; distilling is removing from the outcome array.")),s=!1)}break;case"CrossMap":var v=c.JoinListAddress,g="JoinListAddressGlobal"in c&&c.JoinListAddressGlobal,w=c.JoinListValueAddress,y=c.ExternalValueAddress,b=c.FilterToValueAddress,D="IgnoreEmpty"in c&&c.IgnoreEmpty,P=void 0;if(g){var T={Fable:this.pict,Pict:this.pict,AppData:this.pict.AppData,Bundle:this.pict.Bundle,View:t};P=this.pict.manifest.getValueAtAddress(T,v)}else P=t.getValueByHash(v);var S=t.getValueByHash(b);if(D&&(!S||""==S))break;if(!Array.isArray(P)&&null!=P&&"object"==_typeof(P)){for(var F=Object.keys(P),C=[],x=0;x<F.length;x++)C.push(P[F[x]]);P=C}if(!Array.isArray(P)||0==P.length)break;for(var _=!1,A=0;A<P.length;A++){var I=this.pict.manifest.getValueAtAddress(P[A],w),k=this.pict.manifest.getValueAtAddress(P[A],y);if((!D||I&&""!=I)&&(S==k&&I==u)){_=!0;break}}s=_&&s;break;default:var H=this.pict.providers[c.FilterType];H&&(s=H.filterList(t,e,o,a))}}s||r.splice(i,1)}return r}}])}(t("pict-provider"));e.exports=n,e.exports.default_configuration={ProviderIdentifier:"Pict-DynamicForms-ListDistilling",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1}},{"pict-provider":32}],109:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-MetaList",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).options,i.pict,i.fable,i.log,i.UUID,i.Hash,i.computedLists={},i.listDefinitions={},i}return _inherits(e,t),_createClass2(e,[{key:"getList",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.listDefinitions[t].Dynamic){var o=[],n=this.pict.getUUID(),r=n.substring(0,8),i="AppData._MetaLists.".concat(r);return this.pict.manifest.setValueByHash(this.pict,i,o),this.pict.TransactionTracking.registerTransaction(n),this.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("GetPickList:".concat(t,":").concat(i,":").concat(JSON.stringify(e)),n),this.pict.views.PictFormMetacontroller.finalizeTransaction(n),delete this.pict.AppData._MetaLists[r],o}return t in this.computedLists?this.computedLists[t]:[]}},{key:"hasList",value:function(t){return t in this.computedLists}},{key:"buildViewSpecificLists",value:function(t){for(var e=Array.isArray(t)?t:Object.keys(this.fable.views),o=0;o<e.length;o++){var n=e[o],r=this.fable.views[n];if(r.isPictSectionForm){var i=r.sectionDefinition;if("PickLists"in i&&Array.isArray(i.PickLists))for(var a=0;a<i.PickLists.length;a++){var s=i.PickLists[a];this.buildList(s)}}}}},{key:"rebuildListByHash",value:function(t){t in this.listDefinitions&&this.buildList(this.listDefinitions[t])}},{key:"buildList",value:function(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]=[]);var 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;var o=this.pict.providers.DataBroker.getValueByHash(t.ListSourceAddress);if(!o)return this.computedLists[t.Hash]=[],!1;var n={};if(Array.isArray(o))for(var r=0;r<o.length;r++){var i=o[r];if(i&&"object"===_typeof(i)){var a=this.pict.parseTemplate(t.TextTemplate,i),s=this.pict.parseTemplate(t.IDTemplate,i);if(!a||!s){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&&s in n)continue;n[s]=!0,e.push({id:s,text:a})}}t.Sorted&&e.sort(function(t,e){return t.text.localeCompare(e.text)}),this.computedLists[t.Hash]=e}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],110:[function(t,e,o){var n=t("pict-provider"),r=t("../views/Pict-View-DynamicForm.js"),i={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"}}}}}},s=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(i)),o),n])).pict,r.log,r.dynamicInputView,r.baseTemplatePrefix="Pict-MT-Base",r}return _inherits(e,t),_createClass2(e,[{key:"onInitializeAsync",value:function(t){return this.createOnDemandMetatemplateView(),_superPropGet(e,"onInitializeAsync",this,3)([t])}},{key:"createOnDemandMetatemplateView",value:function(){var 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)}},{key:"getMetatemplateTemplateReferenceRaw",value:function(t,e,o){return t.checkViewSpecificTemplate(e)?"\n{~T:".concat(t.formsTemplateSetPrefix).concat(e,":").concat(o,"~}"):t.checkThemeSpecificTemplate(e)?"\n{~T:".concat(t.defaultTemplatePrefix).concat(e,":").concat(o,"~}"):""}},{key:"getMetatemplateTemplateReference",value:function(t,e,o){return this.getMetatemplateTemplateReferenceRaw(t,e,'Pict.views["'.concat(t.Hash,'"].').concat(o))}},{key:"getInputMetatemplateTemplateReference",value:function(t,e,o,n){var r="-Template-Input-InputType-".concat(o),i="-Template-Input-DataType-".concat(e);if(o){var a=this.getMetatemplateTemplateReference(t,r,n);if(a)return a}var s=this.getMetatemplateTemplateReference(t,i,n);return s||this.getMetatemplateTemplateReference(t,"-Template-Input",n)}},{key:"getTabularInputMetatemplateTemplateReference",value:function(t,e,o,n,r,i){var a="-TabularTemplate-Begin-Input-InputType-".concat(o),s="-TabularTemplate-Mid-Input-InputType-".concat(o),l="-TabularTemplate-End-Input-InputType-".concat(o),c="-TabularTemplate-Begin-Input-DataType-".concat(e),p="-TabularTemplate-Mid-Input-DataType-".concat(e),u="-TabularTemplate-End-Input-DataType-".concat(e),d=this.getMetatemplateTemplateReference(t,"-TabularTemplate-Mid-Input",n),h=this.getMetatemplateTemplateReference(t,"-TabularTemplate-InformaryAddress-Input",n);if(o){var f=this.getMetatemplateTemplateReference(t,a,n),m=this.getMetatemplateTemplateReference(t,l,n),v=this.getMetatemplateTemplateReference(t,s,n);if(d=v||d,f&&m)return f+d+h+m}var g=this.getMetatemplateTemplateReference(t,c,n),w=this.getMetatemplateTemplateReference(t,u,n);if(g&&w){var y=this.getMetatemplateTemplateReference(t,p,n);return g+(d=y||d)+h+w}return g=this.getMetatemplateTemplateReference(t,"TabularTemplate-Begin-Input",n),w=this.getMetatemplateTemplateReference(t,"TabularTemplate-End-Input",n),g&&w?g+d+h+w:(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(o,", Data Address ").concat(n,", Group Index ").concat(r," and Record Subaddress ").concat(i,".")),"")}},{key:"getVerticalInputMetatemplateTemplateReference",value:function(t,e,o,n){var r="-VerticalTemplate-Input-InputType-".concat(o),i="-VerticalTemplate-Input-DataType-".concat(e);if(o){var a=this.getMetatemplateTemplateReference(t,r,n);if(a)return a}var s=this.getMetatemplateTemplateReference(t,i,n);return s||this.getMetatemplateTemplateReference(t,"-Template-Input",n)}},{key:"getGroupLayoutProvider",value:function(t,e){var o="string"==typeof e.Layout?e.Layout:"string"==typeof t.sectionDefinition.DefaultGroupLayout?t.sectionDefinition.DefaultGroupLayout:"Record";switch(o){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(o)in this.pict.providers?this.pict.providers["Pict-Layout-".concat(o)]:this.pict.providers["Pict-Layout-Record"]}}},{key:"rebuildCustomTemplate",value:function(t){var 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(var o=0;o<t.sectionDefinition.Groups.length;o++){var n=t.sectionDefinition.Groups[o];n.GroupIndex=o,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)}}])}(n);e.exports=s,e.exports.default_configuration=i},{"../views/Pict-View-DynamicForm.js":153,"pict-provider":32}],111:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-DynamicForms-MetatemplateMacros",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).options,i.pict,i.fable,i.log,i.UUID,i.Hash,i.additionalInputMacros={},"AdditionalInputMacros"in i.options&&(i.additionalInputMacros=Object.assign(i.additionalInputMacros,i.options.AdditionalInputMacros)),"CustomInputMacros"in i.pict.settings&&(i.AdditionalInputMacros=Object.assign(i.additionalInputMacros,i.pict.settings.CustomInputMacros)),i.additionalGroupMacros={},"AdditionalGroupMacros"in i.options&&(i.additionalGroupMacros=Object.assign(i.additionalGroupMacros,i.options.AdditionalGroupMacros)),"CustomGroupMacros"in i.pict.settings&&(i.additionalGroupMacros=Object.assign(i.additionalGroupMacros,i.pict.settings.CustomGroupMacros)),i.additionalSectionMacros={},"AdditionalSectionMacros"in i.options&&(i.additionalSectionMacros=Object.assign(i.additionalSectionMacros,i.options.AdditionalSectionMacros)),"CustomSectionMacros"in i.pict.settings&&(i.additionalSectionMacros=Object.assign(i.additionalSectionMacros,i.pict.settings.CustomSectionMacros)),i}return _inherits(e,t),_createClass2(e,[{key:"buildInputMacros",value:function(t,e){var o=Object.keys(t.options.MacroTemplates.Input),n=Object.keys(this.additionalInputMacros);"Macro"in e||(e.Macro={});for(var r=0;r<o.length;r++)e.Macro[o[r]]=t.pict.parseTemplate(t.options.MacroTemplates.Input[o[r]],e,null,[t]);for(var i=0;i<n.length;i++)e.Macro[n[i]]=t.pict.parseTemplate(this.additionalInputMacros[n[i]],e,null,[t])}},{key:"rebuildMacros",value:function(t){if(!("MacroTemplates"in t.options))return!1;var e=Object.keys(t.options.MacroTemplates.Section),o=Object.keys(this.additionalSectionMacros);"object"!==_typeof(t.sectionDefinition.Macro)&&(t.sectionDefinition.Macro={});for(var n=0;n<e.length;n++)t.sectionDefinition.Macro[e[n]]=t.pict.parseTemplate(t.options.MacroTemplates.Section[e[n]],t.sectionDefinition,null,[t]);for(var r=0;r<o.length;r++)t.sectionDefinition.Macro[o[r]]=t.pict.parseTemplate(this.additionalSectionMacros[o[r]],t.sectionDefinition,null,[t]);for(var i=0;i<t.sectionDefinition.Groups.length;i++){var a=t.sectionDefinition.Groups[i],s=Object.keys(t.options.MacroTemplates.Group),l=Object.keys(this.additionalGroupMacros);"Macro"in a||(a.Macro={});for(var c=0;c<s.length;c++)a.Macro[s[c]]=t.pict.parseTemplate(t.options.MacroTemplates.Group[s[c]],a,null,[t]);for(var p=0;p<l.length;p++)a.Macro[l[p]]=t.pict.parseTemplate(this.additionalGroupMacros[l[p]],a,null,[t]);Array.isArray(a.Rows)||(a.Rows=[]);for(var u=0;u<a.Rows.length;u++)for(var d=a.Rows[u],h=0;h<d.Inputs.length;h++)this.buildInputMacros(t,d.Inputs[h]);if(a.supportingManifest)for(var f=Object.keys(a.supportingManifest.elementDescriptors),m=0;m<f.length;m++)this.buildInputMacros(t,a.supportingManifest.elementDescriptors[f[m]])}}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],112:[function(t,e,o){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'}]}},{}],113:[function(t,e,o){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:"-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:"-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="">'}]}},{}],114:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getTriggerGroupConfigurationArray",value:function(t){var e=t.PictForm.AutofillTriggerGroup;return e?(Array.isArray(e)||(e=[e]),e):[]}},{key:"autoFillFromAddressList",value:function(t,e,o,n){if(!("TriggerGroupHash"in o)||"string"!=typeof o.TriggerGroupHash)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerGroupHash string is not present."),!1;if(!("TriggerAddress"in o)||"string"!=typeof o.TriggerAddress)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerAddress string is not present."),!1;var r=this.pict.manifest.getValueByHash(this.pict,o.TriggerAddress);return!(!r&&!o.MarshalEmptyValues)&&(t.setDataByInput(e,r),t.manualMarshalDataToViewByInput(e),!0)}},{key:"autoFillFromAddressListTabular",value:function(t,e,o,n,r){if(!("TriggerGroupHash"in o)||"string"!=typeof o.TriggerGroupHash)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerGroupHash string is not present."),!1;if(!("TriggerAddress"in o)||"string"!=typeof o.TriggerAddress)return this.log.warn("AutofillTriggerGroup failed to autofill because a TriggerAddress string is not present."),!1;var i=this.pict.manifest.getValueByHash(this.pict,o.TriggerAddress);return!(!i&&!o.MarshalEmptyValues)&&(t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,r,i),t.manualMarshalTabularDataToViewByInput(e,r),!0)}},{key:"onDataChange",value:function(t,o,n,r,i){var a=this,s=this.getTriggerGroupConfigurationArray(o);if(Array.isArray(s)&&this.pict.views.PictFormMetacontroller)for(var l=function(){var e=s[c];e.TriggerAllInputs&&(Array.isArray(e.PreSolvers)&&a.pict.providers.DynamicSolver.executeSolvers(t,e.PreSolvers,"AutofillTriggerGroup hash ".concat(e.TriggerGroupHash," pre-trigger")),t.registerOnTransactionCompleteCallback(i,function(){Array.isArray(e.PostSolvers)&&a.pict.providers.DynamicSolver.executeSolvers(t,e.PostSolvers,"AutofillTriggerGroup hash ".concat(e.TriggerGroupHash," post-trigger"))}),a.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(e.TriggerGroupHash,":DataChange:").concat(o.Hash||o.DataAddress,":").concat(a.pict.getUUID()),i))},c=0;c<s.length;c++)l();return _superPropGet(e,"onDataChange",this,3)([t,o,n,r,i])}},{key:"onDataChangeTabular",value:function(t,o,n,r,i,a){var s=this,l=this.getTriggerGroupConfigurationArray(o);if(Array.isArray(l)&&this.pict.views.PictFormMetacontroller)for(var c=function(){var e=l[p];e.TriggerAllInputs&&(Array.isArray(e.PreSolvers)&&s.pict.providers.DynamicSolver.executeSolvers(t,e.PreSolvers,"AutofillTriggerGroup hash ".concat(e.TriggerGroupHash," tabular pre-trigger")),t.registerOnTransactionCompleteCallback(a,function(){Array.isArray(e.PostSolvers)&&s.pict.providers.DynamicSolver.executeSolvers(t,e.PostSolvers,"AutofillTriggerGroup hash ".concat(e.TriggerGroupHash," tabular post-trigger"))}),s.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(e.TriggerGroupHash,":DataChange:").concat(o.Hash||o.DataAddress,":").concat(s.pict.getUUID()),a))},p=0;p<l.length;p++)c();return _superPropGet(e,"onDataChangeTabular",this,3)([t,o,n,r,i,a])}},{key:"onAfterEventCompletion",value:function(t,o,n,r,i,a){var s=_slicedToArray(("string"==typeof i?i:"").split(":"),5),l=s[0],c=s[1],p=(s[2],s[3]),u=s[4];u||(u=this.pict.getUUID());var d=o.PictForm.AutofillTriggerGroup;if(!d||"TriggerGroup"!==l||(o.Hash||o.DataAddress)==p)return _superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a]);Array.isArray(d)||(d=[d]);for(var h=0;h<d.length;h++){var f=d[h];if(f.TriggerGroupHash===c){if(Array.isArray(f.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,f.PreSolvers,"AutofillTriggerGroup hash ".concat(f.TriggerGroupHash," pre-autofill")),"TriggerAddress"in f&&this.autoFillFromAddressList(t,o,f,r),f.SelectOptionsRefresh){var m=this.pict.views[o.PictForm.ViewHash];this.pict.providers.DynamicMetaLists.rebuildListByHash(o.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectList(m,m.getGroup(o.PictForm.GroupIndex),m.getRow(o.PictForm.GroupIndex,o.PictForm.Row),o,n,r),m.manualMarshalDataToViewByInput(o,u)}Array.isArray(f.PostSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,f.PostSolvers,"AutofillTriggerGroup hash ".concat(f.TriggerGroupHash," post-autofill"))}}return _superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])}},{key:"onAfterEventTabularCompletion",value:function(t,o,n,r,i,a,s){var l=_slicedToArray(("string"==typeof a?a:"").split(":"),5),c=l[0],p=l[1],u=(l[2],l[3]),d=l[4];if(d||(d=this.pict.getUUID()),!o.PictForm.AutofillTriggerGroup||"TriggerGroup"!==c||(o.Hash||o.DataAddress)==u)return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s]);var h=o.PictForm.AutofillTriggerGroup;Array.isArray(h)||(h=[h]);var f,m=_createForOfIteratorHelper(h);try{for(m.s();!(f=m.n()).done;){var v=f.value;if(v.TriggerGroupHash===p)if(v.SelectOptionsRefresh)if(o.PictForm.SelectOptionsPickList){var g=this.pict.views[o.PictForm.ViewHash];this.pict.providers.DynamicMetaLists.rebuildListByHash(o.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectListTabular(g,g.getGroup(o.PictForm.GroupIndex),g.getRow(o.PictForm.GroupIndex,o.PictForm.Row),o,n,r,i),g.manualMarshalTabularDataToViewByInput(o,i,d)}else;else this.autoFillFromAddressListTabular(t,o,v,r,i)}}catch(t){m.e(t)}finally{m.f()}return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],115:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.options.DefaultCoreParsingConfiguration&&Array.isArray(r.options.DefaultCoreParsingConfiguration)||(r.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}]}),r.defaultCoreParsingConfiguration=JSON.parse(JSON.stringify(r.options.DefaultCoreParsingConfiguration)),"object"===_typeof(r.options.DefaultLabelParsingConfiguration)&&Array.isArray(r.options.DefaultLabelParsingConfiguration.Steps)||(r.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}]}),r.defaultLabelParsingConfiguration=JSON.parse(JSON.stringify(r.options.DefaultLabelParsingConfiguration)),"object"===_typeof(r.options.DefaultDataParsingConfiguration)&&Array.isArray(r.options.DefaultDataParsingConfiguration.Steps)||(r.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}]}),r.defaultDataParsingConfiguration=JSON.parse(JSON.stringify(r.options.DefaultDataParsingConfiguration)),r.currentChartObjects={},r.currentChartDataObjects={},r}return _inherits(e,t),_createClass2(e,[{key:"applyInputParsingConfiguration",value:function(t,e,o,n){var r=t,i=n,a=e,s=o;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={});var l,c=this.pict.manifest.getValueByHash(r,i);"object"===_typeof(c)&&(s=Object.assign(s,c)),l=s.AddressInObject&&""!=s.AddressInObject?this.pict.manifest.getValueByHash(a,s.AddressInObject):a;for(var p=0;p<s.Steps.length;p++){var u=s.Steps[p];switch(u.Method){case"Initialize":if(s.AddressInObject&&"string"==typeof s.AddressInObject&&s.AddressInObject.length>0){var d=this.pict.manifest.getValueByHash(a,s.AddressInObject);"array"===s.ObjectType?d&&Array.isArray(d)||this.pict.manifest.setValueByHash(a,s.AddressInObject,[]):"object"===s.ObjectType?d&&"object"===_typeof(d)||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,u.InputProperty))break;var h=this.pict.manifest.getValueByHash(r,u.InputProperty);if("object"!==_typeof(h))break;if("array"===s.ObjectType){if(Array.isArray(h))if(u.Merge){Array.isArray(l)||(l=[]);var f=l.concat(h);this.pict.manifest.setValueByHash(a,s.AddressInObject,f)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,h)}else if("object"===s.ObjectType)if(u.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==_typeof(l)&&null!=l||(l={}),u.Merge){var m=Object.assign(l,h);this.pict.manifest.setValueByHash(a,s.AddressInObject,m)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);else a=u.Merge?Object.assign(a,h):h;else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);break;case"Address":var v=this.pict.manifest.getValueByHash(r,u.InputProperty);if(!v)break;if("object"!==_typeof(this.pict.resolveStateFromAddress(v,t)))break;if("array"===s.ObjectType){if(Array.isArray(h))if(u.Merge){Array.isArray(l)||(l=[]);var g=l.concat(h);this.pict.manifest.setValueByHash(a,s.AddressInObject,g)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,h)}else if("object"===s.ObjectType)if(u.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==_typeof(l)&&null!=l||(l={}),u.Merge){var w=Object.assign(l,h);this.pict.manifest.setValueByHash(a,s.AddressInObject,w)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);else a=u.Merge?Object.assign(a,h):h;else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);break;case"SingleSolver":var y=this.pict.manifest.getValueByHash(r,u.InputProperty);if("string"!=typeof y)break;var b=this.pict.providers.DynamicSolver.runSolver(y,!0);if("array"===s.ObjectType){if(Array.isArray(b))if(u.Merge){Array.isArray(l)||(l=[]);var D=l.concat(b);this.pict.manifest.setValueByHash(a,s.AddressInObject,D)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,b)}else if("object"===s.ObjectType)if(u.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==_typeof(l)&&null!=l||(l={}),u.Merge){var P=Object.assign(l,b);this.pict.manifest.setValueByHash(a,s.AddressInObject,P)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);else a=u.Merge?Object.assign(a,b):b;else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);break;case"ArrayOfSolvers":var T=this.pict.manifest.getValueByHash(r,u.InputProperty);if(!Array.isArray(T))break;for(var S=0;S<T.length;S++){var F=T[S];if("object"===_typeof(F)){var C=F.Label,x=F.DataSolver,_=this.pict.providers.DynamicSolver.runSolver(x,!0),A={label:C,data:Array.isArray(_)?_:[]};if(F.ChartType&&(A.type=F.ChartType),F.CustomYAxisID&&(A.yAxisID=F.CustomYAxisID),F.CustomXAxisID&&(A.xAxisID=F.CustomXAxisID),F.Tension&&(A.tension=F.Tension),F.PointRadius&&(A.pointRadius=F.PointRadius),F.StackGroup&&(A.stack=F.StackGroup),"array"===s.ObjectType)Array.isArray(_)&&(u.Merge?(Array.isArray(l)||(l=[]),l.push(A),this.pict.manifest.setValueByHash(a,s.AddressInObject,l)):this.pict.manifest.setValueByHash(a,s.AddressInObject,[A]));else if("object"===s.ObjectType)if(u.Merge)if(s.AddressInObject&&""!=s.AddressInObject)if("object"==_typeof(l)&&null!=l||(l={}),u.Merge){var I=Object.assign(l,_);this.pict.manifest.setValueByHash(a,s.AddressInObject,I)}else this.pict.manifest.setValueByHash(a,s.AddressInObject,h);else a=u.Merge?Object.assign(a,_):_;else this.pict.manifest.setValueByHash(a,s.AddressInObject,h)}}}}}},{key:"getInputChartConfiguration",value:function(t,e,o){if(!("PictForm"in e))return!1;var 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}},{key:"initializeChartVisualization",value:function(t,e,o,n,r,i){var a="#CONFIG-FOR-".concat(n.Macro.RawHTMLID),s=this.getInputChartConfiguration(t,n,r);this.pict.ContentAssignment.assignContent(a,JSON.stringify(s));var l="#CANVAS-FOR-".concat(n.Macro.RawHTMLID),c=this.pict.ContentAssignment.getElement(l);if(!Array.isArray(c)||c.length<1)return this.log.warn("Chart canvas element not found for input ".concat(l)),!1;c=c[0],"function"!=typeof window.Chart?this.log.warn("Chart.js library not loaded for input ".concat(l)):(this.currentChartObjects["Object-For-".concat(n.Macro.RawHTMLID)]=new window.Chart(c,s),this.currentChartDataObjects["Data-For-".concat(n.Macro.RawHTMLID)]=JSON.stringify(s.data))}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){return this.initializeChartVisualization(t,o,n,r,i,a),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){return _superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataChange",value:function(t,o,n,r,i){return _superPropGet(e,"onDataChange",this,3)([t,o,n,r,i])}},{key:"onDataChangeTabular",value:function(t,o,n,r,i,a){return _superPropGet(e,"onDataChangeTabular",this,3)([t,o,n,r,i,a])}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){if(this.currentChartObjects["Object-For-".concat(r.Macro.RawHTMLID)]){var l=this.getInputChartConfiguration(t,r,i),c=JSON.stringify(l.data);this.currentChartDataObjects["Data-For-".concat(r.Macro.RawHTMLID)]!==c&&(this.currentChartObjects["Object-For-".concat(r.Macro.RawHTMLID)].data=l.data,this.currentChartObjects["Object-For-".concat(r.Macro.RawHTMLID)].update(),this.currentChartDataObjects["Data-For-".concat(r.Macro.RawHTMLID)]=c)}else this.initializeChartVisualization(t,o,n,r,i,a);return _superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){return _superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataRequest",value:function(t,o,n,r){return _superPropGet(e,"onDataRequest",this,3)([t,o,n,r])}},{key:"onDataRequestTabular",value:function(t,o,n,r,i){return _superPropGet(e,"onDataRequestTabular",this,3)([t,o,n,r,i])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],116:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getDateTimeInputHTMLID",value:function(t){return"#DATETIME-INPUT-FOR-".concat(t)}},{key:"getTabularDateTimeHiddenInputHTMLID",value:function(t,e){return"#DATETIME-TABULAR-DATA-".concat(t,"-").concat(e)}},{key:"getTabularDateTimeInputHTMLID",value:function(t,e){return"#DATETIME-TABULAR-INPUT-".concat(t,"-").concat(e)}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.assignContent(this.getDateTimeInputHTMLID(r.Macro.RawHTMLID),i),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.assignContent(this.getTabularDateTimeInputHTMLID(n.Macro.RawHTMLID,a),r),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataRequest",value:function(t,o,n,r){var i;try{i=this.pict.ContentAssignment.readContent(this.getDateTimeInputHTMLID(o.Macro.RawHTMLID)),this.pict.ContentAssignment.assignContent(r,i),t.dataChanged(o.Hash)}catch(t){this.log.error("The value [".concat(i,"] is not a valid date; skipping parsing for [#").concat(o.Macro.RawHTMLID,"]."))}return _superPropGet(e,"onDataRequest",this,3)([t,o,n,r])}},{key:"onDataRequestTabular",value:function(t,o,n,r,i){var a;try{a=this.pict.ContentAssignment.readContent(this.getTabularDateTimeInputHTMLID(o.Macro.RawHTMLID,i)),this.pict.ContentAssignment.assignContent(this.getTabularDateTimeHiddenInputHTMLID(o.Macro.RawHTMLID,i),a),t.dataChangedTabular(o.PictForm.GroupIndex,o.PictForm.InputIndex,i)}catch(t){this.log.error("The value [".concat(a,"] is not a valid date; skipping parsing for [#").concat(o.Macro.RawHTMLID,"]."))}return _superPropGet(e,"onDataRequestTabular",this,3)([t,o,n,r,i])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],117:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"gatherEntitySet",value:function(t,e,o,n,r){var i=this;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();var a={Value:r,Input:n,View:o},s=null,l=null;e.RecordCount&&(s=null!=e.RecordStartCursor?e.RecordStartCursor:0,l=null!=e.RecordCount?e.RecordCount:null);var c=this.pict.parseTemplate(e.Filter,a);""==c&&this.log.warn("EntityBundleRequest failed to parse entity request because the entity Filter did not return a string for FilterBy");var p=function(o,n){return o?(i.log.error("EntityBundleRequest request Error getting entity set for [".concat(e.Entity,"] with filter [").concat(c,"]: ").concat(o),o),t(o,"")):(i.log.trace("EntityBundleRequest found ".concat(n.length," records for ").concat(e.Entity," filtered to [").concat(c,"]")),e.SingleRecord?(n.length>1&&i.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&&i.pict.manifest.setValueByHash(i.pict,e.Destination,!1),i.pict.manifest.setValueByHash(i.pict,e.Destination,n[0])):i.pict.manifest.setValueByHash(i.pict,e.Destination,n),t())};l?this.pict.EntityProvider.getEntitySetPage(e.Entity,c,s,l,p):this.pict.EntityProvider.getEntitySet(e.Entity,c,p)}},{key:"gatherCustomDataSet",value:function(t,e,o,n,r){var i=this;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();var a={Value:r,Input:n,View:o},s=this.pict.parseTemplate(e.URL,a);""==s&&this.log.warn("EntityBundleRequest failed to parse custom data request because the entity Filter did not return a string for FilterBy");var l="",c=!!e.Host&&e.Host,p=e.Protocol?e.Protocol:"https",u=!!e.Port&&e.Port;c?(l="".concat(p,"://").concat(c),u&&(l+=":".concat(u))):l=this.pict.EntityProvider.options.urlPrefix;var d={url:"".concat(l).concat(s)};return d=this.pict.EntityProvider.prepareRequestOptions(d),this.pict.EntityProvider.restClient.getJSON(d,function(o,n,r){return o?(i.log.error("EntityBundleRequest request Error getting data set for [".concat(e.Entity,"] with filter [").concat(s,"]: ").concat(o),o),t(o,"")):(i.log.trace("EntityBundleRequest completed request for ".concat(e.Entity," filtered to [").concat(s,"]")),e.Destination&&i.pict.manifest.setValueByHash(i.pict,e.Destination,r),t())})}},{key:"gatherDataFromServer",value:(o=_asyncToGenerator(_regenerator().m(function t(e,o,n,r,i){var a,s,l,c,p,u,d,h,f=this;return _regenerator().w(function(t){for(;;)switch(t.n){case 0:if("object"===_typeof(o)&&"PictForm"in o&&"EntitiesBundle"in o.PictForm&&Array.isArray(o.PictForm.EntitiesBundle)){t.n=1;break}return this.log.warn("Input at ".concat(r," is set as an EntityBundleRequest input but no array of entity requests was found")),t.a(2,null);case 1:if(a="BundleLoad-".concat(this.pict.getUUID()),i&&e.registerEventTransactionAsyncOperation(i,a),s=o,l=n,c=this.fable.newAnticipate(),!(s.PictForm.EntitiesBundle.length>0&&s.PictForm.EntitiesBundle[0].PictMode)){t.n=2;break}c.anticipate(function(t){f.pict.EntityProvider.gatherDataFromServer(s.PictForm.EntitiesBundle,function(e){setTimeout(function(){return t(e)},0)})}),t.n=6;break;case 2:p=[],u={Value:l,Input:s,View:e},d=_regenerator().m(function t(){var o;return _regenerator().w(function(t){for(;;)switch(t.n){case 0:o=s.PictForm.EntitiesBundle[h],c.anticipate(function(t){try{switch(o.Type){case"Custom":return f.gatherCustomDataSet(t,o,e,s,l);case"SetStateAddress":p.push(u),void 0===(u=f.fable.manifest.getValueByHash(f.fable,o.StateAddress))&&(u={},f.fable.manifest.setValueByHash(f.fable,o.StateAddress,u));break;case"PopState":p.length>0?u=p.pop():f.log.warn("EntityBundleRequest encountered a PopState without a matching SetStateAddress.");break;case"MapJoin":f.pict.EntityProvider.mapJoin(o,f.pict.EntityProvider.prepareState(u,o));break;case"ProjectDataset":f.pict.EntityProvider.projectDataset(o,f.pict.EntityProvider.prepareState(u,o));break;default:return f.gatherEntitySet(t,o,e,s,l)}}catch(t){f.log.error("EntityBundleRequest error gathering entity set: ".concat(t),t)}return t()});case 1:return t.a(2)}},t)}),h=0;case 3:if(!(h<s.PictForm.EntitiesBundle.length)){t.n=5;break}return t.d(_regeneratorValues(d()),4);case 4:h++,t.n=3;break;case 5:c.anticipate(function(t){return setTimeout(t,0)});case 6:return c.anticipate(function(t){if(s.PictForm.EntityBundleTriggerGroup&&f.pict.views.PictFormMetacontroller){var n,r=f.getTriggerGroupConfigurationArray(s,s.PictForm.EntityBundleTriggerGroup)[0];r&&Array.isArray(r.PreSolvers)&&f.pict.providers.DynamicSolver.executeSolvers(e,r.PreSolvers,"EntityBundleTriggerGroup hash ".concat(r.TriggerGroupHash," pre-trigger")),r&&Array.isArray(r.PostSolvers)&&((n=i||f.pict.getUUID())!==i&&f.pict.TransactionTracking.registerTransaction(n),e.registerOnTransactionCompleteCallback(n,function(){Array.isArray(r.PostSolvers)&&f.pict.providers.DynamicSolver.executeSolvers(e,r.PostSolvers,"EntityBundleTriggerGroup hash ".concat(r.TriggerGroupHash," tabular post-trigger"))})),f.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TriggerGroup:".concat(s.PictForm.EntityBundleTriggerGroup,":BundleLoad:").concat(o.Hash||o.DataAddress,":").concat(f.pict.getUUID()),i),n&&n!==i&&e.finalizeTransaction(n)}s.PictForm.EntityBundleTriggerMetacontrollerSolve&&f.pict.views.PictFormMetacontroller&&f.pict.views.PictFormMetacontroller.solve(),s.PictForm.EntityBundleTriggerMetacontrollerRender&&f.pict.views.PictFormMetacontroller&&f.pict.views.PictFormMetacontroller.render(),t()}),t.a(2,new Promise(function(t,o){c.wait(function(o){return o&&f.log.error("EntityBundleRequest error gathering entity set: ".concat(o),o),i&&e.eventTransactionAsyncOperationComplete(i,a),t(o)})}))}},t,this)})),function(t,e,n,r,i){return o.apply(this,arguments)})},{key:"getTriggerGroupConfigurationArray",value:function(t,e){var o=t.PictForm.AutofillTriggerGroup;return o?(Array.isArray(o)||(o=[o]),null==e?o:o.filter(function(t){return t.TriggerGroupHash===e})):[]}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){return r.PictForm&&(i||r.PictForm.EntityBundleTriggerWithoutValue)&&r.PictForm.EntityBundleTriggerOnInitialize&&this.gatherDataFromServer(t,r,i,a,s),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){return this.log.error("EntityBundleRequest for input [".concat(n.Hash,"] Tabular support is intentionally not supported.")),_superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataChange",value:function(t,o,n,r,i){return o.PictForm&&(n||o.PictForm.EntityBundleTriggerWithoutValue)&&!1!==o.PictForm.EntityBundleTriggerOnDataChange&&this.gatherDataFromServer(t,o,n,r,i),_superPropGet(e,"onDataChange",this,3)([t,o,n,r,i])}},{key:"onAfterEventCompletion",value:function(t,o,n,r,i,a){var s=_slicedToArray(("string"==typeof i?i:"").split(":"),2),l=s[0],c=s[1];return"TriggerGroup"===l&&c&&o.PictForm.TriggerGroupHash===c?(this.gatherDataFromServer(t,o,n,r,a),_superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])):_superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])}}]);var o}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],118:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getContentDisplayHTMLID",value:function(t){return"#DISPLAY-FOR-".concat(t)}},{key:"getTabularContentDisplayInputID",value:function(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}},{key:"getInputContent",value:function(t,e){var o=null;return e&&"string"==typeof e&&(o=e),t.Content&&"string"==typeof t.Content&&(o=t.Content),t.Default&&"string"==typeof t.Default&&(o=t.Default),o}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(r,i);return l&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(r.Macro.RawHTMLID),l),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,l,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(n,r);return l&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(n.Macro.RawHTMLID,a),l),_superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(r,i);return l&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(r.Macro.RawHTMLID),l),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(n,r);return l&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(n.Macro.RawHTMLID,a),l),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],119:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.setAttribute(this.getInputHTMLID(r.Macro.RawHTMLID),"href",i),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.setAttribute(this.getTabularInputHTMLID(n.Macro.RawHTMLID,a),"href",r),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],120:[function(t,e,o){var n=t("../Pict-Provider-InputExtension.js"),r=t("marked"),i=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getContentDisplayHTMLID",value:function(t){return"#DISPLAY-FOR-".concat(t)}},{key:"getTabularContentDisplayInputID",value:function(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}},{key:"getInputContent",value:function(t,e){var o=null;return e&&"string"==typeof e&&(o=e),t.Content&&"string"==typeof t.Content&&(o=t.Content),t.Default&&"string"==typeof t.Default&&(o=t.Default),o&&(o=r.parse(o)),o}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(r,i);return l&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(r.Macro.RawHTMLID),l),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,l,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(n,r);return l&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(n.Macro.RawHTMLID,a),l),_superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(r,i);return l&&this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(r.Macro.RawHTMLID),l),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){var l=this.getInputContent(n,r);return l&&this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(n.Macro.RawHTMLID,a),l),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}}])}(n);e.exports=i},{"../Pict-Provider-InputExtension.js":107,marked:27}],121:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"roundValue",value:function(t,e){var o=e;if("DecimalPrecision"in t.PictForm){var n=this.fable.Math.roundHalfUp;if("RoundingMethod"in t.PictForm)try{n=parseInt(t.PictForm.RoundingMethod)}catch(e){this.log.error("Error parsing rounding method onDataMarshalToForm for input ".concat(t.Hash),e)}o=this.fable.Math.toFixedPrecise(o,t.PictForm.DecimalPrecision,n)}return"AddCommas"in t.PictForm&&t.PictForm.AddCommas&&(o=this.fable.DataFormat.formatterAddCommasToNumber(o)),"DigitsPrefix"in t.PictForm&&(o=t.PictForm.DigitsPrefix+o),"DigitsPostfix"in t.PictForm&&(o+=t.PictForm.DigitsPostfix),o}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.assignContent(this.getInputHTMLID(r.Macro.RawHTMLID),this.roundValue(r,i)),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.assignContent("#PRECISE-"+this.getTabularInputHTMLID(n.Macro.RawHTMLID,a).substring(1),r),this.pict.ContentAssignment.assignContent(this.getTabularInputHTMLID(n.Macro.RawHTMLID,a),this.roundValue(n,r)),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],122:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getSelectInputHTMLID",value:function(t){return"#SELECT-FOR-".concat(t)}},{key:"getTabularSelectInputID",value:function(t,e){return"#SELECT-TABULAR-DATA-".concat(t,"-").concat(e)}},{key:"getTabularSelectDropdownID",value:function(t,e){return"#SELECT-TABULAR-DROPDOWN-".concat(t,"-").concat(e)}},{key:"refreshSelectList",value:function(t,e,o,n,r,i){var a,s=this.pict.ContentAssignment.getElement(this.getSelectInputHTMLID(n.Macro.RawHTMLID)),l=null===(a=n.PictForm)||void 0===a?void 0:a.SelectOptions;if(n.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(n.PictForm.SelectOptionsPickList)&&(l=this.pict.providers.DynamicMetaLists.getList(n.PictForm.SelectOptionsPickList)),!s||s.length<1)return!1;if(l=this.pict.providers.ListDistilling.filterList(t,n,l),(s=s[0]).innerHTML="",s&&l&&Array.isArray(l))for(var c=0;c<l.length;c++){var p=document.createElement("option");p.value=l[c].id,p.text=l[c].text,s.appendChild(p)}}},{key:"refreshSelectListTabular",value:function(t,e,o,n,r,i,a){var s,l=this.pict.ContentAssignment.getElement(this.getTabularSelectDropdownID(n.Macro.RawHTMLID,a)),c=null===(s=n.PictForm)||void 0===s?void 0:s.SelectOptions;if(n.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(n.PictForm.SelectOptionsPickList)&&(c=this.pict.providers.DynamicMetaLists.getList(n.PictForm.SelectOptionsPickList)),c=this.pict.providers.ListDistilling.filterList(t,n,c),Array.isArray(l)&&!(l.length<1)&&((l=l[0]).innerHTML="",l&&c&&Array.isArray(c)))for(var p=0;p<c.length;p++){var u=document.createElement("option");u.value=c[p].id,u.text=c[p].text,l.appendChild(u)}}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){return this.refreshSelectList(t,o,n,r,i,a),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){return this.refreshSelectListTabular(t,o,t.getRow(n.PictForm.GroupIndex,a),n,r,i,a),_superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataChange",value:function(t,o,n,r,i){return _superPropGet(e,"onDataChange",this,3)([t,o,n,r,i])}},{key:"onDataChangeTabular",value:function(t,o,n,r,i,a){return _superPropGet(e,"onDataChangeTabular",this,3)([t,o,n,r,i,a])}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){var l=this.pict.ContentAssignment.getElement(this.getSelectInputHTMLID(r.Macro.RawHTMLID));if(!l||l.length<1)return!1;var c=l[0];if(!(c instanceof HTMLSelectElement))return!1;for(var p=!1,u=0;u<c.options.length;u++)if(c.options[u].value===i){c.selectedIndex=u,p=!0;break}return p||(c.selectedIndex=-1),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){var l=this.pict.ContentAssignment.getElement(this.getTabularSelectDropdownID(n.Macro.RawHTMLID,a));if(!l||l.length<1)return _superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s]);var c=l[0];if(!(c instanceof HTMLSelectElement))return _superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s]);for(var p=!1,u=0;u<c.options.length;u++)if(c.options[u].value===r){c.selectedIndex=u,p=!0;break}return p||(c.selectedIndex=-1),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onDataRequest",value:function(t,o,n,r){var i=this.pict.ContentAssignment.readContent(this.getSelectInputHTMLID(o.Macro.RawHTMLID));return this.pict.ContentAssignment.assignContent(r,i),t.dataChanged(o.Hash),_superPropGet(e,"onDataRequest",this,3)([t,o,i,r])}},{key:"onDataRequestTabular",value:function(t,o,n,r,i){var a=this.pict.ContentAssignment.readContent(this.getTabularSelectDropdownID(o.Macro.RawHTMLID,i));return this.pict.ContentAssignment.assignContent(this.getTabularSelectInputID(o.Macro.RawHTMLID,i),a),t.dataChangedTabular(o.PictForm.GroupIndex,o.PictForm.InputIndex,i),_superPropGet(e,"onDataRequestTabular",this,3)([t,o,n,r,i])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],123:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.cssHideClass="pict-tab-group-hidden",r.cssSelectedTabClass="pict-tab-group-selectedtab",r.cssSnippet=".pict-tab-group-hidden { display: none; } .pict-tab-group-selectedtab { font-weight: bold; }",r.setCSSSnippets(),r}return _inherits(e,t),_createClass2(e,[{key:"setCSSSnippets",value:function(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()}},{key:"getTabSelector",value:function(t,e,o){return"#TAB-".concat(o,"-").concat(e.Macro.RawHTMLID)}},{key:"getGroupSelector",value:function(t,e){return"#GROUP-".concat(t.formID,"-").concat(e)}},{key:"selectTabByViewHash",value:function(t,e,o){var n,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(o,"] but the view did not exist!")),!1;var i=r.getInputFromHash(e);if(!i)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(o,"] but the input did not exist!")),!1;if(null==i||null===(n=i.PictForm)||void 0===n||!n.TabGroupSet||!Array.isArray(i.PictForm.TabGroupSet))return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(o,"] but the input did not have a valid TabGroupSet array in the PictForm object!")),!1;for(var a=0;a<i.PictForm.TabGroupSet.length;a++){var s=i.PictForm.TabGroupSet[a];s!=o?(this.pict.ContentAssignment.addClass(this.getGroupSelector(r,s),this.cssHideClass),this.pict.ContentAssignment.removeClass(this.getTabSelector(r,i,s),this.cssSelectedTabClass)):(this.pict.ContentAssignment.removeClass(this.getGroupSelector(r,s),this.cssHideClass),this.pict.ContentAssignment.addClass(this.getTabSelector(r,i,s),this.cssSelectedTabClass))}return r.setDataByInput(i,o),!0}},{key:"getTabSelectorInputHTMLID",value:function(t){return"#TAB-SELECT-FOR-".concat(t)}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){var l,c,p,u,d=null===(l=r.PictForm)||void 0===l?void 0:l.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(r.Macro.RawHTMLID,"] but there were no valid entries in the tmpInput.PictForm.TabGroupSet array!")),!1;for(var h=this.pict.providers.DynamicInput.getInputTemplateHash(t,{PictForm:{InputType:"TabGroupSelector-TabElement",DataType:"String"}}),f="",m=(null===(c=r.PictForm)||void 0===c?void 0:c.TabGroupNames)||[],v=0;v<d.length;v++)f+=this.pict.parseTemplateByHash(h,r,null,[t,{TabGroupHash:d[v],TabGroupName:m[v]||d[v]}]);this.pict.ContentAssignment.projectContent("replace",this.getTabSelectorInputHTMLID(r.Macro.RawHTMLID),f,"FixTheTypescriptTypes");var g=!1!==(null===(p=r.PictForm)||void 0===p?void 0:p.DefaultFromData)&&i||(null===(u=r.PictForm)||void 0===u?void 0:u.DefaultTabGroupHash)||d[0];return this.selectTabByViewHash(t.Hash,r.Hash,g),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],124:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.cssHideClass="pict-tab-section-hidden",r.cssSelectedTabClass="pict-tab-section-selectedtab",r.cssSnippet=".pict-tab-section-hidden { display: none; } .pict-tab-section-selectedtab { font-weight: bold; }",r.setCSSSnippets(),r}return _inherits(e,t),_createClass2(e,[{key:"setCSSSnippets",value:function(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")}},{key:"getViewHash",value:function(t){return"PictSectionForm-".concat(t)}},{key:"getTabSelector",value:function(t,e){return"#TAB-".concat(t,"-").concat(e.Macro.RawHTMLID)}},{key:"getSectionSelector",value:function(t){var e=this.pict.views.PictFormMetacontroller;return"#Pict-".concat(e?e.UUID:this.UUID,"-").concat(t,"-Wrap")}},{key:"selectTabByViewHash",value:function(t,e,o){var n,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(o,"] but the view did not exist!")),!1;var i=r.getInputFromHash(e);if(!i)return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(o,"] but the input did not exist!")),!1;if(null==i||null===(n=i.PictForm)||void 0===n||!n.TabSectionSet||!Array.isArray(i.PictForm.TabSectionSet))return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(o,"] but the input did not have a valid TabSectionSet array in the PictForm object!")),!1;if(!this.pict.views[this.getViewHash(o)])return this.pict.log.error("TabSelector input provider tried to switch to view [".concat(t,"] input [").concat(e,"] tab [").concat(o,"] but the tab view did not exist!")),!1;for(var a=0;a<i.PictForm.TabSectionSet.length;a++){var s=i.PictForm.TabSectionSet[a];s!=o?(this.pict.ContentAssignment.addClass(this.getSectionSelector(s),this.cssHideClass),this.pict.ContentAssignment.removeClass(this.getTabSelector(s,i),this.cssSelectedTabClass)):(this.pict.ContentAssignment.removeClass(this.getSectionSelector(s),this.cssHideClass),this.pict.ContentAssignment.addClass(this.getTabSelector(s,i),this.cssSelectedTabClass))}return r.setDataByInput(i,o),!0}},{key:"getTabSelectorInputHTMLID",value:function(t){return"#TAB-SELECT-FOR-".concat(t)}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){var l,c,p,u,d=null===(l=r.PictForm)||void 0===l?void 0:l.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(r.Macro.RawHTMLID,"] but there were no valid entries in the tmpInput.PictForm.TabSectionSet array!")),!1;for(var h=this.pict.providers.DynamicInput.getInputTemplateHash(t,{PictForm:{InputType:"TabSectionSelector-TabElement",DataType:"String"}}),f="",m=(null===(c=r.PictForm)||void 0===c?void 0:c.TabSectionNames)||[],v=0;v<d.length;v++)f+=this.pict.parseTemplateByHash(h,r,null,[t,{TabSectionHash:d[v],TabSectionName:m[v]||d[v]}]);this.pict.ContentAssignment.projectContent("replace",this.getTabSelectorInputHTMLID(r.Macro.RawHTMLID),f,"FixTheTypescriptTypes");var g=!1!==(null===(p=r.PictForm)||void 0===p?void 0:p.DefaultFromData)&&i||(null===(u=r.PictForm)||void 0===u?void 0:u.DefaultTabSectionHash)||d[0];return this.selectTabByViewHash(t.Hash,r.Hash,g),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],125:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).fable,r.pict,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getTriggerGroupConfigurationArray",value:function(t){var e=t.PictForm.TabularTriggerGroup;return e?(Array.isArray(e)||(e=[e]),e):[]}},{key:"ensureRowCache",value:function(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]}},{key:"gatherEntitySet",value:function(t,e,o,n,r,i,a){var s=this;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();var l={Value:r,Input:n,View:o},c=this.pict.parseTemplate(e.Filter,l);""===c&&this.log.warn("TabularTriggerGroup: entity Filter did not return a string for FilterBy");var p=null,u=null;e.RecordCount&&(p=null!=e.RecordStartCursor?e.RecordStartCursor:0,u=null!=e.RecordCount?e.RecordCount:null);var d=function(o,n){if(o)return s.log.error("TabularTriggerGroup error getting entity set for [".concat(e.Entity,"] row ").concat(i,": ").concat(o),o),t(o);s.log.trace("TabularTriggerGroup found ".concat(n.length," records for ").concat(e.Entity," row ").concat(i));var r=s.ensureRowCache(a,i);return e.SingleRecord?n.length<1?s.pict.manifest.setValueByHash(r,e.Destination,!1):s.pict.manifest.setValueByHash(r,e.Destination,n[0]):s.pict.manifest.setValueByHash(r,e.Destination,n),t()};u?this.pict.EntityProvider.getEntitySetPage(e.Entity,c,p,u,d):this.pict.EntityProvider.getEntitySet(e.Entity,c,d)}},{key:"gatherCustomDataSet",value:function(t,e,o,n,r,i,a){var s=this;if(!e.URL||"string"!=typeof e.URL)return this.log.warn("TabularTriggerGroup failed to parse custom request: missing URL string."),t();var l={Value:r,Input:n,View:o},c=this.pict.parseTemplate(e.URL,l),p="",u=!!e.Host&&e.Host,d=e.Protocol?e.Protocol:"https",h=!!e.Port&&e.Port;u?(p="".concat(d,"://").concat(u),h&&(p+=":".concat(h))):p=this.pict.EntityProvider.options.urlPrefix;var f={url:"".concat(p).concat(c)};return f=this.pict.EntityProvider.prepareRequestOptions(f),this.pict.EntityProvider.restClient.getJSON(f,function(o,n,r){if(o)return s.log.error("TabularTriggerGroup error getting custom data for row ".concat(i,": ").concat(o),o),t(o);if(e.Destination){var l=s.ensureRowCache(a,i);s.pict.manifest.setValueByHash(l,e.Destination,r)}return t()})}},{key:"gatherDataForRow",value:(o=_asyncToGenerator(_regenerator().m(function t(e,o,n,r,i,a,s){var l,c,p,u,d,h=this;return _regenerator().w(function(t){for(;;)switch(t.n){case 0:if(Array.isArray(a.EntitiesBundle)&&!(a.EntitiesBundle.length<1)){t.n=1;break}return this.log.warn("TabularTriggerGroup: no EntitiesBundle array found for triggering input [".concat(o.Hash,"] row ").concat(i)),t.a(2,null);case 1:l=a.TriggerGroupHash,c="TabularBundleLoad-".concat(this.pict.getUUID()),s&&e.registerEventTransactionAsyncOperation(s,c),p=this.fable.newAnticipate(),u=_regenerator().m(function t(){var r;return _regenerator().w(function(t){for(;;)switch(t.n){case 0:r=a.EntitiesBundle[d],p.anticipate(function(t){try{return"Custom"===r.Type?h.gatherCustomDataSet(t,r,e,o,n,i,l):h.gatherEntitySet(t,r,e,o,n,i,l)}catch(t){h.log.error("TabularTriggerGroup error gathering entity set for row ".concat(i,": ").concat(t),t)}return t()});case 1:return t.a(2)}},t)}),d=0;case 2:if(!(d<a.EntitiesBundle.length)){t.n=4;break}return t.d(_regeneratorValues(u()),3);case 3:d++,t.n=2;break;case 4:return p.anticipate(function(t){return setTimeout(t,0)}),p.anticipate(function(t){h.pict.views.PictFormMetacontroller&&h.pict.views.PictFormMetacontroller.triggerGlobalInputEvent("TabularTriggerGroup:".concat(l,":DataChange:").concat(o.Hash||o.DataAddress,":").concat(i,":").concat(h.pict.getUUID()),s),a.PostSolvers&&Array.isArray(a.PostSolvers)&&h.pict.providers.DynamicSolver.executeSolvers(e,a.PostSolvers,"TabularTriggerGroup hash ".concat(l," row ").concat(i," post-trigger")),t()}),t.a(2,new Promise(function(t,o){p.wait(function(o){return o&&h.log.error("TabularTriggerGroup error gathering data for row ".concat(i,": ").concat(o),o),s&&e.eventTransactionAsyncOperationComplete(s,c),t(o)})}))}},t,this)})),function(t,e,n,r,i,a,s){return o.apply(this,arguments)})},{key:"autoFillFromRowCache",value:function(t,e,o,n,r){if(!o.TriggerGroupHash||"string"!=typeof o.TriggerGroupHash)return this.log.warn("TabularTriggerGroup failed to autofill: missing TriggerGroupHash string."),!1;if(!o.TriggerAddress||"string"!=typeof o.TriggerAddress)return this.log.warn("TabularTriggerGroup failed to autofill: missing TriggerAddress string."),!1;var i=this.ensureRowCache(o.TriggerGroupHash,r),a=this.pict.manifest.getValueByHash(i,o.TriggerAddress);return!(!a&&!o.MarshalEmptyValues)&&(t.setDataTabularByHash(e.PictForm.GroupIndex,e.Hash,r,a),t.manualMarshalTabularDataToViewByInput(e,r),!0)}},{key:"onDataChangeTabular",value:function(t,o,n,r,i,a){for(var s=this.getTriggerGroupConfigurationArray(o),l=0;l<s.length;l++){var c=s[l];c.TriggerAllInputs&&(c.PreSolvers&&Array.isArray(c.PreSolvers)&&this.pict.providers.DynamicSolver.executeSolvers(t,c.PreSolvers,"TabularTriggerGroup hash ".concat(c.TriggerGroupHash," row ").concat(i," pre-trigger")),this.gatherDataForRow(t,o,n,r,i,c,a))}return _superPropGet(e,"onDataChangeTabular",this,3)([t,o,n,r,i,a])}},{key:"onAfterEventTabularCompletion",value:function(t,o,n,r,i,a,s){var l=("string"==typeof a?a:"").split(":"),c=l[0],p=l[1],u=(l[2],l[3]),d=parseInt(l[4],10);if("TabularTriggerGroup"!==c)return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s]);if((o.Hash||o.DataAddress)===u)return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s]);if(i!==d)return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s]);for(var h=this.getTriggerGroupConfigurationArray(o),f=0;f<h.length;f++){var m=h[f];if(m.TriggerGroupHash===p&&(m.TriggerAddress&&this.autoFillFromRowCache(t,o,m,r,i),m.SelectOptionsRefresh)){var v=this.pict.views[o.PictForm.ViewHash];v&&o.PictForm.SelectOptionsPickList&&(this.pict.providers.DynamicMetaLists.rebuildListByHash(o.PictForm.SelectOptionsPickList),this.pict.providers["Pict-Input-Select"].refreshSelectListTabular(v,v.getGroup(o.PictForm.GroupIndex),v.getRow(o.PictForm.GroupIndex,o.PictForm.Row),o,n,r,i),v.manualMarshalTabularDataToViewByInput(o,i))}}return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s])}},{key:"onDataChange",value:function(t,o,n,r,i){return _superPropGet(e,"onDataChange",this,3)([t,o,n,r,i])}},{key:"onAfterEventCompletion",value:function(t,o,n,r,i,a){return _superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])}}]);var o}(t("../Pict-Provider-InputExtension.js"));e.exports=n,e.exports.default_configuration={ProviderIdentifier:"Pict-Input-TabularTriggerGroup",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1}},{"../Pict-Provider-InputExtension.js":107}],126:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getContentDisplayHTMLID",value:function(t){return"#DISPLAY-FOR-".concat(t)}},{key:"getTabularContentDisplayInputID",value:function(t,e){return"#DISPLAY-FOR-TABULAR-".concat(t,"-").concat(e)}},{key:"handleContentUpdate",value:function(t,e,o,n){var r="";o&&"string"==typeof o&&(r=o);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)}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){return this._handleInitialize(t,o,n,r,i,a,null,s),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){return this._handleInitialize(t,o,null,n,r,i,a,s),_superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"_handleInitialize",value:function(t,e,o,n,r,i,a,s){if(n.PictForm&&n.PictForm.Templates&&"object"===_typeof(n.PictForm.Templates)&&!Array.isArray(n.PictForm.Templates))for(var l=0,c=Object.entries(n.PictForm.Templates);l<c.length;l++){var p=_slicedToArray(c[l],2),u=p[0],d=p[1];this.pict.TemplateProvider.templates[u]?this.pict.log.error("[Pict-Input-Templated] Attempt to override template with hash: ".concat(u,"; skipping.")):this.pict.TemplateProvider.addTemplate(u,d,"Templated Input hash: ".concat(n.Hash))}this.handleContentUpdate(t,n,r)}},{key:"onDataMarshalToForm",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.assignContent(this.getContentDisplayHTMLID(r.Macro.RawHTMLID),i),_superPropGet(e,"onDataMarshalToForm",this,3)([t,o,n,r,i,a,s])}},{key:"onDataMarshalToFormTabular",value:function(t,o,n,r,i,a,s){return this.pict.ContentAssignment.assignContent(this.getTabularContentDisplayInputID(n.Macro.RawHTMLID,a),r),_superPropGet(e,"onDataMarshalToFormTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onAfterEventCompletion",value:function(t,o,n,r,i,a){var s,l,c=_slicedToArray(("string"==typeof i?i:"").split(":"),2),p=c[0],u=c[1];if("TriggerGroup"!==p)return _superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a]);var d=Array.isArray(null===(s=o.PictForm)||void 0===s?void 0:s.TriggerGroupHash)?o.PictForm.TriggerGroupHash:[null===(l=o.PictForm)||void 0===l?void 0:l.TriggerGroupHash];return o.PictForm&&o.PictForm.TriggerGroupHash&&d.includes(u)?(this.handleContentUpdate(t,o,n),t.manualMarshalDataToViewByInput(o,a),_superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])):_superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])}},{key:"onAfterEventTabularCompletion",value:function(t,o,n,r,i,a,s){var l,c,p=_slicedToArray(("string"==typeof a?a:"").split(":"),2),u=p[0],d=p[1];if("TriggerGroup"!==u)return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s]);var h=Array.isArray(null===(l=o.PictForm)||void 0===l?void 0:l.TriggerGroupHash)?o.PictForm.TriggerGroupHash:[null===(c=o.PictForm)||void 0===c?void 0:c.TriggerGroupHash];return o.PictForm&&o.PictForm.TriggerGroupHash&&h.includes(d)?(this.handleContentUpdate(t,o,n,i),t.manualMarshalTabularDataToViewByInput(o,i,s),_superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s])):_superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s])}}])}(t("../Pict-Provider-InputExtension.js"));e.exports=n},{"../Pict-Provider-InputExtension.js":107}],127:[function(t,e,o){var n=t("../Pict-Provider-InputExtension.js"),r=(t("marked"),function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"getContentDisplayHTMLID",value:function(t){return"#DISPLAY-FOR-".concat(t)}},{key:"getTabularContentDisplayInputID",value:function(t,e){return"#".concat(t,"-").concat(e)}},{key:"assignDisplayEntityData",value:function(t,e,o){var n="string"==typeof e.PictForm.TemplatedEntityLookup.Template?e.PictForm.TemplatedEntityLookup.Template:"",r="";if("object"==_typeof(e))if("PictForm"in e)if("TemplatedEntityLookup"in e.PictForm)if(Array.isArray(e.PictForm.TemplatedEntityLookup.EntitiesBundle)){var i=this.fable.newAnticipate();i.anticipate(function(t){this.pict.EntityProvider.gatherDataFromServer(e.PictForm.TemplatedEntityLookup.EntitiesBundle,function(e){setTimeout(function(){return t(e)},0)})}.bind(this)),i.anticipate(function(t){this.pict.parseTemplate(n,{Value:o},function(e,o){if(!e)return r=o,t();this.log.error("Error rendering template in assignDisplayEntityData",e)}.bind(this))}.bind(this)),i.wait(function(e){e?this.log.error("Error in assignDisplayEntityData",e):this.pict.ContentAssignment.assignContent(t,r)}.bind(this))}else this.log.error("Error in assignDisplayEntityData: pInput.PictForm.TemplatedEntityLookup.EntitiesBundle is not an array");else this.log.error("Error in assignDisplayEntityData: pInput.PictForm.TemplatedEntityLookup is not in the PictForm object");else this.log.error("Error in assignDisplayEntityData: pInput.PictForm is not an object");else this.log.error("Error in assignDisplayEntityData: pInput is not an object")}},{key:"onInputInitialize",value:function(t,o,n,r,i,a,s){return this.assignDisplayEntityData(this.getContentDisplayHTMLID(r.Macro.RawHTMLID),r,i),_superPropGet(e,"onInputInitialize",this,3)([t,o,n,r,i,a,s])}},{key:"onInputInitializeTabular",value:function(t,o,n,r,i,a,s){return this.assignDisplayEntityData(this.getTabularContentDisplayInputID(n.Macro.RawHTMLID,a),n,r),_superPropGet(e,"onInputInitializeTabular",this,3)([t,o,n,r,i,a,s])}},{key:"onAfterEventCompletion",value:function(t,o,n,r,i,a){var s=_slicedToArray(("string"==typeof i?i:"").split(":"),5),l=(s[0],s[1]),c=(s[2],s[3],s[4]);if(c||(c=this.pict.getUUID()),!o.PictForm.TemplatedEntityLookup||!("TriggerGroupHash"in o.PictForm.TemplatedEntityLookup))return _superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a]);for(var p=[o.PictForm.TemplatedEntityLookup],u=0;u<p.length;u++){p[u].TriggerGroupHash===l&&this.assignDisplayEntityData(this.getContentDisplayHTMLID(o.Macro.RawHTMLID),o,n)}return _superPropGet(e,"onAfterEventCompletion",this,3)([t,o,n,r,i,a])}},{key:"onAfterEventTabularCompletion",value:function(t,o,n,r,i,a,s){var l=_slicedToArray(("string"==typeof a?a:"").split(":"),5),c=(l[0],l[1]),p=(l[2],l[3],l[4]);if(p||(p=this.pict.getUUID()),!o.PictForm.TemplatedEntityLookup||!("TriggerGroupHash"in o.PictForm.TemplatedEntityLookup))return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s]);for(var u=0,d=[o.PictForm.TemplatedEntityLookup];u<d.length;u++){d[u].TriggerGroupHash===c&&this.assignDisplayEntityData(this.getTabularContentDisplayInputID(o.Macro.RawHTMLID,i),o,n)}return _superPropGet(e,"onAfterEventTabularCompletion",this,3)([t,o,n,r,i,a,s])}}])}(n));e.exports=r},{"../Pict-Provider-InputExtension.js":107,marked:27}],128:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"generateGroupLayoutTemplate",value:function(t,e){var o=this.pict.providers.MetatemplateGenerator,n="";return n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+="No really... this is a chart.",n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}}])}(t("../Pict-Provider-DynamicLayout.js"));e.exports=n},{"../Pict-Provider-DynamicLayout.js":100}],129:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"generateGroupLayoutTemplate",value:function(t,e){for(var o=0;o<e.Rows.length;o++)for(var n=e.Rows[o],r=0;r<n.Inputs.length;r++){var i=n.Inputs[r];i.PictForm.InputIndex=r,i.PictForm.GroupIndex=e.GroupIndex,i.PictForm.RowIndex=o}var a=e.CustomLayoutTemplateHash;if(a){var s=this.pict.TemplateProvider.getTemplate(a);if(s)return s;this.log.warn("Custom layout template not found for hash: ".concat(a))}return e.CustomLayoutTemplate||""}}])}(t("../Pict-Provider-DynamicLayout.js"));e.exports=n},{"../Pict-Provider-DynamicLayout.js":100}],130:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"generateGroupLayoutTemplate",value:function(t,e){var o=this.pict.providers.MetatemplateGenerator,n="";"Rows"in e||(e.Rows=[]),n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var r=0;r<e.Rows.length;r++){var i=e.Rows[r];i.WidthTotalRaw=0,n+=o.getMetatemplateTemplateReference(t,"-Template-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var a=0;a<i.Inputs.length;a++){var s=i.Inputs[a];s.PictForm.InputIndex=a,s.PictForm.GroupIndex=e.GroupIndex,s.PictForm.RowIndex=r;var l=1;try{l=Math.abs(parseFloat(s.PictForm.Width))}catch(t){l=1}(!l||isNaN(l)||l<=0)&&(l=1),s.PictForm.RawWidth=l,i.WidthTotalRaw+=l}var c=95;if("WidthQuantization"in e)try{(!(c=Math.abs(parseInt(e.WidthQuantization)))||isNaN(c)||c<=0)&&(c=95)}catch(t){c=95}else"WidthQuantization"in this.pict.PictApplication.options&&(c=this.pict.PictApplication.options.WidthQuantization);for(var p=0;p<i.Inputs.length;p++){var u=i.Inputs[p];u.PictForm.QuantizedWidth=Math.round(u.PictForm.RawWidth/i.WidthTotalRaw*c),n+=o.getInputMetatemplateTemplateReference(t,u.DataType,u.PictForm.InputType,'getInput("'.concat(e.GroupIndex,'","').concat(r,'","').concat(p,'")'))}n+=o.getMetatemplateTemplateReference(t,"-Template-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}return n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}}])}(t("../Pict-Provider-DynamicLayout.js"));e.exports=n},{"../Pict-Provider-DynamicLayout.js":100}],131:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"generateGroupLayoutTemplate",value:function(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.")),"";var o=this.pict.providers.MetatemplateGenerator,n="",r="";n+=o.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var i=0,a=0;a<e.supportingManifest.elementAddresses.length;a++){var s=e.supportingManifest.elementAddresses[a],l=e.supportingManifest.elementDescriptors[s];"PictForm"in l||(l.PictForm={}),l.PictForm.TabularHidden||(l.PictForm.InputIndex=a,l.PictForm.GroupIndex=e.GroupIndex,l.PictForm.Row&&(l.PictForm.RowIndex=l.PictForm.Row,l.PictForm.RowIndex>i&&(i=l.PictForm.RowIndex)))}for(var c=0;c<e.supportingManifest.elementAddresses.length;c++){var p=e.supportingManifest.elementAddresses[c],u=e.supportingManifest.elementDescriptors[p];"PictForm"in u||(u.PictForm={}),u.PictForm.TabularHidden||(u.PictForm.RowIndex||(u.PictForm.RowIndex=i+1))}for(var d=0;d<i+1;d++){r+=o.getMetatemplateTemplateReference(t,"-Template-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var h=0;h<e.supportingManifest.elementAddresses.length;h++){var f=e.supportingManifest.elementAddresses[h],m=e.supportingManifest.elementDescriptors[f];if(!m.PictForm.TabularHidden&&m.PictForm.RowIndex==d){r+=o.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Cell-Prefix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(h,'")'));var v="PictForm"in m&&m.PictForm.InputType?m.PictForm.InputType:"Default";r+=o.getTabularInputMetatemplateTemplateReference(t,m.DataType,v,'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(h,'")'),e.GroupIndex,h),r+=o.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Cell-Postfix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(h,'")'))}}r+=o.getMetatemplateTemplateReference(t,"-Template-Row-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}var g="";return g+=o.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Row-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),g+=o.getMetatemplateTemplateReferenceRaw(t,"-RecordSetTemplate-Row-ExtraPrefix","Record"),g+="\n\n{~T:".concat(e.SectionTabularRowTemplateHash,":Record~}\n"),g+=o.getMetatemplateTemplateReferenceRaw(t,"-RecordSetTemplate-Row-ExtraPostfix","Record"),g+=o.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+=o.getMetatemplateTemplateReference(t,"-RecordSetTemplate-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowVirtualTemplateHash,g),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowTemplateHash,r),n}}])}(t("../Pict-Provider-DynamicLayout.js"));e.exports=n},{"../Pict-Provider-DynamicLayout.js":100}],132:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.pict&&r.pict.providers&&r.pict.providers.Icon&&"function"==typeof r.pict.providers.Icon.registerSet&&r.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>'}}),r.pict&&r.pict.CSSMap&&"function"==typeof r.pict.CSSMap.addCSS&&r.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),r}return _inherits(e,t),_createClass2(e,[{key:"_buildSortableHeaderCell",value:function(t,e,o,n){var r=e._SortState||{ColumnIndex:-1,Direction:"none"},i=r.ColumnIndex===n&&"none"!==r.Direction,a="Sort",s="pict-tabular-sort-none";i&&"asc"===r.Direction?(a="SortAscending",s="pict-tabular-sort-asc"):i&&"desc"===r.Direction&&(a="SortDescending",s="pict-tabular-sort-desc");var l="function"==typeof this.pict.icon?this.pict.icon(a):"",c=this._escapeHTML(o&&null!=o.Name?String(o.Name):"");return'\n\t\t\t\t\t\t<th data-tabular-column-index="'.concat(n,'">').concat(c," ")+'<span class="pict-tabular-sort-control '.concat(s,'" ')+"onclick=\"_Pict.providers['Pict-Layout-Tabular'].sortTabularColumn('".concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(n,')">')+"".concat(l,"</span></th>\n")}},{key:"_getTabularCellValue",value:function(t,e,o){if(e&&o&&t.supportingManifest){var n=e.PictForm&&"string"==typeof e.PictForm.InformaryDataAddress&&e.PictForm.InformaryDataAddress.length>0?e.PictForm.InformaryDataAddress:e.Hash;try{return t.supportingManifest.getValueByHash(o,n)}catch(t){return}}}},{key:"_compareTabularValues",value:function(t,e){var o=null==t?"":t,n=null==e?"":e,r=Number(o),i=Number(n);return""===o||""===n||isNaN(r)||isNaN(i)?String(o).localeCompare(String(n)):r<i?-1:r>i?1:0}},{key:"sortTabularColumn",value:function(t,e,o){var n=this,r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;var i=r.sectionDefinition.Groups[Number(e)];if(!i||!0!==i.ColumnSorting)return!1;var a=Number(o);if(isNaN(a)||a<0)return!1;i._SortState||(i._SortState={ColumnIndex:-1,Direction:"none"}),i._SortState.ColumnIndex===a&&"asc"===i._SortState.Direction?i._SortState.Direction="desc":(i._SortState.ColumnIndex=a,i._SortState.Direction="asc");var s=null;if(i.supportingManifest&&Array.isArray(i.supportingManifest.elementAddresses)){var l=i.supportingManifest.elementAddresses[a];s=i.supportingManifest.elementDescriptors[l]}var c=r.sectionManifest.getValueByHash(r.getMarshalDestinationObject(),i.RecordSetAddress);if(s&&Array.isArray(c)){var p="desc"===i._SortState.Direction?-1:1;c.sort(function(t,e){return n._compareTabularValues(n._getTabularCellValue(i,s,t),n._getTabularCellValue(i,s,e))*p})}return r.rebuildCustomTemplate(),r.render(),this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.marshalFormSections():r.marshalToView(),!0}},{key:"_parseTabularTemplate",value:function(t,e){if("string"!=typeof t)return"";if(-1===t.indexOf("{"))return t;try{var o=this.pict.parseTemplate(t,e,null);return"string"==typeof o?o:""}catch(t){return this.log.warn("PICT Form Tabular template parse failed: ".concat(t&&t.message)),""}}},{key:"_buildExpandedHeadersConfig",value:function(t,e){var o=[];if(Array.isArray(e.Headers))for(var n=0;n<e.Headers.length;n++){var r=e.Headers[n];if(Array.isArray(r)){for(var i=[],a=0;a<r.length;a++){var s=r[a];s&&"object"===_typeof(s)&&i.push({Label:"string"==typeof s.Label?s.Label:"",ColumnSpan:Number(s.ColumnSpan)>0?Number(s.ColumnSpan):1,CSSClass:"string"==typeof s.CSSClass?s.CSSClass:""})}o.push(i)}}var l=!1;if(Array.isArray(e.DynamicColumns))for(var c=0;c<e.DynamicColumns.length;c++)if(e.DynamicColumns[c]&&e.DynamicColumns[c].HeaderGroupTemplate){l=!0;break}if(l&&e.supportingManifest){for(var p=[],u=null,d=e.supportingManifest.elementAddresses,h=0;h<d.length;h++){var f=e.supportingManifest.elementDescriptors[d[h]];if(f&&(!f.PictForm||!f.PictForm.TabularHidden)){var m="number"==typeof f._DynamicColumnGeneratorIndex,v=m&&"string"==typeof f._DynamicColumnHeaderGroup?f._DynamicColumnHeaderGroup:"",g=m?"D".concat(f._DynamicColumnGeneratorIndex,"|").concat(v):"S|".concat(h);u&&u.RunKey===g?u.Cell.ColumnSpan+=1:(u={RunKey:g,Cell:{Label:m?v:"",ColumnSpan:1,CSSClass:m?"pict-tabular-dynamic-header-group":"pict-tabular-static-header-spacer"}},p.push(u.Cell))}}o.push(p)}return o}},{key:"_computeRowLabelMetadata",value:function(t,e){if(Array.isArray(e.RowLabels)&&0!==e.RowLabels.length){var o=[];if("string"==typeof e.RecordSetAddress&&e.RecordSetAddress.length>0){var n=t.getMarshalDestinationObject(),r=t.sectionManifest.getValueByHash(n,e.RecordSetAddress);Array.isArray(r)&&(o=r)}for(var i=[],a=0;a<o.length;a++){for(var s=o[a],l=[],c=0;c<e.RowLabels.length;c++){var p=e.RowLabels[c],u="";if(!0===p.RowNumber)u=String(a+1);else if("string"==typeof p.SourceAddress&&p.SourceAddress.length>0){var d=this.pict.resolveStateFromAddress(p.SourceAddress,null);if(Array.isArray(d)&&a<d.length){var h=d[a];u="string"==typeof h?h:null==h?"":String(h)}}else"string"==typeof p.Template&&(u=this._parseTabularTemplate(p.Template,{Value:s,Key:a}));l.push({Label:p.Name||"",RenderedLabel:u,RowSpan:1,Skip:!1,Cluster:!0===p.Cluster,CSSClass:"string"==typeof p.CSSClass?p.CSSClass:""})}i.push({Cells:l})}for(var f=0;f<e.RowLabels.length;f++)if(e.RowLabels[f].Cluster)for(var m=0,v=1;v<=i.length;v++){if(!(v===i.length)&&i[v].Cells[f].RenderedLabel===i[m].Cells[f].RenderedLabel)i[v].Cells[f].Skip=!0;else{var g=v-m;i[m].Cells[f].RowSpan=g,m=v}}e.RowLabelMetadata=i}else e.RowLabelMetadata=[]}},{key:"_renderTabularRowLabelsHTML",value:function(t,e,o){if(!t||!t.sectionDefinition||!Array.isArray(t.sectionDefinition.Groups))return"";var n=Number(e);if(isNaN(n)||n<0||n>=t.sectionDefinition.Groups.length)return"";var r=t.sectionDefinition.Groups[n],i=Number(o);0===i&&this._computeRowLabelMetadata(t,r);var a="";if(r._RowSelectionConfig&&!isNaN(i)&&i>=0){var s=this._getTabularSelectionArray(t,r._RowSelectionConfig)[i]?' checked="checked"':"";a+='<td class="pict-tabular-row-select">'+'<input type="checkbox"'.concat(s," onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularRowSelection('").concat(t.Hash,"', ").concat(n,", '").concat(i,"', this.checked)\">")+"</td>"}if(Array.isArray(r.RowLabelMetadata)&&!isNaN(i)&&i>=0&&i<r.RowLabelMetadata.length)for(var l=r.RowLabelMetadata[i].Cells,c=0;c<l.length;c++){var p=l[c];if(!p.Skip){var u=p.RowSpan>1?' rowspan="'.concat(p.RowSpan,'"'):"",d="pict-row-label".concat(p.Cluster?" pict-row-label-clustered":"").concat(p.CSSClass?" "+p.CSSClass:"");a+="<td".concat(u,' class="').concat(d,'">').concat(this._escapeHTML(p.RenderedLabel),"</td>")}}return a}},{key:"_renderTabularEditingControlsHTML",value:function(t,e,o){if(!t)return"";var n=t.Hash;return'<td class="pict-tabular-editing-controls"><a href="#/" onClick="_Pict.views[\''.concat(n,"'].deleteDynamicTableRow(").concat(e,",'").concat(o,'\')">del</a> <a href="#/" onClick="_Pict.views[\'').concat(n,"'].moveDynamicTableRowUp(").concat(e,",'").concat(o,'\')">up</a> <a href="#/" onClick="_Pict.views[\'').concat(n,"'].moveDynamicTableRowDown(").concat(e,",'").concat(o,"')\">down</a></td>")}},{key:"_escapeHTML",value:function(t){return"string"!=typeof t?"":t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}},{key:"_normalizeSelectionConfig",value:function(t,e,o){if(!0!==t&&("object"!==_typeof(t)||null===t))return null;var 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||"":o,HeaderLabel:"string"==typeof n.HeaderLabel?n.HeaderLabel:""}}},{key:"_getTabularSelectionAddress",value:function(t,e){return"".concat(t.getMarshalDestinationAddress(),".").concat(e.DataAddress)}},{key:"_getTabularSelectionArray",value:function(t,e){var o=this.pict.resolveStateFromAddress(this._getTabularSelectionAddress(t,e));return Array.isArray(o)?o:[]}},{key:"_setTabularSelectionFlag",value:function(t,e,o,n){var r=this._getTabularSelectionArray(t,e),i=Number(o);return!isNaN(i)&&i>=0&&(r[i]=!!n),this.pict.setStateValueAtAddress(this._getTabularSelectionAddress(t,e),null,r),r}},{key:"toggleTabularRowSelection",value:function(t,e,o,n){var r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;var i=r.sectionDefinition.Groups[Number(e)];return!(!i||!i._RowSelectionConfig)&&(this._setTabularSelectionFlag(r,i._RowSelectionConfig,o,n),i._RowSelectionConfig.HighlightClass&&this.pict.providers.DynamicFormSolverBehaviors&&this.pict.providers.DynamicFormSolverBehaviors.highlightTabularRow(r.sectionDefinition.Hash,i.Hash,o,n?1:0,i._RowSelectionConfig.HighlightClass),this.pict.PictApplication.solve(),!0)}},{key:"toggleTabularColumnSelection",value:function(t,e,o,n){var r=this.pict.views[t];if(!r||!r.sectionDefinition||!Array.isArray(r.sectionDefinition.Groups))return!1;var i=r.sectionDefinition.Groups[Number(e)];return!(!i||!i._ColumnSelectionConfig)&&(this._setTabularSelectionFlag(r,i._ColumnSelectionConfig,o,n),i._ColumnSelectionConfig.HighlightClass&&this.pict.providers.DynamicFormSolverBehaviors&&this.pict.providers.DynamicFormSolverBehaviors.highlightTabularColumn(r.sectionDefinition.Hash,i.Hash,o,n?1:0,i._ColumnSelectionConfig.HighlightClass),this.pict.PictApplication.solve(),!0)}},{key:"_reapplyTabularSelectionHighlights",value:function(t,e){var o=this.pict.providers.DynamicFormSolverBehaviors;if(o&&t.sectionDefinition){var n=t.sectionDefinition.Hash;if(e._RowSelectionConfig&&e._RowSelectionConfig.HighlightClass)for(var r=this._getTabularSelectionArray(t,e._RowSelectionConfig),i=0;i<r.length;i++)o.highlightTabularRow(n,e.Hash,i,r[i]?1:0,e._RowSelectionConfig.HighlightClass);if(e._ColumnSelectionConfig&&e._ColumnSelectionConfig.HighlightClass)for(var a=this._getTabularSelectionArray(t,e._ColumnSelectionConfig),s=0;s<a.length;s++)o.highlightTabularColumn(n,e.Hash,s,a[s]?1:0,e._ColumnSelectionConfig.HighlightClass)}}},{key:"generateGroupLayoutTemplate",value:function(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.")),"";var o=this.pict.providers.MetatemplateGenerator,n="",r="",i="string"==typeof e.EditingControlsPosition?e.EditingControlsPosition:"right",a=Array.isArray(e.RowLabels)?e.RowLabels:[],s=!0===e.SuppressDefaultColumnHeaderRow,l=!0===e.ColumnSorting;l&&!e._SortState&&(e._SortState={ColumnIndex:-1,Direction:"none"});var c=this._buildExpandedHeadersConfig(t,e);e.ExpandedHeaders=c,e.RowLabelHeaderCells=a.map(function(t){return{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");var p=null!=e._RowSelectionConfig,u=null!=e._ColumnSelectionConfig,d="left"===i,h="right"===i,f=(p?1:0)+a.length+(d?1:0);"left"!==i&&"hidden"!==i||(this.pict.TemplateProvider.addTemplate(t.getViewSpecificTemplateHash("-TabularTemplate-Row-ExtraPostfix"),""),this.pict.TemplateProvider.addTemplate(t.getViewSpecificTemplateHash("-TabularTemplate-RowHeader-ExtraPostfix"),"")),n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var m=0;m<c.length;m++){var v=c[m];n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderRow-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var g=0;g<f;g++)n+='<th class="pict-row-label-spacer"></th>';for(var w=0;w<v.length;w++){var y='getGroup("'.concat(e.GroupIndex,'").ExpandedHeaders.').concat(m,".").concat(w);n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderCell",y)}h&&(n+='<th class="pict-row-label-spacer"></th>'),n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-ExtraHeaderRow-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}if(u){for(var b=this._getTabularSelectionArray(t,e._ColumnSelectionConfig),D='<tr class="pict-tabular-column-select-row">',P=0;P<f;P++)D+='<th class="pict-row-label-spacer"></th>';for(var T=0;T<e.supportingManifest.elementAddresses.length;T++){var S=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[T]];if(!(!S||S.PictForm&&S.PictForm.TabularHidden)){var F=b[T]?' checked="checked"':"";D+='<th class="pict-tabular-column-select">'+'<input type="checkbox"'.concat(F," onchange=\"_Pict.providers['Pict-Layout-Tabular'].toggleTabularColumnSelection('").concat(t.Hash,"', ").concat(e.GroupIndex,", ").concat(T,', this.checked)">')+"</th>"}}h&&(D+='<th class="pict-row-label-spacer"></th>'),n+=D+="</tr>"}n+=o.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(var C=0;C<a.length;C++){var x='getGroup("'.concat(e.GroupIndex,'").RowLabelHeaderCells.').concat(C);n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-RowLabel-HeaderCell",x)}d&&(n+='<th class="pict-row-label-header pict-tabular-editing-controls-header"></th>');for(var _=0,A=0;A<e.supportingManifest.elementAddresses.length;A++){var I=e.supportingManifest.elementAddresses[A],k=e.supportingManifest.elementDescriptors[I];if("PictForm"in k||(k.PictForm={}),!k.PictForm.TabularHidden){k.PictForm.InputIndex=A,k.PictForm.GroupIndex=e.GroupIndex,k.PictForm.RowIndex=0,s||(n+=l?this._buildSortableHeaderCell(t,e,k,A):o.getMetatemplateTemplateReference(t,"-TabularTemplate-HeaderCell",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(A,'")'))),r+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-Cell-Prefix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(A,'")'));var H="PictForm"in k&&k.PictForm.InputType?k.PictForm.InputType:"Default";r+=o.getTabularInputMetatemplateTemplateReference(t,k.DataType,H,'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(A,'")'),e.GroupIndex,A),r+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-Cell-Postfix",'getTabularRecordInput("'.concat(e.GroupIndex,'","').concat(A,'")')),_++}}n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-ExtraPostfix",'getGroup("'.concat(e.GroupIndex,'")')),n+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-RowHeader-Postfix",'getGroup("'.concat(e.GroupIndex,'")'));for(var R=0;R<c.length;R++){for(var M=0,V=0;V<c[R].length;V++)M+=c[R][V].ColumnSpan||1;M!==_&&this.log.warn("PICT Form [".concat(t.UUID,"]::[").concat(t.Hash,"] tabular group [").concat(e.Hash,"] header row ").concat(R," total ColumnSpan (").concat(M,") does not match data column count (").concat(_,"). Header will visually misalign."))}this._computeRowLabelMetadata(t,e);var E="";return E+=o.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-Prefix","Record"),E+=o.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-ExtraPrefix","Record"),(a.length>0||p)&&(E+="{~TRL:".concat(t.Hash,"~}")),d&&(E+="{~TEC:".concat(t.Hash,"~}")),E+="\n\n{~T:".concat(e.SectionTabularRowTemplateHash,":Record~}\n"),E+=o.getMetatemplateTemplateReferenceRaw(t,"-TabularTemplate-Row-ExtraPostfix","Record"),E+=o.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+=o.getMetatemplateTemplateReference(t,"-TabularTemplate-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowVirtualTemplateHash,E),this.pict.TemplateProvider.addTemplate(e.SectionTabularRowTemplateHash,r),n}},{key:"onDataMarshalToForm",value:function(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){var o=this.fable.ManifestFactory._resolveDynamicColumns(t,e);if(o&&o.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}}])}(t("../Pict-Provider-DynamicLayout.js"));e.exports=n},{"../Pict-Provider-DynamicLayout.js":100}],133:[function(t,e,o){var n=t("../Pict-Provider-DynamicLayout.js"),r=t("./Pict-Layout-TuiGrid/Pict-Section-TuiGrid.js"),i=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).options,r.pict,r.log,r.viewGridConfigurations={},r.viewTuiGrids={},r.viewGridState={},r}return _inherits(e,t),_createClass2(e,[{key:"getGridHtmlID",value:function(t,e){return"View-".concat(t.UUID,"-GroupTuiGrid-").concat(e.GroupIndex)}},{key:"getViewTuiHtmlID",value:function(t,e){return"#".concat(this.getGridHtmlID(t,e))}},{key:"getViewGrid",value:function(t,e){var o=this.getGridHtmlID(t,e);return this.viewTuiGrids.hasOwnProperty(o)?this.viewTuiGrids[o]:null}},{key:"createViewTuiGrid",value:function(t,e){var o=this.getGridHtmlID(t,e);this.viewTuiGrids.hasOwnProperty(o)&&this.log.info("Dynamic TuiGrid view [".concat(t.UUID,"]::[").concat(t.Hash,"] is reinitializing a TuiGrid in group ").concat(e.GroupIndex," TuiGrid UUID [").concat(o,"]."));var n=this.getViewTuiConfiguration(t,e),i=this.pict.addView(o,n,r);return i.cachedGridData=this.generateDataRepresentation(t,e),i.initialize(),this.viewTuiGrids[o]=i,i}},{key:"getViewTuiConfiguration",value:function(t,e){var o,n,i=this.getGridHtmlID(t,e);if(!this.viewGridConfigurations.hasOwnProperty(i)){var a=JSON.parse(JSON.stringify(r.default_configuration));this.viewGridConfigurations[i]=a,a.DefaultDestinationAddress=this.getViewTuiHtmlID(t,e),a.TargetElementAddress=this.getViewTuiHtmlID(t,e),a.TuiColumnSchema=[];for(var s=0;s<e.supportingManifest.elementAddresses.length;s++){var l=e.supportingManifest.elementAddresses[s],c=e.supportingManifest.elementDescriptors[l];"PictForm"in c||(c.PictForm={}),c.PictForm.InputIndex=s,c.PictForm.GroupIndex=e.GroupIndex,c.PictForm.RowIndex=0;var p={header:c.Name,name:c.Hash,PictTriggerSolveOnChange:!0,PictSectionFormInput:c};switch(c.DataType){case"Number":case"PreciseNumber":p.editor={type:"EditorNumber",options:{}},p.editor.options.decimalPrecision=null!==(o=null==c||null===(n=c.PictForm)||void 0===n?void 0:n.DecimalPrecision)&&void 0!==o?o:10;break;case"String":p.editor="text";break;case"DateTime":p.editor={type:"datePicker",options:{format:"yyyy-MM-dd"}}}if("Option"===c.PictForm.InputType){p.editor={type:"select",options:{listItems:[]}};var u=c.PictForm.SelectOptions;if(c.PictForm.SelectOptionsPickList&&this.pict.providers.DynamicMetaLists.hasList(t.Hash,c.PictForm.SelectOptionsPickList)&&(u=this.pict.providers.DynamicMetaLists.getList(t.Hash,c.PictForm.SelectOptionsPickList)),u&&Array.isArray(u))for(var d=0;d<u.length;d++){var h={value:u[d].id,text:u[d].text};p.editor.options.listItems.push(h)}}a.TuiColumnSchema.push(p)}}return this.viewGridConfigurations[i]}},{key:"generateGroupLayoutTemplate",value:function(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.")),"";var o=this.pict.providers.MetatemplateGenerator,n="";return n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),e.TuiGridHTMLID=this.getGridHtmlID(t,e),n+=o.getMetatemplateTemplateReference(t,"-TuiGrid-Container",'getGroup("'.concat(e.GroupIndex,'")')),n+=o.getMetatemplateTemplateReference(t,"-TuiGrid-Controls",'getGroup("'.concat(e.GroupIndex,'")')),n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}},{key:"generateDataRepresentation",value:function(t,e){var o=[];this.viewGridState[this.getGridHtmlID(t,e)]=o;var n=t.getTabularRecordSet(e.GroupIndex);if(Array.isArray(n))for(var r=0;r<n.length;r++){for(var i={RecordIndex:r},a=n[r],s=0;s<e.supportingManifest.elementAddresses.length;s++){var l=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[s]];l&&e.supportingManifest.setValueAtAddress(i,l.Hash,e.supportingManifest.getValueByHash(a,l.Hash))}o.push(i)}return o}},{key:"onGroupLayoutInitialize",value:function(t,e){var o=this.createViewTuiGrid(t,e);if(o.render(),o.tuiGrid){var n=o.tuiGrid;n.View=t,n.Group=e}return!0}},{key:"onDataMarshalToForm",value:function(t,e){var o=this.getViewGrid(t,e);if(!o)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;var n=t.getTabularRecordSet(e.GroupIndex),r=o.tuiGrid.getData();if(Array.isArray(n))for(var i=0;i<n.length;i++)try{for(var a=n[i],s=r[i],l=0;l<e.supportingManifest.elementAddresses.length;l++){var c=e.supportingManifest.elementDescriptors[e.supportingManifest.elementAddresses[l]];if(c){var p=e.supportingManifest.getValueAtAddress(s,c.Hash),u=e.supportingManifest.getValueByHash(a,c.Hash);p!==u&&(this.log.trace("PICT Form TuiGrid Dynamic View [".concat(t.UUID,"]::[").concat(t.Hash,"] updating tabular record ").concat(i," element ").concat(c.Hash," from [").concat(p,"] to [").concat(u,"].")),o.tuiGrid.setValue(i,c.Hash,u))}}}catch(e){this.log.error("PICT Form TuiGrid [".concat(t.UUID,"]::[").concat(t.Hash,"] gross error marshalling data to form: ").concat(e))}return!0}},{key:"addRow",value:function(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;var o=this.pict.views[t],n=o.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;var r=o.sectionManifest.getValueByHash(o.getMarshalDestinationObject(),n.RecordSetAddress),i=n.supportingManifest.populateDefaults({});if(Array.isArray(r))r.push(i);else if("object"===_typeof(r)){r[o.fable.getUUID()]=i}var a=this.getViewGrid(o,n);a&&a.tuiGrid.appendRow(JSON.parse(JSON.stringify(i)))}}])}(n);e.exports=i},{"../Pict-Provider-DynamicLayout.js":100,"./Pict-Layout-TuiGrid/Pict-Section-TuiGrid.js":134}],134:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).viewGridConfigurations={},r.cachedGridData=[],r}return _inherits(e,t),_createClass2(e,[{key:"customConfigureGridSettings",value:function(){return this.gridSettings.data=this.cachedGridData,_superPropGet(e,"customConfigureGridSettings",this,3)([])}},{key:"changeHandler",value:function(t){for(var o=0;o<t.changes.length;o++){var n=t.changes[o],r=t.instance.getValue(n.rowKey,"RecordIndex");t.instance.View.setDataTabularByHash(t.instance.Group.GroupIndex,n.columnName,r,n.value)}return _superPropGet(e,"changeHandler",this,3)([t])}}])}(t("pict-section-tuigrid"));e.exports=n},{"pict-section-tuigrid":163}],135:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r}return _inherits(e,t),_createClass2(e,[{key:"generateGroupLayoutTemplate",value:function(t,e){var o=this.pict.providers.MetatemplateGenerator,n="";"Rows"in e||(e.Rows=[]),n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Prefix",'getGroup("'.concat(e.GroupIndex,'")')),n+=o.getMetatemplateTemplateReference(t,"-Template-VerticalRow-Prefix",'getGroup("'.concat(e.GroupIndex,'")'));for(var r=0;r<e.Rows.length;r++)for(var i=e.Rows[r],a=0;a<i.Inputs.length;a++){var s=i.Inputs[a];s.PictForm.InputIndex=a,s.PictForm.GroupIndex=e.GroupIndex,s.PictForm.RowIndex=r,n+=o.getVerticalInputMetatemplateTemplateReference(t,s.DataType,s.PictForm.InputType,'getInput("'.concat(e.GroupIndex,'","').concat(r,'","').concat(a,'")'))}return n+=o.getMetatemplateTemplateReference(t,"-Template-VerticalRow-Postfix",'getGroup("'.concat(e.GroupIndex,'")')),n+=o.getMetatemplateTemplateReference(t,"-Template-Group-Postfix",'getGroup("'.concat(e.GroupIndex,'")'))}}])}(t("../Pict-Provider-DynamicLayout.js"));e.exports=n},{"../Pict-Provider-DynamicLayout.js":100}],136:[function(t,e,o){var n=function(t){function e(t,o,n){var r;_classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).fable,r.log,r.UUID,r.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"],r.CSV_COLUMN_MAP={};for(var i=0;i<r.CSV_HEADER.length;i++){var a=r.CSV_HEADER[i];r.CSV_COLUMN_MAP[a]=i}return r}return _inherits(e,t),_createClass2(e,[{key:"getRowFromDescriptor",value:function(t,e,o){var n=new Array(this.CSV_HEADER.length).fill("");if(!o||"object"!==_typeof(o)||!e||"string"!=typeof e)return!1;var r,i=o.PictForm;if(n[this.CSV_COLUMN_MAP.Form]=t,n[this.CSV_COLUMN_MAP["Form Name"]]=o.FormName||"",n[this.CSV_COLUMN_MAP.SubManifest]="",n[this.CSV_COLUMN_MAP.DataOnly]=void 0===i?"1":"",n[this.CSV_COLUMN_MAP["Section Name"]]="",n[this.CSV_COLUMN_MAP["Section Hash"]]=i&&i.Section?i.Section:o.FormSection?o.FormSection:"",n[this.CSV_COLUMN_MAP["Group Name"]]="",n[this.CSV_COLUMN_MAP["Group Hash"]]=i&&i.Group?i.Group:o.FormGroup?o.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]=i&&i.Row?i.Row:"",n[this.CSV_COLUMN_MAP.Width]=i&&i.Width?i.Width:"",n[this.CSV_COLUMN_MAP["Minimum Row Count"]]="",n[this.CSV_COLUMN_MAP["Maximum Row Count"]]="",n[this.CSV_COLUMN_MAP["Input Address"]]=o.DataAddress?o.DataAddress:e,n[this.CSV_COLUMN_MAP["Input Name"]]=o.Name||o.DataAddress||e,n[this.CSV_COLUMN_MAP["Input Hash"]]=o.Hash||e,n[this.CSV_COLUMN_MAP["Input Extra"]]="",n[this.CSV_COLUMN_MAP.Units]=i&&i.Units?i.Units:"",n[this.CSV_COLUMN_MAP.DataType]=o.DataType||"String",n[this.CSV_COLUMN_MAP["Decimal Precision"]]=i&&i.DecimalPrecision?i.DecimalPrecision:"",n[this.CSV_COLUMN_MAP.InputType]=i&&i.InputType?i.InputType:"",n[this.CSV_COLUMN_MAP.Equation]="",n[this.CSV_COLUMN_MAP["Equation Ordinal"]]="",n[this.CSV_COLUMN_MAP.Default]=void 0!==o.Default?o.Default:"",n[this.CSV_COLUMN_MAP.Description]=o.Description?o.Description:"",n[this.CSV_COLUMN_MAP.Tooltip]=i&&i.Tooltip?i.Tooltip:"",n[this.CSV_COLUMN_MAP["Input Notes"]]=i&&i.SpreadsheetNotes?i.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]="",i&&i.EntitiesBundle&&Array.isArray(i.EntitiesBundle)&&i.EntitiesBundle.length>0){var a=i.EntitiesBundle[0];if(a.Entity&&(n[this.CSV_COLUMN_MAP.Entity]=a.Entity),a.Filter){var s=a.Filter,l=s.indexOf("FBV~"),c=s.indexOf("~EQ~");if(l>=0&&c>l){var p=s.substring(l+4,c);n[this.CSV_COLUMN_MAP.EntityColumnFilter]=p}}a.Destination&&(n[this.CSV_COLUMN_MAP.EntityDestination]=a.Destination),a.SingleRecord&&(n[this.CSV_COLUMN_MAP.EntitySingleRecord]="true")}(n[this.CSV_COLUMN_MAP.TriggerGroup]="",n[this.CSV_COLUMN_MAP.TriggerAddress]="",n[this.CSV_COLUMN_MAP.TriggerAllInputs]="",n[this.CSV_COLUMN_MAP.MarshalEmptyValues]="",i&&i.AutofillTriggerGroup)&&(Array.isArray(i.AutofillTriggerGroup)&&i.AutofillTriggerGroup.length>0?r=i.AutofillTriggerGroup[0]:"object"===_typeof(i.AutofillTriggerGroup)&&(r=i.AutofillTriggerGroup),r&&(r.TriggerGroupHash&&(n[this.CSV_COLUMN_MAP.TriggerGroup]=r.TriggerGroupHash),r.TriggerAllInputs&&(n[this.CSV_COLUMN_MAP.TriggerAllInputs]="true"),r.TriggerAddress&&(n[this.CSV_COLUMN_MAP.TriggerAddress]=r.TriggerAddress),r.MarshalEmptyValues&&(n[this.CSV_COLUMN_MAP.MarshalEmptyValues]="true")));if(n[this.CSV_COLUMN_MAP.ChartType]=i&&i.ChartType?i.ChartType:"",n[this.CSV_COLUMN_MAP.ChartLabelsAddress]=i&&i.ChartLabelsAddress?i.ChartLabelsAddress:"",n[this.CSV_COLUMN_MAP.ChartLabelsSolver]=i&&i.ChartLabelsSolver?i.ChartLabelsSolver:"",n[this.CSV_COLUMN_MAP.ChartDatasetsAddress]=i&&i.ChartDatasetsAddress?i.ChartDatasetsAddress:"",n[this.CSV_COLUMN_MAP.ChartDatasetsLabel]=i&&i.ChartDatasetsSolvers&&Array.isArray(i.ChartDatasetsSolvers)&&i.ChartDatasetsSolvers.length>0?i.ChartDatasetsSolvers[0].Label:"",n[this.CSV_COLUMN_MAP.ChartDatasetsSolvers]=i&&i.ChartDatasetsSolvers&&Array.isArray(i.ChartDatasetsSolvers)&&i.ChartDatasetsSolvers.length>0?i.ChartDatasetsSolvers[0].DataSolver:"",i&&"Option"==i.InputType&&i.SelectOptions&&Array.isArray(i.SelectOptions)){for(var u="",d=0;d<i.SelectOptions.length;d++){var h=i.SelectOptions[d];h.id&&h.text&&(u.length>0&&(u+=","),u+="".concat(h.id,"^").concat(h.text))}n[this.CSV_COLUMN_MAP["Input Extra"]]=u}return n}},{key:"createTabularArrayFromManifests",value:function(t){var e=[],o="Default";if(t&&t.Scope&&"string"==typeof t.Scope&&(o=t.Scope),t&&t.Form&&"string"==typeof t.Form&&(o=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;for(var n=Object.keys(t.Descriptors),r=0;r<n.length;r++){var i=n[r],a=t.Descriptors[i];if(a&&"object"===_typeof(a)){var s=this.getRowFromDescriptor(o,i,a);s&&e.push(s)}}for(var l=0;l<t.Sections.length;l++){var c=t.Sections[l],p=c.Hash||"DEFAULT_SECTION_HASH";if(c&&"object"===_typeof(c)){if(c.Groups&&Array.isArray(c.Groups))for(var u=0;u<c.Groups.length;u++){var d=c.Groups[u],h=d.Hash;if(("Tabular"==d.Layout||"RecordSet"==d.Layout)&&d.RecordSetAddress&&d.RecordManifest){for(var f=-1,m=0;m<e.length;m++){var v=e[m];if(v&&Array.isArray(v)&&v.length>=this.CSV_HEADER.length){var g=v[this.CSV_COLUMN_MAP["Section Hash"]],w=v[this.CSV_COLUMN_MAP["Group Hash"]];if(g===p&&w===h){f=m;break}if(v[this.CSV_COLUMN_MAP["Input Address"]]===d.RecordSetAddress){v[this.CSV_COLUMN_MAP["Section Hash"]]=p,v[this.CSV_COLUMN_MAP["Group Hash"]]=h,f=m;break}}}if(f>=0){var y=e[f];y[this.CSV_COLUMN_MAP.SubManifest]=d.RecordManifest,y[this.CSV_COLUMN_MAP.GroupRecordSetAddress]=d.RecordSetAddress,y[this.CSV_COLUMN_MAP.HideTabularEditingControls]=d.HideTabularEditingControls,d.MinimumRowCount&&(y[this.CSV_COLUMN_MAP["Minimum Row Count"]]=d.MinimumRowCount),d.MaximumRowCount&&(y[this.CSV_COLUMN_MAP["Maximum Row Count"]]=d.MaximumRowCount);for(var b=t.ReferenceManifests[d.RecordManifest],D=Object.keys(b.Descriptors),P=0;P<D.length;P++){var T=D[P],S=b.Descriptors[T];if(S&&"object"===_typeof(S)){var F=this.getRowFromDescriptor(o,T,S);F&&(F[this.CSV_COLUMN_MAP["Section Hash"]]=p,F[this.CSV_COLUMN_MAP["Group Hash"]]=h,F[this.CSV_COLUMN_MAP.SubManifest]=d.RecordManifest,e.splice(f+1,0,F))}}}}if(h)for(var C=0;C<e.length;C++){var x=e[C];if(x&&Array.isArray(x)&&x.length>=this.CSV_HEADER.length)x[this.CSV_COLUMN_MAP["Group Hash"]]===h&&(x[this.CSV_COLUMN_MAP["Group Name"]]=d.Name||h,d.Layout&&(x[this.CSV_COLUMN_MAP["Group Layout"]]=d.Layout),d.hasOwnProperty("ShowTitle")&&(x[this.CSV_COLUMN_MAP["Group Show Title"]]=d.ShowTitle),d.hasOwnProperty("CSSClass")&&(x[this.CSV_COLUMN_MAP["Group CSS"]]=d.CSSClass))}}for(var _=0;_<e.length;_++){var A=e[_];if(A&&Array.isArray(A)&&A.length>=this.CSV_HEADER.length)A[this.CSV_COLUMN_MAP["Section Hash"]]===p&&(A[this.CSV_COLUMN_MAP["Section Name"]]=c.Name||p)}if(c.Solvers&&Array.isArray(c.Solvers))for(var I=0;I<c.Solvers.length;I++){for(var k=c.Solvers[I],H=!1,R=0;R<e.length;R++){var M=e[R];if(M&&Array.isArray(M)&&M.length>=this.CSV_HEADER.length){var V=M[this.CSV_COLUMN_MAP["Section Hash"]],E=M[this.CSV_COLUMN_MAP.Equation],L=M[this.CSV_COLUMN_MAP.SubManifest];if(!(V!==p||L&&""!=L||E&&0!=E.length)){"string"==typeof k?(M[this.CSV_COLUMN_MAP.Equation]=k,M[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"===_typeof(k)&&k.Expression&&(M[this.CSV_COLUMN_MAP.Equation]=k.Expression,M[this.CSV_COLUMN_MAP["Equation Ordinal"]]=k.Ordinal||1),H=!0;break}}}if(!H){var N=new Array(this.CSV_HEADER.length).fill("");N[this.CSV_COLUMN_MAP.Form]=o,N[this.CSV_COLUMN_MAP["Section Hash"]]=p,N[this.CSV_COLUMN_MAP.DataOnly]="1",N[this.CSV_COLUMN_MAP.DataType]="String",N[this.CSV_COLUMN_MAP.InputType]="Hidden";var O="Solver_for_".concat(p,"_").concat(I+1);N[this.CSV_COLUMN_MAP["Input Hash"]]=O,N[this.CSV_COLUMN_MAP["Input Name"]]="Auto gen hidden solver entry for ".concat(c.Name||p," #").concat(I+1),N[this.CSV_COLUMN_MAP["Input Address"]]=O,"string"==typeof k?(N[this.CSV_COLUMN_MAP.Equation]=k,N[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"===_typeof(k)&&k.Expression&&(N[this.CSV_COLUMN_MAP.Equation]=k.Expression,N[this.CSV_COLUMN_MAP["Equation Ordinal"]]=k.Ordinal||1);for(var G=-1,B=0;B<e.length;B++){var j=e[B];if(j&&Array.isArray(j)&&j.length>=this.CSV_HEADER.length)j[this.CSV_COLUMN_MAP["Section Hash"]]===p&&(G=B)}G>=0?e.splice(G+1,0,N):e.push(N)}}if(c.Groups&&Array.isArray(c.Groups))for(var z=0;z<c.Groups.length;z++){var U=c.Groups[z],W=U.Hash;if(U.RecordSetSolvers&&Array.isArray(U.RecordSetSolvers))for(var Y=0;Y<U.RecordSetSolvers.length;Y++){for(var q=U.RecordSetSolvers[Y],X=!1,J=0;J<e.length;J++){var K=e[J];if(K&&Array.isArray(K)&&K.length>=this.CSV_HEADER.length){var $=K[this.CSV_COLUMN_MAP["Group Hash"]],Z=K[this.CSV_COLUMN_MAP.Equation],Q=K[this.CSV_COLUMN_MAP.SubManifest];if($===W&&Q==U.RecordManifest&&(!Z||0==Z.length)){"string"==typeof q?(K[this.CSV_COLUMN_MAP.Equation]=q,K[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"===_typeof(q)&&q.Expression&&(K[this.CSV_COLUMN_MAP.Equation]=q.Expression,K[this.CSV_COLUMN_MAP["Equation Ordinal"]]=q.Ordinal||1),X=!0;break}}}if(!X){var tt=new Array(this.CSV_HEADER.length).fill("");tt[this.CSV_COLUMN_MAP.Form]=o,tt[this.CSV_COLUMN_MAP["Section Hash"]]=p,tt[this.CSV_COLUMN_MAP["Group Hash"]]=W,tt[this.CSV_COLUMN_MAP.SubManifest]=U.RecordManifest,tt[this.CSV_COLUMN_MAP.DataOnly]="1";var et="Solver_for_".concat(W,"_").concat(Y+1);tt[this.CSV_COLUMN_MAP["Input Hash"]]=et,tt[this.CSV_COLUMN_MAP["Input Name"]]="Auto gen hidden solver entry for ".concat(U.Name||W," #").concat(Y+1),tt[this.CSV_COLUMN_MAP["Input Address"]]=et,tt[this.CSV_COLUMN_MAP.DataType]="String",tt[this.CSV_COLUMN_MAP.InputType]="Hidden","string"==typeof q?(tt[this.CSV_COLUMN_MAP.Equation]=q,tt[this.CSV_COLUMN_MAP["Equation Ordinal"]]=1):"object"===_typeof(q)&&q.Expression&&(tt[this.CSV_COLUMN_MAP.Equation]=q.Expression,tt[this.CSV_COLUMN_MAP["Equation Ordinal"]]=q.Ordinal||1);for(var ot=-1,nt=0;nt<e.length;nt++){var rt=e[nt];if(rt&&Array.isArray(rt)&&rt.length>=this.CSV_HEADER.length)rt[this.CSV_COLUMN_MAP["Group Hash"]]===W&&(ot=nt)}ot>=0?e.splice(ot+1,0,tt):e.push(tt)}}}}}if(e.length>1){var it=e[1];it&&t.FormName&&(it[this.CSV_COLUMN_MAP["Form Name"]]=t.FormName||it[this.CSV_COLUMN_MAP["Form Name"]])}return e}}])}(t("fable-serviceproviderbase"));e.exports=n},{"fable-serviceproviderbase":26}],137:[function(t,e,o){var n=t("fable-serviceproviderbase"),r={Manifest:{Scope:"Default"}},i=function(t){function e(t,o,n){var i;_classCallCheck(this,e);var a=Object.assign({},JSON.parse(JSON.stringify(r)),o);(i=_callSuper(this,e,[t,o,n])).fable,i.log,i.UUID,i.manifest=a.Manifest,"Descriptors"in i.manifest||(i.manifest.Descriptors={}),"Sections"in i.manifest||(i.manifest.Sections=[]),"ReferenceManifests"in i.manifest||(i.manifest.ReferenceManifests={}),i.referenceManifestFactories={},i.sectionHashLookup={},i.groupHashLookup={};for(var s=Object.keys(i.manifest.ReferenceManifests),l=0;l<s.length;l++)i.referenceManifestFactories[s[l]]=i.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",i.manifest.ReferenceManifests[s[l]],"".concat(i.UUID,"-").concat(s[l]));return i.defaultHashCounter=0,i._SanitizeObjectKeyRegex=/[^a-zA-Z0-9_]/gi,i._SanitizeObjectKeyReplacement="_",i._SanitizeObjectKeyInvalid="INVALID",i}return _inherits(e,t),_createClass2(e,[{key:"sanitizeObjectKey",value:function(t){return"string"!=typeof t||t.length<1?this._SanitizeObjectKeyInvalid:t.replace(this._SanitizeObjectKeyRegex,this._SanitizeObjectKeyReplacement)}},{key:"initializeFormGroups",value:function(t){for(var e=Object.keys(t.options.Manifests.Section.Descriptors),o=function(){var o=t.options.Manifests.Section.Descriptors[e[n]];if("object"==_typeof(o)&&"PictForm"in o&&"object"==_typeof(o.PictForm)&&"Section"in o.PictForm&&o.PictForm.Section==t.sectionDefinition.Hash){o.PictForm.InformaryDataAddress=e[n],o.PictForm.ViewHash=t.Hash;var r="string"==typeof o.PictForm.Group?o.PictForm.Group:"Default";"Groups"in t.sectionDefinition||(t.sectionDefinition.Groups=[]);var i=t.sectionDefinition.Groups.find(function(t){return t.Hash==r});i?Array.isArray(i.Rows)||(i.Rows=[]):(i={Hash:r,Name:r,Description:!1,Rows:[]},t.sectionDefinition.Groups.push(i));var a="string"==typeof o.PictForm.Row?o.PictForm.Row:"number"==typeof o.PictForm.Row?"Row_".concat(o.PictForm.Row.toString()):"Row_Default";o.PictForm.RowHash=a;var s=i.Rows.find(function(t){return t.Hash==a});s||(s={Hash:a,Name:a,Inputs:[]},i.Rows.push(s)),s.Inputs.push(o)}},n=0;n<e.length;n++)o();for(var r=0;r<t.sectionDefinition.Groups.length;r++){var i=t.sectionDefinition.Groups[r];if(i.GroupIndex=r,"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){for(var a=Object.keys(i.supportingManifest.elementDescriptors),s=0;s<a.length;s++){var l=i.supportingManifest.elementDescriptors[a[s]];l.IsTabular=!0,"PictForm"in l||(l.PictForm={}),l.PictForm.ViewHash=t.Hash,l.PictForm.InformaryDataAddress=a[s],"string"==typeof i.RecordSetAddress&&(l.PictForm.InformaryContainerAddress=i.RecordSetAddress),l.RowIdentifierTemplateHash="{~D:Record.RowID~}"}Array.isArray(i.DynamicColumns)&&i.DynamicColumns.length>0&&this._resolveDynamicColumns(t,i)}if(i.RecordSetAddress){var c=t.getMarshalDestinationObject(),p=t.sectionManifest.checkAddressExistsByHash(c,i.RecordSetAddress),u=t.sectionManifest.getValueAtAddress(c,i.RecordSetAddress);if(p?Array.isArray(u)?t.log.trace("RecordSetAddress is an Array for [".concat(i.Hash,"]")):"object"===_typeof(u)?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(u),"] -- likely the data shape will cause erratic problems.")):(t.log.warn("Automatically setting an empty array at [".concat(i.RecordSetAddress,"].")),t.sectionManifest.setValueByHash(c,i.RecordSetAddress,[])),i.MinimumRowCount){u||(t.sectionManifest.setValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress,[]),u=t.sectionManifest.getValueByHash(t.getMarshalDestinationObject(),i.RecordSetAddress));for(var d=u.length;d<i.MinimumRowCount;d++)t.pict.providers.DynamicTabularData.createDynamicTableRowWithoutEvents(t,i.GroupIndex)}}}}},{key:"_parseDynamicColumnTemplate",value:function(t,e){if("string"!=typeof t)return"";if(-1===t.indexOf("{"))return t;try{var o=this.fable.parseTemplate(t,e,null);return"string"==typeof o?o:""}catch(t){return this.log.warn("PICT Form Tabular DynamicColumns template parse failed: ".concat(t&&t.message)),""}}},{key:"_resolveDynamicColumns",value:function(t,e){var o=this,n={added:[],removed:[],unchanged:[],changed:!1};if(!e||!Array.isArray(e.DynamicColumns)||0===e.DynamicColumns.length)return n;if(!e.supportingManifest)return this.log.warn("PICT Form Tabular DynamicColumns on group [".concat(e.Hash,"] skipped: no supportingManifest.")),n;Array.isArray(e.DynamicColumnsState)||(e.DynamicColumnsState=[]);for(var r=t.getMarshalDestinationObject(),i=e.supportingManifest,a=[],s=[],l=[],c=!1,p=function(){var n=e.DynamicColumns[u];e.DynamicColumnsState[u]||(e.DynamicColumnsState[u]={LastHashes:[],LastHeaderGroups:[]});var p=e.DynamicColumnsState[u];if("string"!=typeof n.SourceAddress||0===n.SourceAddress.length)return o.log.warn("PICT Form Tabular DynamicColumns generator ".concat(u," on group [").concat(e.Hash,"] is missing SourceAddress.")),0;if("string"!=typeof n.HashTemplate||0===n.HashTemplate.length)return o.log.warn("PICT Form Tabular DynamicColumns generator ".concat(u," on group [").concat(e.Hash,"] is missing HashTemplate.")),0;if("string"!=typeof n.InformaryDataAddressTemplate||0===n.InformaryDataAddressTemplate.length)return o.log.warn("PICT Form Tabular DynamicColumns generator ".concat(u," on group [").concat(e.Hash,"] is missing InformaryDataAddressTemplate.")),0;var d=t.sectionManifest.getValueByHash(r,n.SourceAddress);Array.isArray(d)||(d=[]);for(var h=[],f={},m=[],v={},g=0;g<d.length;g++){var w=d[g],y=o._parseDynamicColumnTemplate(n.HashTemplate,w);if(y){v[y]&&o.log.warn("PICT Form Tabular DynamicColumns generator ".concat(u," produced duplicate Hash [").concat(y,"] on group [").concat(e.Hash,"]; later row wins.")),v[y]=!0;var b=n.NameTemplate?o._parseDynamicColumnTemplate(n.NameTemplate,w):y,D=o._parseDynamicColumnTemplate(n.InformaryDataAddressTemplate,w);if(D){var P=n.HeaderGroupTemplate?o._parseDynamicColumnTemplate(n.HeaderGroupTemplate,w):"",T={Hash:y,Name:b||y,DataType:n.DataType||"String",IsTabular:!0,_DynamicColumnGeneratorIndex:u,_DynamicColumnHeaderGroup:P,PictForm:Object.assign({},n.PictForm||{},{ViewHash:t.Hash,InformaryContainerAddress:e.RecordSetAddress,InformaryDataAddress:D})};h.push(y),f[y]=T,m.push(P)}else o.log.warn("PICT Form Tabular DynamicColumns generator ".concat(u," produced empty InformaryDataAddress for row ").concat(g," on group [").concat(e.Hash,"]; skipping."))}}for(var S=Array.isArray(p.LastHashes)?p.LastHashes:[],F={},C=0;C<h.length;C++)F[h[C]]=!0;for(var x=S.filter(function(t){return!F[t]}),_={},A=0;A<S.length;A++)_[S[A]]=!0;for(var I=h.filter(function(t){return!_[t]}),k=h.filter(function(t){return _[t]}),H=JSON.stringify(m)!==JSON.stringify(p.LastHeaderGroups||[]),R=JSON.stringify(h)!==JSON.stringify(S),M=0;M<x.length;M++){var V=x[M],E=i.elementAddresses.indexOf(V);E>=0&&i.elementAddresses.splice(E,1),delete i.elementDescriptors[V],i.elementHashes&&V in i.elementHashes&&delete i.elementHashes[V]}for(var L=0;L<h.length;L++){var N=h[L],O=i.elementAddresses.indexOf(N);O>=0&&i.elementAddresses.splice(O,1);var G=i.elementDescriptors[N];if(G){var B=f[N];G.Name=B.Name,G.DataType=B.DataType,G.IsTabular=B.IsTabular,G._DynamicColumnGeneratorIndex=B._DynamicColumnGeneratorIndex,G._DynamicColumnHeaderGroup=B._DynamicColumnHeaderGroup,G.PictForm||(G.PictForm={}),Object.assign(G.PictForm,B.PictForm),f[N]=G}else i.elementDescriptors[N]=f[N];i.elementHashes||(i.elementHashes={}),i.elementHashes[N]=N}var j,z=n.InsertAt||"End";if("Start"===z)j=0;else if("object"===_typeof(z)&&null!==z&&"string"==typeof z.After){var U=i.elementAddresses.indexOf(z.After);j=U<0?i.elementAddresses.length:U+1}else j=i.elementAddresses.length;for(var W=0;W<h.length;W++)i.elementAddresses.splice(j+W,0,h[W]);p.LastHashes=h.slice(),p.LastHeaderGroups=m.slice(),(I.length||x.length||H||R)&&(c=!0),a.push.apply(a,I),s.push.apply(s,x),l.push.apply(l,k)},u=0;u<e.DynamicColumns.length;u++)p();return{added:a,removed:s,unchanged:l,changed:c}}},{key:"addDescriptor",value:function(t){t.DataAddress in this.manifest.Descriptors&&this.log.info("[ERROR] Duplicate descriptor hash found:",t),this.manifest.Descriptors[t.DataAddress]=t}},{key:"getManifestSection",value:function(t){var e,o=_createForOfIteratorHelper(this.manifest.Sections);try{for(o.s();!(e=o.n()).done;){var n=e.value;if(n.Hash===t)return n}}catch(t){o.e(t)}finally{o.f()}var r={Name:t,Hash:t,Solvers:[],Groups:[]};return this.manifest.Sections.push(r),r}},{key:"getManifestGroup",value:function(t,e){var o,n="string"==typeof t?this.getManifestSection(t):t,r=_createForOfIteratorHelper(n.Groups);try{for(r.s();!(o=r.n()).done;){var i=o.value;if(i.Hash===e)return i}}catch(t){r.e(t)}finally{r.f()}var a={Name:e,Hash:e,Rows:[],RecordSetSolvers:[]};return n.Groups.push(a),a}},{key:"tabularRowLint",value:function(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)}},{key:"decorateChartDescriptorFromTabularRow",value:function(t,e,o){var n=t,r=e,i=o||"";if(n.ChartType&&(r.PictForm.ChartType=n.ChartType),""==i&&(n.ChartLabelsAddress&&(r.PictForm.ChartLabelsAddress=n.ChartLabelsAddress),n.ChartLabelsSolver&&(r.PictForm.ChartLabelsSolver=n.ChartLabelsSolver),n.ChartDatasetsAddress&&(r.PictForm.ChartDatasetsAddress=n.ChartDatasetsAddress)),n["ChartDatasetsSolver".concat(i)]){var a={DataSolver:n["ChartDatasetsSolver".concat(i)]};n["ChartDatasetsLabel".concat(i)]?a.Label=n["ChartDatasetsLabel".concat(i)]:a.Label="Data",n["ChartDataSetsSolverChartType".concat(i)]&&(a.ChartType=n["ChartDataSetsSolverChartType".concat(i)]),r.PictForm.ChartDatasetsSolvers&&Array.isArray(r.PictForm.ChartDatasetsSolvers)||(r.PictForm.ChartDatasetsSolvers=[]),r.PictForm.ChartDatasetsSolvers.push(a)}}},{key:"tabularRowAddDescriptor",value:function(t,e){var o,n,r,i,a,s,l,c,p,u,d,h;if("object"!==_typeof(e))return this.log.error("Invalid record passed to addManifestDescriptor: ".concat(e)),!1;var f=JSON.parse(JSON.stringify(e));f["Input Hash"]=(null===(o=f["Input Hash"])||void 0===o||null===(n=o.trim)||void 0===n?void 0:n.call(o))||"DefaultHash".concat(this.defaultHashCounter++),f["Input Address"]=(null===(r=f["Input Address"])||void 0===r||null===(i=r.trim)||void 0===i?void 0:i.call(r))||"DefaultData.InputHash_".concat(f["Input Hash"]),f["Input Name"]=(null===(a=f["Input Name"])||void 0===a||null===(s=a.trim)||void 0===s?void 0:s.call(a))||"Auto Input ".concat(f["Input Hash"]),f.DataType=(null===(l=f.DataType)||void 0===l||null===(c=l.trim)||void 0===c?void 0:c.call(l))||"String";var m={Hash:f["Input Hash"],Name:f["Input Name"],DataAddress:f["Input Address"],DataType:f.DataType,PictForm:{}};if(f.Default&&(m.Default=f.Default),f.InputType&&(m.PictForm.InputType=f.InputType),f.Row&&(m.PictForm.Row=f.Row),f.Width&&(m.PictForm.Width=f.Width),f["Input Notes"]&&(m.PictForm.SpreadsheetNotes=f["Input Notes"]),f.Description&&(m.Description=f.Description),f.Units&&(m.PictForm.Units=f.Units),f.Tooltip&&(m.PictForm.Tooltip=f.Tooltip),"Option"==m.PictForm.InputType&&f["Input Extra"]){for(var v=[],g=f["Input Extra"].split(","),w=0;w<g.length;w++)if(""!=g[w].trim()){var y=g[w].split("^");2==y.length?v.push({id:y[0].trim(),text:y[1].trim()}):v.push({id:g[w].trim(),text:g[w].trim()})}v.length>0&&(m.PictForm.SelectOptions=v)}if(("TabSectionSelector"==m.PictForm.InputType||"TabGroupSelector"==m.PictForm.InputType)&&f["Input Extra"]){for(var b=[],D=[],P=f["Input Extra"].split(","),T=0;T<P.length;T++)if(""!=P[T].trim()){var S=P[T].split("^");S.length>=2?(b.push(S[0].trim()),D.push(S[1].trim())):(b.push(S[0].trim()),D.push(S[0].trim()))}b.length>0&&("TabSectionSelector"==m.PictForm.InputType?(m.PictForm.TabSectionSet=b,m.PictForm.TabSectionNames=D):"TabGroupSelector"==m.PictForm.InputType&&(m.PictForm.TabGroupSet=b,m.PictForm.TabGroupNames=D))}if("TriggerGroup"in f&&"string"==typeof f.TriggerGroup&&""!=f.TriggerGroup){if(Array.isArray(m.PictForm.Providers)||(m.PictForm.Providers=[]),m.PictForm.Providers.push("Pict-Input-AutofillTriggerGroup"),!Array.isArray(m.PictForm.AutofillTriggerGroup)){var F=m.PictForm.AutofillTriggerGroup;m.PictForm.AutofillTriggerGroup=[],F&&m.PictForm.AutofillTriggerGroup.push(F)}for(var C=f.TriggerGroup.split(","),x=("TriggerAddress"in f?f.TriggerAddress.split(","):[]),_=("TriggerAllInputs"in f?f.TriggerAllInputs.split(","):[]),A=0;A<C.length;A++){var I,k,H,R,M={TriggerGroupHash:C[A].trim(),MarshalEmptyValues:!!f.MarshalEmptyValues},V=null===(I=x[A])||void 0===I||null===(k=I.trim)||void 0===k?void 0:k.call(I);V&&(M.TriggerAddress=V);var E=null===(H=_[A])||void 0===H||null===(R=H.trim)||void 0===R?void 0:R.call(H);null==E||"true"!=E.toLowerCase()&&"x"!=E.toLowerCase()&&"1"!=E.toLowerCase()||(M.TriggerAllInputs=!0),"Option"==m.PictForm.InputType&&(M.SelectOptionsRefresh=!0),m.PictForm.AutofillTriggerGroup.push(M)}}"string"==typeof f.Entity&&f.Entity.trim()&&("string"==typeof f.EntityColumnFilter&&f.EntityColumnFilter.trim()||"string"==typeof f.EntityFilterTemplate&&f.EntityFilterTemplate.trim())&&"string"==typeof f.EntityDestination&&f.EntityDestination.trim()&&(Array.isArray(m.PictForm.Providers)||(m.PictForm.Providers=[]),m.PictForm.Providers.includes("Pict-Input-EntityBundleRequest")||m.PictForm.Providers.push("Pict-Input-EntityBundleRequest"),m.PictForm.EntitiesBundle=[{Entity:f.Entity,Filter:f.EntityFilterTemplate&&f.EntityFilterTemplate.trim()||"FBV~".concat(f.EntityColumnFilter.trim(),"~EQ~{~D:Record.Value~}"),Destination:f.EntityDestination,SingleRecord:f.EntitySingleRecord&&"false"!==f.EntitySingleRecord}]);var L=t;if("SubManifest"in f&&f.SubManifest&&"TabularAddress"!=f.InputType&&(m.IsTabular=!0,f.SubManifest in t.manifest.ReferenceManifests||(t.referenceManifestFactories[f.SubManifest]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",{Manifest:{Scope:f.SubManifest}},"".concat(this.UUID,"-").concat(f.SubManifest)),t.manifest.ReferenceManifests[f.SubManifest]=t.referenceManifestFactories[f.SubManifest].manifest),t=t.referenceManifestFactories[f.SubManifest]),"Decimal Precision"in f&&f["Decimal Precision"]&&""!=f["Decimal Precision"])try{m.PictForm.DecimalPrecision=parseInt(f["Decimal Precision"])}catch(t){this.log.error("Failed to parse Decimal Precision for ".concat(f["Input Hash"],": ").concat(t))}var N=null===(p=f["Section Name"])||void 0===p||null===(u=p.trim)||void 0===u?void 0:u.call(p),O=this.sanitizeObjectKey(N||"Default_Section");f["Section Hash"]&&""!=f["Section Hash"]&&(O=this.sanitizeObjectKey(f["Section Hash"])),m.PictForm.Section=O;var G=L.getManifestSection(O);N&&(G.Name=N),f["Section CSS"]&&(G.CSSClass=f["Section CSS"]);var B=null===(d=f["Group Name"])||void 0===d||null===(h=d.trim)||void 0===h?void 0:h.call(d),j=this.sanitizeObjectKey(B||"Default_Group");f["Group Hash"]&&""!=f["Group Hash"]&&(j=this.sanitizeObjectKey(f["Group Hash"])),m.PictForm.Group=j;var z=L.getManifestGroup(G,j);if(z.Name=B||"",f["Group CSS"]&&(z.CSSClass=f["Group CSS"]),f["Group Layout"]&&(z.Layout=f["Group Layout"]),f["Minimum Row Count"])try{z.MinimumRowCount=parseInt(f["Minimum Row Count"])}catch(t){this.log.error("Failed to parse Minimum Row Count for ".concat(f["Input Hash"],": ").concat(t))}if(f["Maximum Row Count"])try{z.MaximumRowCount=parseInt(f["Maximum Row Count"])}catch(t){this.log.error("Failed to parse Maximum Row Count for ".concat(f["Input Hash"],": ").concat(t))}if(!f.HideTabularEditingControls||"1"!=f.HideTabularEditingControls&&"true"!=f.HideTabularEditingControls.toLowerCase()&&"t"!=f.HideTabularEditingControls.toLowerCase()&&"y"!=f.HideTabularEditingControls.toLowerCase()||(z.HideTabularEditingControls=!0),f["Group Show Title"]&&""!=f["Group Show Title"])switch(f["Group Show Title"].toLowerCase()){case 1:case"1":case"true":z.ShowTitle=!0;break;case 0:case"0":case"false":z.ShowTitle=!1}if(m.Hash in t.manifest.Descriptors&&this.log.info("[ERROR] Duplicate descriptor hash found ".concat(m.Hash,". This will overwrite the original descriptor.")),"TabularAddress"==f.InputType&&(z.Layout="Tabular",this.log.info("Group ".concat(z.Hash," RSA ").concat(f.GroupRecordSetAddress," -> Descriptor ").concat(m.DataAddress)),f.GroupRecordSetAddress&&_typeof("string"==f.GroupRecordSetAddress)&&f.GroupRecordSetAddress.length>0?z.RecordSetAddress=f.GroupRecordSetAddress:z.RecordSetAddress=m.DataAddress,z.RecordManifest=f.SubManifest),f.Equation&&!this._isTrue(f.Validator)){var U=f.Equation.trim(),W=1;if(f["Equation Ordinal"])try{W=parseInt(f["Equation Ordinal"])}catch(t){this.log.error("Failed to parse Equation Ordinal for ".concat(f["Input Hash"],": ").concat(t))}this.log.trace("Adding solver to ".concat(f.Form," --\x3e ").concat(z.Name," for ").concat(f["Input Hash"]," Ordinal ").concat(W,": ").concat(f.Equation)),"Tabular"==z.Layout||"RecordSet"==z.Layout?1==W?z.RecordSetSolvers.push(U):z.RecordSetSolvers.push({Ordinal:W,Expression:U}):1==W?G.Solvers.push(U):G.Solvers.push({Ordinal:W,Expression:U})}this.onTabularRowAddDescriptor(f,G,z,m),f.DataOnly&&m.PictForm&&(m.PictForm.Group&&(m.FormGroup=m.PictForm.Group),m.PictForm.Section&&(m.FormSection=m.PictForm.Section),delete m.PictForm),"Chart"==f.InputType&&m.PictForm&&(this.decorateChartDescriptorFromTabularRow(f,m,""),this.decorateChartDescriptorFromTabularRow(f,m,"1"),this.decorateChartDescriptorFromTabularRow(f,m,"2"),this.decorateChartDescriptorFromTabularRow(f,m,"3"),this.decorateChartDescriptorFromTabularRow(f,m,"4"),this.decorateChartDescriptorFromTabularRow(f,m,"5"),this.decorateChartDescriptorFromTabularRow(f,m,"6"),this.decorateChartDescriptorFromTabularRow(f,m,"7"),this.decorateChartDescriptorFromTabularRow(f,m,"8"),this.decorateChartDescriptorFromTabularRow(f,m,"9"));for(var Y=Object.keys(f),q=this.fable.newManyfest(),X=0;X<Y.length;X++){var J=Y[X];if(J.startsWith("Descriptor_Extension_")){var K=J.replace("Descriptor_Extension_","");try{var $=K,Z=f[J];Z&&q.setValueAtAddress(m,$,Z)}catch(t){this.log.error("Failed to set Descriptor Extension [".concat(J,"] on descriptor [").concat(m.Hash,"]: ").concat(t))}}if(J.startsWith("Descriptor_Float_Extension_")){var Q=J.replace("Descriptor_Float_Extension_","");try{var tt=Q,et=f[J],ot=parseFloat(et);isNaN(ot)||(q.setValueAtAddress(m,tt,ot),this.log.trace("Set Float Descriptor Extension [".concat(J,"] on descriptor [").concat(m.Hash,"] to value [").concat(ot,"]")))}catch(t){this.log.error("Failed to set Float Descriptor Extension [".concat(J,"] on descriptor [").concat(m.Hash,"]: ").concat(t))}}if(J.startsWith("Descriptor_Integer_Extension_")){var nt=J.replace("Descriptor_Integer_Extension_","");try{var rt=nt,it=f[J],at=parseInt(it);isNaN(at)||q.setValueAtAddress(m,rt,at)}catch(t){this.log.error("Failed to set Integer Descriptor Extension [".concat(J,"] on descriptor [").concat(m.Hash,"]: ").concat(t))}}if(J.startsWith("Descriptor_Boolean_Extension_")){var st=J.replace("Descriptor_Boolean_Extension_","");try{var lt=st,ct=f[J],pt=void 0;"x"!=ct.toLowerCase()&&"y"!=ct.toLowerCase()&&"yes"!=ct.toLowerCase()&&"t"!=ct.toLowerCase()&&"true"!=ct.toLowerCase()&&"1"!=ct||(pt=!0),"n"!=ct.toLowerCase()&&"no"!=ct.toLowerCase()&&"f"!=ct.toLowerCase()&&"false"!=ct.toLowerCase()&&"0"!=ct||(pt=!1),!0===pt||!1===pt?q.setValueAtAddress(m,lt,pt):ct&&this.log.warn("Could not parse Boolean value [".concat(ct,"] for Descriptor Boolean Extension [").concat(J,"] on descriptor [").concat(m.Hash,"]"))}catch(t){this.log.error("Failed to set Boolean Descriptor Extension [".concat(J,"] on descriptor [").concat(m.Hash,"]: ").concat(t))}}}return"TabularAddress"!=f.InputType?t.addDescriptor(m):L.addDescriptor(m),m}},{key:"tabularRowAddValidator",value:function(t,e){if(e.Equation){var o=e.Equation.trim(),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(o):t.ValidationSolvers.push({Ordinal:n,Expression:o})}}},{key:"onTabularRowAddDescriptor",value:function(t,e,o,n){}},{key:"migrateAutofillTriggerGroupSolvers",value:function(t){for(var e=this,o=0,n=Object.values(t);o<n.length;o++){var r,i=n[o].manifest,a=[],s=_createForOfIteratorHelper(i.Sections||[]);try{for(s.s();!(r=s.n()).done;){var l=r.value;if(Array.isArray(l.Solvers))for(var c=0;c<l.Solvers.length;c++){var p=l.Solvers[c],u="string"==typeof p?p:p.Expression;"string"==typeof u&&u.startsWith("TriggerGroup:")&&(a.push(p),l.Solvers.splice(c,1),--c)}var d,h=_createForOfIteratorHelper(l.Groups||[]);try{for(h.s();!(d=h.n()).done;){var f=d.value;if(Array.isArray(f.RecordSetSolvers))for(var m=0;m<f.RecordSetSolvers.length;m++){var v=f.RecordSetSolvers[m],g="string"==typeof v?v:v.Expression;"string"==typeof g&&g.startsWith("TriggerGroup:")&&(a.push(v),f.RecordSetSolvers.splice(m,1),--m)}}}catch(t){h.e(t)}finally{h.f()}}}catch(t){s.e(t)}finally{s.f()}for(var w=function(){var t=b[y],o="string"==typeof t?t:t.Expression,n=_slicedToArray(o.split(":"),4),r=(n[0],n[1]),a=n[2],s=n[3];if(s||(s=a,a="post"),!s||""===s.trim())return e.log.error("Skipping migration of empty TriggerGroup solver expression in manifest [".concat(i.Scope,"] for TriggerGroup [").concat(r,"]")),0;var l=Object.values(i.Descriptors).find(function(t){var e;return!(null===(e=t.PictForm)||void 0===e||!e.AutofillTriggerGroup)&&(Array.isArray(t.PictForm.AutofillTriggerGroup)?t.PictForm.AutofillTriggerGroup:[t.PictForm.AutofillTriggerGroup]).some(function(t){return t.TriggerGroupHash===r})});if(!l)return e.log.error("Could not find descriptor for TriggerGroup [".concat(r,"] in manifest [").concat(i.Scope,"] while migrating solver expression: ").concat(o)),0;var c=(Array.isArray(l.PictForm.AutofillTriggerGroup)?l.PictForm.AutofillTriggerGroup:[l.PictForm.AutofillTriggerGroup]).find(function(t){return t.TriggerGroupHash===r});if(!c)return e.log.error("Could not find TriggerGroup entry for TriggerGroup [".concat(r,"] in descriptor [").concat(l.Hash,"] while migrating solver expression: ").concat(o)),0;var p=t;"string"==typeof t?p=s:t.Expression=s,"pre"===a.toLowerCase()?(c.PreSolvers=c.PreSolvers||[],c.PreSolvers.push(p)):(c.PostSolvers=c.PostSolvers||[],c.PostSolvers.push(p))},y=0,b=a;y<b.length;y++)w()}}},{key:"_isTrue",value:function(t){if("boolean"==typeof t)return t;if("string"==typeof t){var e=t.trim().toLowerCase();return"true"===e||"t"===e||"yes"===e||"y"===e||"1"===e}return 1==t||1==t}},{key:"createManifestsFromTabularArray",value:function(t){if(!t||!Array.isArray(t))return this.log.info("Invalid records passed to generateManifests."),{};for(var e={},o=0;o<t.length;o++){var n=t[o];if(this.tabularRowLint(n)){e[n.Form]||(e[n.Form]=this.fable.instantiateServiceProviderWithoutRegistration("ManifestFactory",{Manifest:{Form:n.Form}},"".concat(this.UUID,"-").concat(n.Form)));var 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."));for(var i=Object.keys(e),a={},s=0;s<i.length;s++)a[i[s]]=e[i[s]].manifest;return a}}])}(n);e.exports=i,i.default_configuration={}},{"fable-serviceproviderbase":26}],138:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../services/ManifestFactory.js"),i=t("../providers/Pict-Provider-DynamicSolver.js"),a=t("../providers/Pict-Provider-DynamicInput.js"),s=t("../providers/Pict-Provider-DynamicInputEvents.js"),l=t("../providers/Pict-Provider-DynamicTabularData.js"),c=t("../providers/Pict-Provider-DynamicRecordSet.js"),p=t("../providers/Pict-Provider-DynamicTemplates.js"),u=t("../providers/Pict-Provider-MetatemplateGenerator.js"),d=t("../providers/Pict-Provider-MetatemplateMacros.js"),h=t("../providers/layouts/Pict-Layout-Record.js"),f=t("../providers/layouts/Pict-Layout-VerticalRecord.js"),m=t("../providers/layouts/Pict-Layout-Tabular.js"),v=t("../providers/layouts/Pict-Layout-RecordSet.js"),g=t("../providers/layouts/Pict-Layout-Chart.js"),w=t("../providers/layouts/Pict-Layout-TuiGrid.js"),y=t("../providers/layouts/Pict-Layout-Custom.js"),b=t("../providers/Pict-Provider-Informary.js"),D=function(t){function e(t,o,n){var D;return _classCallCheck(this,e),(D=_callSuper(this,e,[t,o,n])).fable,D.log,D.UUID,D.fable.addAndInstantiateSingletonService("ManifestFactory",r.default_configuration,r),D.fable.addProviderSingleton("DynamicInput",a.default_configuration,a),D.fable.addProviderSingleton("DynamicInputEvents",s.default_configuration,s),D.fable.addProviderSingleton("DynamicSolver",i.default_configuration,i),D.fable.addProviderSingleton("DynamicTabularData",l.default_configuration,l),D.fable.addProviderSingleton("DynamicRecordSet",c.default_configuration,c),D.fable.addProviderSingleton("PictFormSectionDefaultTemplateProvider",p.default_configuration,p),D.fable.addProviderSingleton("MetatemplateGenerator",u.default_configuration,u),D.fable.addProviderSingleton("MetatemplateMacros",d.default_configuration,d),D.fable.addProviderSingleton("Pict-Layout-Record",h.default_configuration,h),D.fable.addProviderSingleton("Pict-Layout-VerticalRecord",f.default_configuration,f),D.fable.addProviderSingleton("Pict-Layout-Tabular",m.default_configuration,m),D.fable.addProviderSingleton("Pict-Layout-RecordSet",v.default_configuration,v),D.fable.addProviderSingleton("Pict-Layout-Chart",g.default_configuration,g),D.fable.addProviderSingleton("Pict-Layout-TuiGrid",w.default_configuration,w),D.fable.addProviderSingleton("Pict-Layout-Custom",y.default_configuration,y),D.fable.addProviderSingleton("Informary",b.default_configuration,b),D}return _inherits(e,t),_createClass2(e)}(n);e.exports=D,D.default_configuration={}},{"../providers/Pict-Provider-DynamicInput.js":98,"../providers/Pict-Provider-DynamicInputEvents.js":99,"../providers/Pict-Provider-DynamicRecordSet.js":101,"../providers/Pict-Provider-DynamicSolver.js":102,"../providers/Pict-Provider-DynamicTabularData.js":103,"../providers/Pict-Provider-DynamicTemplates.js":104,"../providers/Pict-Provider-Informary.js":106,"../providers/Pict-Provider-MetatemplateGenerator.js":110,"../providers/Pict-Provider-MetatemplateMacros.js":111,"../providers/layouts/Pict-Layout-Chart.js":128,"../providers/layouts/Pict-Layout-Custom.js":129,"../providers/layouts/Pict-Layout-Record.js":130,"../providers/layouts/Pict-Layout-RecordSet.js":131,"../providers/layouts/Pict-Layout-Tabular.js":132,"../providers/layouts/Pict-Layout-TuiGrid.js":133,"../providers/layouts/Pict-Layout-VerticalRecord.js":135,"../services/ManifestFactory.js":137,"fable-serviceproviderbase":26}],139:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~DynamicInput:","~}"),r.addPattern("{~DI:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){return this.renderAsync(t,e,null,o,n)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a=this.pict.providers.MetatemplateGenerator,s=t.trim(),l=this.pict.views.PictFormMetacontroller,c=(l?l.manifest:this.pict.manifest).getDescriptor(s);if(!c)return this.log.error("PictTemplateControlFromDynamicManifest: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof o?o(null,""):"";var p=this.pict.views[c.PictForm.ViewHash],u=p||r,d=u?[u]:n||[this.pict];this.pict.providers.MetatemplateMacros.buildInputMacros(p,c);var h=a.getInputMetatemplateTemplateReference(p,c.DataType,c.PictForm.InputType,'getInput("'.concat(c.PictForm.GroupIndex,'","').concat(c.PictForm.RowIndex,'","').concat(c.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,c,o,d,u,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],140:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~DynamicInputForHash:","~}"),r.addPattern("{~DIH:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){return this.renderAsync(t,e,null,o,n,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a=this.pict.providers.MetatemplateGenerator,s=t.trim(),l=this.pict.views.PictFormMetacontroller,c=(l?l.manifest:this.pict.manifest).getDescriptorByHash(s);if(!c)return this.log.error("PictTemplateControlFromDynamicManifest: Cannot find descriptor for hash [".concat(s,"]")),"function"==typeof o?o(null,""):"";var p=this.pict.views[c.PictForm.ViewHash],u=p||r,d=u?[u]:n||[this.pict];this.pict.providers.MetatemplateMacros.buildInputMacros(p,c);var h=a.getInputMetatemplateTemplateReference(p,c.DataType,c.PictForm.InputType,'getInput("'.concat(c.PictForm.GroupIndex,'","').concat(c.PictForm.RowIndex,'","').concat(c.PictForm.InputIndex,'")'));return this.pict.parseTemplate(h,c,o,d,u,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],141:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~SchemaValue:","~}"),r.addPattern("{~SV:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){return this.renderAsync(t,e,null,o,n,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a=_slicedToArray(t.trim().split("^"),2),s=a[0],l=a[1],c=this.pict.views.PictFormMetacontroller,p=(c?c.manifest:this.pict.manifest).getDescriptor(s);if(!p)return this.log.error("PictTemplateGetViewSchemaValue: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof o?o(null,""):"";var u=this.pict.views[p.PictForm.ViewHash],d=u.getValueByHash(s);if(l){var h={Value:d,ParentRecord:e,View:u,Descriptor:p};return"function"!=typeof o?this.pict.parseTemplateByHash(l,h,null,n,r,i):this.pict.parseTemplateByHash(l,h,function(t,e){return t?o(t,""):o(null,e)},n,r,i)}if("function"!=typeof o)return d?String(d):"";o(null,d?String(d):"")}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],142:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~SchemaValueForHash:","~}"),r.addPattern("{~SVH:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){return this.renderAsync(t,e,null,o,n,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a=_slicedToArray(t.trim().split("^"),2),s=a[0],l=a[1],c=this.pict.views.PictFormMetacontroller,p=(c?c.manifest:this.pict.manifest).getDescriptorByHash(s);if(!p)return this.log.error("PictTemplateGetViewSchemaValueByHash: Cannot find descriptor for address [".concat(s,"]")),"function"==typeof o?o(null,""):"";var u=this.pict.views[p.PictForm.ViewHash],d=u.getValueByHash(s);if(l){var h={Value:d,ParentRecord:e,View:u,Descriptor:p};return"function"!=typeof o?this.pict.parseTemplateByHash(l,h,null,n,r,i):this.pict.parseTemplateByHash(l,h,function(t,e){return t?o(t,""):o(null,e)},n,r,i)}if("function"!=typeof o)return d?String(d):"";o(null,d?String(d):"")}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],143:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~MetacontrollerTemplateValueSet:","~}"),r.addPattern("{~MTVS:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i,a,s,l=t.trim(),c="object"===_typeof(e)?e:{};this.pict.LogNoisiness>4?this.log.trace("PICT Metacontroller Template [MetacontrollerTemplateValueSet]::[".concat(l,"] with tmpData:"),c):this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetacontrollerTemplateValueSet]::[".concat(l,"]"));var p=l.split(":");if(p.length<3)return this.log.warn("Metacontroller template requires 3 parameters [".concat(l,"]")),"";a=p[0],i=p[1],s=p[2],c=this.resolveStateFromAddress(s,c,o,null,n);var u=[];if(Array.isArray(c))for(var d=0;d<c.length;d++)u.push({Value:c[d],Key:d,Group:i});else if("object"===_typeof(c))for(var h=Object.keys(c),f=0;f<h.length;f++)u.push({Value:c[h[f]],Key:h[f],Group:i});else u.push({Value:c});return(c=u)?this.pict.parseTemplateSetByHash(a,c,null,o,n,r):this.pict.parseTemplateSetByHash(a,e,null,o,n,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a,s,l=t.trim(),c="object"===_typeof(e)?e:{},p="function"==typeof o?o:function(){return""};this.pict.LogNoisiness>4?this.log.trace("PICT Template [fTemplateValueSetRenderAsync]::[".concat(l,"] with tmpData:"),c):this.pict.LogNoisiness>0&&this.log.trace("PICT Template [fTemplateValueSetRenderAsync]::[".concat(l,"]"));var u=l.split(":");if(u.length<2)return this.log.trace("PICT TemplateFromMap [fTemplateRenderAsync]::[".concat(l,"] failed because there were not three stanzas in the expression [").concat(t,"]")),o(null,"");if(a=u[0],s=u[1],!a)return this.log.warn("Pict: TemplateFromMap Render Async: TemplateFromMapHash not resolved for [".concat(l,"]")),o(null,"");c=this.resolveStateFromAddress(s,c,n,null,r);var d=[];if(Array.isArray(c))for(var h=0;h<c.length;h++)d.push({Value:c[h],Key:h});else if("object"===_typeof(c))for(var f=Object.keys(c),m=0;m<f.length;m++)d.push({Value:c[f[m]],Key:f[m]});else d.push({Value:c});return(c=d)?void this.pict.parseTemplateSetByHash(a,c,function(t,e){return t?p(t,""):p(null,e)},n,r,i):void this.pict.parseTemplateSetByHash(a,e,function(t,e){return t?p(t,""):p(null,e)},n,r,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],144:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~MetaTemplateInput:","~}"),r.addPattern("{~MTI:","~}"),r.currentInputIndex=0,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i,a,s,l,c=t.trim(),p=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(c,"]"));var u=c.split(":");if(u.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(c,"]")),"";i=u[0],a=u[1],s=u[2],u.length>3&&(l=u[3]);var d={Address:a,DataAddress:a,Name:i,Hash:this.fable.ManifestFactory.sanitizeObjectKey(a),DataType:s,PictForm:{InformaryDataAddress:a,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(d.PictForm.InputType=l);for(var h=p.dynamicInputView.getRow(0,0),f=0;f<h.Inputs.length;f++)if(h.Inputs[f].Hash===d.Hash){var m=h.Inputs[f];return this.pict.parseTemplate(p.getInputMetatemplateTemplateReference(p.dynamicInputView,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")')),m,null,[p.dynamicInputView],p.dynamicInputView,r)}d.PictForm.InputIndex=h.Inputs.length,p.dynamicInputView.sectionManifest.addDescriptor(d.Address,d),h.Inputs.push(d),this.pict.providers.MetatemplateMacros.buildInputMacros(p.dynamicInputView,d);var v=p.getInputMetatemplateTemplateReference(p.dynamicInputView,d.DataType,d.PictForm.InputType,'getInput("0","0","'.concat(d.PictForm.InputIndex,'")'));return this.pict.parseTemplate(v,d,null,[p.dynamicInputView],p.dynamicInputView,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a,s,l,c,p=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(p,"]"));var d=p.split(":");if(d.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(p,"]")),o(null,"");a=d[0],s=d[1],l=d[2],d.length>3&&(c=d[3]);var h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:l,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(h.PictForm.InputType=c);for(var f=u.dynamicInputView.getRow(0,0),m=0;m<f.Inputs.length;m++)if(f.Inputs[m].Hash===h.Hash){var v=f.Inputs[m],g=u.getInputMetatemplateTemplateReference(u.dynamicInputView,v.DataType,v.PictForm.InputType,'getInput("0","0","'.concat(v.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(g,v,o,[u.dynamicInputView],u.dynamicInputView,i)}h.PictForm.InputIndex=f.Inputs.length,u.dynamicInputView.sectionManifest.addDescriptor(h.Address,h),f.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(u.dynamicInputView,h);var w=u.getInputMetatemplateTemplateReference(u.dynamicInputView,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));this.pict.parseTemplate(w,h,o,[u.dynamicInputView],u.dynamicInputView,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],145:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~MetaTemplateInputWithHashAddress:","~}"),r.addPattern("{~MTIWHA:","~}"),r.currentInputIndex=0,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i,a,s,l,c=t.trim(),p=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(c,"]"));var u=c.split(":");if(u.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(c,"]")),"";if(i=u[0],"string"!=typeof(a=this.resolveStateFromAddress(u[1],e,o,null,n,r))||a.length<1)return this.log.warn("MetaTemplateInput template requires a valid Address for an Address in the second parameter [".concat(c,"]")),"";s=u[2],u.length>3&&(l=u[3]);var d={Address:a,DataAddress:a,Name:i,Hash:this.fable.ManifestFactory.sanitizeObjectKey(a),DataType:s,PictForm:{InformaryDataAddress:a,GroupIndex:0,Row:0}};this.currentInputIndex++,l&&(d.PictForm.InputType=l);for(var h=p.dynamicInputView.getRow(0,0),f=0;f<h.Inputs.length;f++)if(h.Inputs[f].Hash===d.Hash){var m=h.Inputs[f];return this.pict.parseTemplate(p.getInputMetatemplateTemplateReference(p.dynamicInputView,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")')),m,null,[p.dynamicInputView],p.dynamicInputView,r)}d.PictForm.InputIndex=h.Inputs.length,p.dynamicInputView.sectionManifest.addDescriptor(d.Address,d),h.Inputs.push(d),this.pict.providers.MetatemplateMacros.buildInputMacros(p.dynamicInputView,d);var v=p.getInputMetatemplateTemplateReference(p.dynamicInputView,d.DataType,d.PictForm.InputType,'getInput("0","0","'.concat(d.PictForm.InputIndex,'")'));return this.pict.parseTemplate(v,d,null,[p.dynamicInputView],p.dynamicInputView,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a,s,l,c,p=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [MetaTemplateInput]::[".concat(p,"]"));var d=p.split(":");if(d.length<2)return this.log.warn("MetaTemplateInput template requires at least parameters (Address and DataType) [".concat(p,"]")),o(null,"");if(a=d[0],"string"!=typeof(s=this.resolveStateFromAddress(d[1],e,n,null,r,i))||s.length<1)return this.log.warn("MetaTemplateInput template requires a valid Address for an Address in the second parameter [".concat(p,"]")),o(null,"");l=d[2],d.length>3&&(c=d[3]);var h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:l,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(h.PictForm.InputType=c);for(var f=u.dynamicInputView.getRow(0,0),m=0;m<f.Inputs.length;m++)if(f.Inputs[m].Hash===h.Hash){var v=f.Inputs[m],g=u.getInputMetatemplateTemplateReference(u.dynamicInputView,v.DataType,v.PictForm.InputType,'getInput("0","0","'.concat(v.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(g,v,o,[u.dynamicInputView],u.dynamicInputView,i)}h.PictForm.InputIndex=f.Inputs.length,u.dynamicInputView.sectionManifest.addDescriptor(h.Address,h),f.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(u.dynamicInputView,h);var w=u.getInputMetatemplateTemplateReference(u.dynamicInputView,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));this.pict.parseTemplate(w,h,o,[u.dynamicInputView],u.dynamicInputView,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],146:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~InputWithView:","~}"),r.addPattern("{~IWV:","~}"),r.currentInputIndex=0,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i,a,s,l,c,p=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithView]::[".concat(p,"]"));var d=p.split(":");if(d.length<3)return this.log.warn("InputWithView template requires at least three parameters (ViewHash, Address and DataType) [".concat(p,"]")),"";i=d[0],a=d[1],s=d[2],l=d[3],d.length>4&&(c=d[4]);var h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:l,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(h.PictForm.InputType=c);var f=this.pict.views[i];if(!f||!f.sectionManifest||"function"!=typeof f.getRow)return this.log.warn("InputWithView template requires a valid dynamic View hash [".concat(p,"]")),"";for(var m=f.getRow(0,0),v=0;v<m.Inputs.length;v++)if(m.Inputs[v].Hash===h.Hash){var g=m.Inputs[v];return this.pict.parseTemplate(u.getInputMetatemplateTemplateReference(f,g.DataType,g.PictForm.InputType,'getInput("0","0","'.concat(g.PictForm.InputIndex,'")')),g,null,[f],f,r)}h.PictForm.InputIndex=m.Inputs.length,f.sectionManifest.addDescriptor(h.Address,h),m.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(f,h);var w=u.getInputMetatemplateTemplateReference(f,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));return this.pict.parseTemplate(w,h,null,[f],f,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a,s,l,c,p,u=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithView]::[".concat(u,"]"));var h=u.split(":");if(h.length<3)return this.log.warn("InputWithView template requires at least three parameters (ViewHash, Address and DataType) [".concat(u,"]")),o(null,"");a=h[0],s=h[1],l=h[2],c=h[3],h.length>4&&(p=h[4]);var f={Address:l,DataAddress:l,Name:s,Hash:this.fable.ManifestFactory.sanitizeObjectKey(l),DataType:c,PictForm:{InformaryDataAddress:l,GroupIndex:0,Row:0}};this.currentInputIndex++,p&&(f.PictForm.InputType=p);var m=this.pict.views[a];if(!m||!m.sectionManifest||"function"!=typeof m.getRow)return this.log.warn("InputWithView template requires a valid dynamic View hash [".concat(u,"]")),o(null,"");for(var v=m.getRow(0,0),g=0;g<v.Inputs.length;g++)if(v.Inputs[g].Hash===f.Hash){var w=v.Inputs[g],y=d.getInputMetatemplateTemplateReference(m,w.DataType,w.PictForm.InputType,'getInput("0","0","'.concat(w.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(y,w,o,[m],m,i)}f.PictForm.InputIndex=v.Inputs.length,m.sectionManifest.addDescriptor(f.Address,f),v.Inputs.push(f),this.pict.providers.MetatemplateMacros.buildInputMacros(m,f);var b=d.getInputMetatemplateTemplateReference(m,f.DataType,f.PictForm.InputType,'getInput("0","0","'.concat(f.PictForm.InputIndex,'")'));this.pict.parseTemplate(b,f,o,[m],m,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],147:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~InputWithViewAndDescriptorAddress:","~}"),r.addPattern("{~IWVDA:","~}"),r.currentInputIndex=0,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i,a,s=t.trim(),l=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndDescriptorAddress]::[".concat(s,"]"));var c=s.split(":");if(c.length<2)return this.log.warn("InputWithViewAndDescriptorAddress template requires two parameters (ViewHash and DescriptorAddress) [".concat(s,"]")),"";i=c[0],a=c[1];var p=this.resolveStateFromAddress(a,e,o,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++;var u=this.pict.views[i];if(!u||!u.sectionManifest||"function"!=typeof u.getRow)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid dynamic View hash [".concat(s,"]")),"";for(var d=u.getRow(0,0),h=0;h<d.Inputs.length;h++)if(d.Inputs[h].Hash===p.Hash){var f=d.Inputs[h];return this.pict.parseTemplate(l.getInputMetatemplateTemplateReference(u,f.DataType,f.PictForm.InputType,'getInput("0","0","'.concat(f.PictForm.InputIndex,'")')),f,null,[u],u,r)}p.PictForm.InputIndex=d.Inputs.length,u.sectionManifest.addDescriptor(p.Address,p),d.Inputs.push(p),this.pict.providers.MetatemplateMacros.buildInputMacros(u,p);var m=l.getInputMetatemplateTemplateReference(u,p.DataType,p.PictForm.InputType,'getInput("0","0","'.concat(p.PictForm.InputIndex,'")'));return this.pict.parseTemplate(m,p,null,[u],u,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a,s,l=t.trim(),c=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndDescriptorAddress]::[".concat(l,"]"));var p=l.split(":");if(p.length<2)return this.log.warn("InputWithViewAndDescriptorAddress template requires two parameters (ViewHash and DescriptorAddress) [".concat(l,"]")),o(null,"");a=p[0],s=p[1];var u=this.resolveStateFromAddress(s,e,n,null,r,i);this._shoreUpDescriptor(u),this.currentInputIndex++;var d=this.pict.views[a];if(!d||!d.sectionManifest||"function"!=typeof d.getRow)return this.log.warn("InputWithViewAndDescriptorAddress template requires a valid dynamic View hash [".concat(l,"]")),o(null,"");for(var h=d.getRow(0,0),f=0;f<h.Inputs.length;f++)if(h.Inputs[f].Hash===u.Hash){var m=h.Inputs[f],v=c.getInputMetatemplateTemplateReference(d,m.DataType,m.PictForm.InputType,'getInput("0","0","'.concat(m.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(v,m,o,[d],d,i)}u.PictForm.InputIndex=h.Inputs.length,d.sectionManifest.addDescriptor(u.Address,u),h.Inputs.push(u),this.pict.providers.MetatemplateMacros.buildInputMacros(d,u);var g=c.getInputMetatemplateTemplateReference(d,u.DataType,u.PictForm.InputType,'getInput("0","0","'.concat(u.PictForm.InputIndex,'")'));this.pict.parseTemplate(g,u,o,[d],d,i)}},{key:"_shoreUpDescriptor",value:function(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)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],148:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~InputWithViewAndHashAddress:","~}"),r.addPattern("{~IWVHA:","~}"),r.currentInputIndex=0,r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i,a,s,l,c,p=t.trim(),u=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndHashAddress]::[".concat(p,"]"));var d=p.split(":");if(d.length<3)return this.log.warn("InputWithViewAndHashAddress template requires at least three parameters (ViewHash, Address and DataType) [".concat(p,"]")),"";if(i=d[0],a=d[1],"string"!=typeof(s=this.resolveStateFromAddress(d[2],e,o,null,n))||s.length<1)return this.log.warn("InputWithViewAndHashAddress template requires a valid Address for an Address in the third parameter [".concat(p,"]")),"";l=d[3],d.length>4&&(c=d[4]);var h={Address:s,DataAddress:s,Name:a,Hash:this.fable.ManifestFactory.sanitizeObjectKey(s),DataType:l,PictForm:{InformaryDataAddress:s,GroupIndex:0,Row:0}};this.currentInputIndex++,c&&(h.PictForm.InputType=c);var f=this.pict.views[i];if(!f||!f.sectionManifest||"function"!=typeof f.getRow)return this.log.warn("InputWithViewAndHashAddress template requires a valid dynamic View hash as the first parameter [".concat(p,"]")),"";for(var m=f.getRow(0,0),v=0;v<m.Inputs.length;v++)if(m.Inputs[v].Hash===h.Hash){var g=m.Inputs[v];return this.pict.parseTemplate(u.getInputMetatemplateTemplateReference(f,g.DataType,g.PictForm.InputType,'getInput("0","0","'.concat(g.PictForm.InputIndex,'")')),g,null,[f],f,r)}h.PictForm.InputIndex=m.Inputs.length,f.sectionManifest.addDescriptor(h.Address,h),m.Inputs.push(h),this.pict.providers.MetatemplateMacros.buildInputMacros(f,h);var w=u.getInputMetatemplateTemplateReference(f,h.DataType,h.PictForm.InputType,'getInput("0","0","'.concat(h.PictForm.InputIndex,'")'));return this.pict.parseTemplate(w,h,null,[f],f,r)}},{key:"renderAsync",value:function(t,e,o,n,r,i){var a,s,l,c,p,u=t.trim(),d=this.pict.providers.MetatemplateGenerator;this.pict.LogNoisiness>0&&this.log.trace("PICT Metacontroller Template [InputWithViewAndHashAddress]::[".concat(u,"]"));var h=u.split(":");if(h.length<3)return this.log.warn("InputWithViewAndHashAddress template requires at least three parameters (ViewHash, Address and DataType) [".concat(u,"]")),o(null,"");if(a=h[0],s=h[1],"string"!=typeof(l=this.resolveStateFromAddress(h[2],e,n,null,r))||l.length<1)return this.log.warn("InputWithViewAndHashAddress template requires a valid Address for an Address in the third parameter [".concat(u,"]")),o(null,"");c=h[3],h.length>4&&(p=h[4]);var f={Address:l,DataAddress:l,Name:s,Hash:this.fable.ManifestFactory.sanitizeObjectKey(l),DataType:c,PictForm:{InformaryDataAddress:l,GroupIndex:0,Row:0}};this.currentInputIndex++,p&&(f.PictForm.InputType=p);var m=this.pict.views[a];if(!m||!m.sectionManifest||"function"!=typeof m.getRow)return this.log.warn("InputWithViewAndHashAddress template requires a valid View hash as the first parameter [".concat(u,"]")),o(null,"");for(var v=m.getRow(0,0),g=0;g<v.Inputs.length;g++)if(v.Inputs[g].Hash===f.Hash){var w=v.Inputs[g],y=d.getInputMetatemplateTemplateReference(m,w.DataType,w.PictForm.InputType,'getInput("0","0","'.concat(w.PictForm.InputIndex,'")'));return void this.pict.parseTemplate(y,w,o,[m],m,i)}f.PictForm.InputIndex=v.Inputs.length,m.sectionManifest.addDescriptor(f.Address,f),v.Inputs.push(f),this.pict.providers.MetatemplateMacros.buildInputMacros(m,f);var b=d.getInputMetatemplateTemplateReference(m,f.DataType,f.PictForm.InputType,'getInput("0","0","'.concat(f.PictForm.InputIndex,'")'));this.pict.parseTemplate(b,f,o,[m],m,i)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],149:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~PluckJoinUnique:","~}"),r.addPattern("{~PJU:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i=t,a="object"===_typeof(e)?e:{};this.pict.LogNoisiness>4?this.log.trace("PICT Pluck Join Unique [fDataRender]::[".concat(i,"] with tmpData:"),a):this.pict.LogNoisiness>3&&this.log.trace("PICT Pluck Join Unique [fDataRender]::[".concat(i,"]"));var s=i.split("^");if(s.length<3)return"";for(var l=s.shift(),c=s.shift(),p=[],u={},d=0;d<s.length;d++){var h=this.resolveStateFromAddress(s[d],a,o,null,n);if(h&&Array.isArray(h)){for(var f=0;f<h.length;f++)if(null!==h[f]&&"object"===_typeof(h)){var m=this.pict.manifest.getValueByHash(h[f],c);m in u||(u[m]=!0,p.push(m))}}else h&&(h in u||(u[h]=!0,p.push(h)))}return p.join(l)}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],150:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~TabularEditingControls:","~}"),r.addPattern("{~TEC:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i=t.trim();if(!i||!e)return"";var a=this.pict.views[i];if(!a)return"";var s=e.Group,l=e.Key,c=this.pict.providers["Pict-Layout-Tabular"];return c&&"function"==typeof c._renderTabularEditingControlsHTML?c._renderTabularEditingControlsHTML(a,s,l):""}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],151:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).pict,r.fable,r.log,r.addPattern("{~TabularRowLabels:","~}"),r.addPattern("{~TRL:","~}"),r}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){var i=t.trim();if(!i||!e)return"";var a=this.pict.views[i];if(!a)return"";var s=e.Group,l=e.Key,c=this.pict.providers["Pict-Layout-Tabular"];return c&&"function"==typeof c._renderTabularRowLabelsHTML?c._renderTabularRowLabelsHTML(a,s,l):""}}])}(t("pict-template"));e.exports=n},{"pict-template":169}],152:[function(t,e,o){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"}},{}],153:[function(t,e,o){var n=t("pict-view"),r=t("../../package.json"),i=t("./Pict-View-DynamicForm-DefaultConfiguration.json"),a="PendingAsyncOperation",s="onTransactionComplete",l="ReadyToFinalize",c=function(t){function e(t,o,n){var a;_classCallCheck(this,e);var s=Object.assign({},JSON.parse(JSON.stringify(i)),o);if(!s.Manifests)throw new Error("PictSectionForm instantiation attempt without a Manifests in pOptions.Manifest -- cannot instantiate.");if(!("Section"in s.Manifests))throw new Error("PictSectionForm instantiation attempt without a Section manifest in pOptions.Manifests -- cannot instantiate.");if("#Pict-Form-Container"===s.DefaultDestinationAddress&&(s.DefaultDestinationAddress="#Pict-Form-Container-".concat(s.Hash)),"Form-Main"===s.DefaultRenderable&&(s.DefaultRenderable="Form-".concat(s.Hash)),s.SectionTemplateHash||(s.SectionTemplateHash="Pict-Form-Template-".concat(s.Hash)),s.Renderables.length<1&&s.Renderables.push({RenderableHash:s.DefaultRenderable,TemplateHash:s.SectionTemplateHash,RenderMethod:"replace"}),!(a=_callSuper(this,e,[t,s,n])).fable.PictDynamicFormDependencyManager)throw new Error("PictSectionForm instantiation attempt without a PictDynamicFormDependencyManager service in fable -- cannot instantiate.");if(a._PackagePictView=a._Package,a._Package=r,a.sectionDefinition=a.options,a.sectionManifest=a.fable.instantiateServiceProviderWithoutRegistration("Manifest",a.options.Manifests.Section),a.sectionSolvers=[],"Solvers"in a.options&&Array.isArray(a.options.Solvers))for(var l=0;l<a.options.Solvers.length;l++)"string"==typeof a.options.Solvers[l]&&a.sectionSolvers.push(a.options.Solvers[l]);if(a.formsTemplateSetPrefix="PFT-".concat(a.Hash,"-").concat(a.UUID),"MetaTemplates"in a.options&&Array.isArray(a.options.MetaTemplates))for(var c=0;c<a.options.MetaTemplates.length;c++){var p=a.options.MetaTemplates[c];if("HashPostfix"in p&&"Template"in p){var u="".concat(a.formsTemplateSetPrefix).concat(p.HashPostfix);a.pict.TemplateProvider.addTemplate(u,p.Template)}else a.log.warn("MetaTemplate entry ".concat(c," in PictSectionForm [").concat(a.UUID,"]::[").concat(a.Hash,"] does not have a Hash and Template property; custom template skipped."))}return a.customDefaultTemplatePrefix=null,a.formID="Pict-Form-".concat(a.Hash,"-").concat(a.UUID),a.viewMarshalDestination=null,a.initialBundleLoaded=!1,a.fable.ManifestFactory.initializeFormGroups(a),a._LoopDetectionData={},a}return _inherits(e,t),_createClass2(e,[{key:"defaultTemplatePrefix",get:function(){return this.customDefaultTemplatePrefix?this.customDefaultTemplatePrefix:this.pict.views.PictFormMetacontroller?this.pict.views.PictFormMetacontroller.formTemplatePrefix:this.pict.providers.MetatemplateGenerator.baseTemplatePrefix}},{key:"dataChanged",value:function(t){var 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){var o=this.sectionManifest.resolveHashAddress(t),n=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(n);try{var r=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(r,this.formID,this.sectionManifest,o);for(var i=this.sectionManifest.getValueByHash(r,o),a=this.getInputProviderList(e),s=0;s<a.length;s++)this.pict.providers[a[s]]?this.pict.providers[a[s]].onDataChange(this,e,i,e.Macro.HTMLSelector,n):this.log.error("Dynamic form dataChanged [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(a[s],"] 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()}},{key:"dataChangedTabular",value:function(t,e,o){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(o,"."));var n=this.getTabularRecordInput(t,e);if(void 0!==t&&void 0!==e&&void 0!==o&&"object"==_typeof(n)){var r=n.Address,i=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(i);try{var a=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalFormToData(a,this.formID,this.sectionManifest,r,o);for(var s=this.pict.providers.Informary.getComposedContainerAddress(n.PictForm.InformaryContainerAddress,o,n.PictForm.InformaryDataAddress),l=this.sectionManifest.getValueByHash(a,s),c=n.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(o,'"]'),p=this.getInputProviderList(n),u=0;u<p.length;u++)this.pict.providers[p[u]]?this.pict.providers[p[u]].onDataChangeTabular(this,n,l,c,o,i):this.log.error("Dynamic form dataChangedTabular [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(p[u],"] for input [").concat(n.Hash,"] row ").concat(o,"."))}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(o," from view in dataChanged event: ").concat(e))}finally{this.finalizeTransaction(i)}}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()}},{key:"setDataByInput",value:function(t,e){var o=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(o);try{this.sectionManifest.setValueByHash(this.getMarshalDestinationObject(),t.Hash,e);for(var n=e,r=t.Macro.HTMLSelector,i=this.getInputProviderList(t),a=0;a<i.length;a++)this.pict.providers[i[a]]?this.pict.providers[i[a]].onDataChange(this,t,n,r,o):this.log.error("Dynamic form setDataByInput [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(i[a],"] 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(o)}return!1}},{key:"setDataTabularByHash",value:function(t,e,o,n){var r=this.getGroup(t);if(!r)return this.log.warn("PICT View Metatemplate Helper setDataTabularByHash ".concat(t," was not a valid group.")),!1;for(var i=-1,a=Object.keys(r.supportingManifest.elementDescriptors),s=0;s<a.length;s++)if(r.supportingManifest.elementDescriptors[a[s]].Hash===e){i=s;break}if(i<0)return this.log.warn("PICT View Metatemplate Helper setDataTabularByHash Group ".concat(t," did not have hash [").concat(e,"].")),!1;var l=this.getTabularRecordInput(t,i);if(void 0!==t&&void 0!==o&&"object"==_typeof(l)){var c=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(c);try{var p=this.getMarshalDestinationObject(),u=this.pict.providers.Informary.getComposedContainerAddress(l.PictForm.InformaryContainerAddress,o,l.PictForm.InformaryDataAddress);this.sectionManifest.setValueByHash(p,u,n);for(var d=n,h=l.Macro.HTMLSelectorTabular+'[data-i-index="'.concat(o,'"]'),f=this.getInputProviderList(l),m=0;m<f.length;m++)this.pict.providers[f[m]]?this.pict.providers[f[m]].onDataChangeTabular(this,l,d,h,o,c):this.log.error("Dynamic form setDataTabularByHash [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(f[m],"] for input [").concat(l.Hash,"] row ").concat(o,"."))}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(o," from view in dataChanged event: ").concat(n))}finally{this.finalizeTransaction(c)}}return!1}},{key:"getMarshalDestinationAddress",value:function(){return this.viewMarshalDestination||this.pict.providers.DataBroker.marshalDestination}},{key:"getMarshalDestinationObject",value:function(){return this.pict.providers.DataBroker.resolveMarshalDestinationObject(this.viewMarshalDestination)}},{key:"getValueByHash",value:function(t){return this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),t)}},{key:"getTabularValueByHash",value:function(t,e,o){var n=this.getTabularRecordInput(t,e),r=this.pict.providers.Informary.getComposedContainerAddress(n.PictForm.InformaryContainerAddress,o,n.PictForm.InformaryDataAddress);return this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),r)}},{key:"onMarshalToView",value:function(){var t=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(t);try{var o=this.getMarshalDestinationObject();this.pict.providers.Informary.marshalDataToForm(o,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 _superPropGet(e,"onMarshalToView",this,3)([])}},{key:"manualMarshalDataToViewByInput",value:function(t,e){var o="string"==typeof e?e:this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(o);try{this.pict.providers.Informary.manualMarshalDataToFormByInput(t),this.runLayoutProviderFunctions("onDataMarshalToForm",o),this.runInputProviderFunctions("onDataMarshalToForm",t.Hash,null,o)}catch(t){this.log.error("Gross error marshaling data to view: ".concat(t))}finally{o!==e&&this.finalizeTransaction(o)}}},{key:"manualMarshalTabularDataToViewByInput",value:function(t,e,o){var n="string"==typeof o?o: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!==o&&this.finalizeTransaction(n)}}},{key:"onMarshalFromView",value:function(){try{var 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 _superPropGet(e,"onMarshalFromView",this,3)([])}},{key:"onAfterMarshalToForm",value:function(){var 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)}}},{key:"onSolve",value:function(){return this.options.ExecuteSolversWithoutMetacontroller&&this.pict.providers.DynamicSolver.solveViews([this.Hash]),_superPropGet(e,"onSolve",this,3)([])}},{key:"onBeforeRender",value:function(t){return this.initialBundleLoaded||(Array.isArray(this.sectionDefinition.InitialBundle)&&this.pict.EntityProvider.processBundle(this.sectionDefinition.InitialBundle),this.initialBundleLoaded=!0),_superPropGet(e,"onBeforeRender",this,3)([t])}},{key:"onBeforeRenderAsync",value:function(t,o){var n=this;_superPropGet(e,"onBeforeRenderAsync",this,3)([function(e){if(!n.initialBundleLoaded){if(Array.isArray(n.sectionDefinition.InitialBundle))return void n.pict.EntityProvider.gatherDataFromServer(n.sectionDefinition.InitialBundle,function(o){o&&n.log.error("Dynamic form [".concat(n.Hash,"]::[").concat(n.UUID,"] failed to load initial bundle: ").concat(o)),setTimeout(function(){return t(e)},0)});n.initialBundleLoaded=!0}return t(e)},o])}},{key:"onAfterRender",value:function(t){var o=this.fable.getUUID();this.pict.TransactionTracking.registerTransaction(o);try{this.runLayoutProviderFunctions("onGroupLayoutInitialize",o),this.runInputProviderFunctions("onInputInitialize",null,null,o,!0)}catch(t){this.log.error("Gross error running after render: ".concat(t.message||t))}finally{this.finalizeTransaction(o)}return _superPropGet(e,"onAfterRender",this,3)([t])}},{key:"runLayoutProviderFunctions",value:function(t,e){for(var o="string"==typeof e?e:this.fable.getUUID(),n=this.pict.TransactionTracking.registerTransaction(o),r=this.pict.ContentAssignment.getElement("".concat(this.sectionDefinition.DefaultDestinationAddress,' [data-i-pictdynamiclayout="true"]')),i=0;i<r.length;i++){var a=r[0].getAttribute("data-i-pictgroupindex"),s=r[0].getAttribute("data-i-pictlayout");if(isNaN(a)||a<0)this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions ".concat(a," was not a valid group index."));else{var l=this.getGroup(a);if(l)if(s&&"string"==typeof s){var c=this.pict.providers.MetatemplateGenerator.getGroupLayoutProvider(this,l);if(c&&t in c){var p=c[t];this.pict.TransactionTracking.checkEvent(n.TransactionKey,"G".concat(a,"-L").concat(s),t)&&p.call(c,this,l)}}else this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions for group ".concat(l," layout [").concat(s,"] was not a valid layout."));else this.log.warn("PICT View Metatemplate Helper runLayoutProviderFunctions for group ".concat(a," was not a valid group."))}}o!==e&&this.finalizeTransaction(o)}},{key:"_trackInfiniteLoop",value:function(t,e,o){this._LoopDetectionData[t]=this._LoopDetectionData[t]||{};var n="".concat(null!=e?e:"","::").concat(null!=o?o:""),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]}},{key:"runInputProviderFunctions",value:function(t,e,o,n,r){var i=this._trackInfiniteLoop(t,e,o);if(r&&i.Count>10)this.log.fatal(" !!!!!! Infinite loop detected in runInputProviderFunctions for function [".concat(t,"] on input [").concat(e,"] row [").concat(o,"] in form [").concat(this.Hash,"]::[").concat(this.UUID,"]. Aborting further processing."),{Stack:(new Error).stack});else{for(var a="string"==typeof n?n:this.fable.getUUID(),s=this.pict.TransactionTracking.registerTransaction(a),l=0;l<this.sectionDefinition.Groups.length;l++){var c=this.sectionDefinition.Groups[l];if(Array.isArray(c.Rows))for(var p=0;p<c.Rows.length;p++)for(var u=c.Rows[p],d=0;d<u.Inputs.length;d++){var h=u.Inputs[d];if(h&&h.PictForm&&(!e||e===h.Hash))for(var f=this.getInputProviderList(h),m=0;m<f.length;m++)if(this.pict.providers[f[m]]){var v=this.sectionManifest.resolveHashAddress(h.Hash),g=this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),v);try{this.pict.LogNoisiness>2&&this.log.trace("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] running provider [").concat(f[m],"] function [").concat(t,"] for input [").concat(h.Hash,"].")),("Option"==h.PictForm.InputType||this.pict.TransactionTracking.checkEvent(s.TransactionKey,"I".concat(h.Hash,"-P").concat(f[m]),t))&&this.pict.providers[f[m]][t](this,c,p,h,g,h.Macro.HTMLSelector,a)}catch(e){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to run provider [").concat(f[m],"] function [").concat(t,"] for input [").concat(h.Hash,"] with error: ").concat(e))}}else this.log.error("Dynamic form runInputProviderFunctions core [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(f[m],"] for input [").concat(h.Hash,"]."))}if(c.supportingManifest)for(var w=Object.keys(c.supportingManifest.elementDescriptors),y=0;y<w.length;y++){var b=this.getTabularRecordSet(c.GroupIndex);if(b&&Array.isArray(b)){var D=c.supportingManifest.elementDescriptors[w[y]];if(D&&D.PictForm&&(!e||e===D.Hash))for(var P=this.getInputProviderList(D),T=0;T<P.length;T++){var S=[];if(null!=o)o<b.length?S.push(o):this.log.error("Dynamic form runInputProviderFunctions [".concat(this.Hash,"]::[").concat(this.UUID,"] row index ").concat(o," is out of bounds for input [").concat(D.Hash,"] with ").concat(b.length," rows."));else for(var F=0;F<b.length;F++)S.push(F);for(var C=0,x=S;C<x.length;C++){var _=x[C];if(!this.pict.providers[P[T]]||null!=o&&o!==_)this.log.error("Dynamic form runInputProviderFunctions supporting [".concat(this.Hash,"]::[").concat(this.UUID,"] cannot find provider [").concat(P[T],"] for input [").concat(D.Hash,"]").concat(null!=o?" in row ".concat(o):"","."));else{var A=this.pict.providers.Informary.getComposedContainerAddress(D.PictForm.InformaryContainerAddress,_,D.PictForm.InformaryDataAddress),I=this.sectionManifest.getValueByHash(this.getMarshalDestinationObject(),A);try{this.pict.TransactionTracking.checkEvent(s.TransactionKey,"TI".concat(D.Hash,"-P").concat(P[T],"-R").concat(_),t)&&this.pict.providers[P[T]][t+"Tabular"](this,c,D,I,D.Macro.HTMLSelectorTabular,_,a)}catch(e){this.log.error("Dynamic form [".concat(this.Hash,"]::[").concat(this.UUID,"] failed to run provider [").concat(P[T],"] function [").concat(t,"] for input [").concat(D.Hash,"] with error: ").concat(e))}}}}}}}n!==a&&this.finalizeTransaction(a)}}},{key:"checkViewSpecificTemplate",value:function(t){return this.getViewSpecificTemplateHash(t)in this.pict.TemplateProvider.templates}},{key:"getViewSpecificTemplateHash",value:function(t){return"".concat(this.formsTemplateSetPrefix).concat(t)}},{key:"checkThemeSpecificTemplate",value:function(t){return this.getThemeSpecificTemplateHash(t)in this.pict.TemplateProvider.templates}},{key:"getThemeSpecificTemplateHash",value:function(t){return"".concat(this.defaultTemplatePrefix).concat(t)}},{key:"rebuildCustomTemplate",value:function(){this.pict.providers.MetatemplateGenerator.rebuildCustomTemplate(this)}},{key:"getGroupIndexFromHash",value:function(t){for(var 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}},{key:"getGroupFromHash",value:function(t){for(var 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}},{key:"getGroup",value:function(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]}},{key:"getGroups",value:function(){return Array.isArray(this.sectionDefinition.Groups)?this.sectionDefinition.Groups:[]}},{key:"getRow",value:function(t,e){var o=this.getGroup(t);return!!o&&(isNaN(e)?(this.log.warn("PICT View Metatemplate Helper getRow ".concat(e," was expecting a number.")),!1):e>o.Rows.length?[]:o.Rows[e])}},{key:"getRowKeyValuePair",value:function(t,e){return{Key:t,Value:this.getRow(t,e),Group:this.getGroup(t)}}},{key:"getInput",value:function(t,e,o){var n=this.getRow(t,e);return!!n&&(isNaN(o)?(this.log.warn("PICT View Metatemplate Helper getInput ".concat(o," was expecting a number.")),!1):o>n.Inputs.length?(this.log.warn("PICT View Metatemplate Helper getInput ".concat(o," was out of bounds.")),!1):n.Inputs[o])}},{key:"getInputProviderList",value:function(t){if(!("PictForm"in t))return[];if("Providers"in t.PictForm&&Array.isArray(t.PictForm.Providers)){var 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)}},{key:"getInputFromHash",value:function(t){return this.sectionManifest.getDescriptorByHash(t)}},{key:"inputDataRequest",value:function(t,e){return this.pict.providers.DynamicInputEvents.inputDataRequest(this,t,e)}},{key:"inputEvent",value:function(t,e,o){return this.pict.providers.DynamicInputEvents.inputEvent(this,t,e,o)}},{key:"globalInputEvent",value:function(t,e,o){this.manifestInputEvent(t,e,o)}},{key:"manifestInputEvent",value:function(t,e,o){for(var n=o&&"string"==typeof o?o:this.fable.getUUID(),r=Object.keys(this.sectionManifest.elementHashes),i=0;i<r.length;i++)r[i]in e||(e[r[i]]=!0,this.inputEvent(r[i],t,o));o!==n&&this.finalizeTransaction(n)}},{key:"inputDataRequestTabular",value:function(t,e,o,n){return this.pict.providers.DynamicInputEvents.inputDataRequestTabular(this,t,e,o,n)}},{key:"inputEventTabular",value:function(t,e,o,n,r){return this.pict.providers.DynamicInputEvents.inputEventTabular(this,t,e,o,n,r)}},{key:"registerEventTransactionAsyncOperation",value:function(t,e){this.pict.TransactionTracking.pushToTransactionQueue(t,e,a)}},{key:"eventTransactionAsyncOperationComplete",value:function(t,e){for(var o=this.pict.TransactionTracking.checkTransactionQueue(t),n=0,r=0,i=!1,c=0;c<o.length;c++){var p=o[c];p.Type===a&&(p.Data===e?(o.splice(c,1),++r,--c):++n),p.Type===l&&(i=!0)}if(0!==r){if(i&&0===n){for(var u=0;u<o.length;u++){var d=o[u];if(d.Type===s){if(o.splice(u,1),--u,"function"!=typeof d.Data){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback was not a function.");continue}try{d.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,"."))}},{key:"finalizeTransaction",value:function(t){this.pict.TransactionTracking.pushToTransactionQueue(t,null,l);var e,o=this.pict.TransactionTracking.checkTransactionQueue(t),n=0,r=_createForOfIteratorHelper(o);try{for(r.s();!(e=r.n()).done;){e.value.Type===a&&++n}}catch(t){r.e(t)}finally{r.f()}if(n>0)return this.pict.log.info("PICT View Metatemplate Helper finalizeTransaction ".concat(t," is waiting on ").concat(n," pending async operations.")),!1;for(var i=0;i<o.length;i++){var c=o[i];if(c.Type===s){if(o.splice(i,1),--i,"function"!=typeof c.Data){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback was not a function.");continue}try{c.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}},{key:"registerOnTransactionCompleteCallback",value:function(t,e){var o,n=0,r=!1,i=_createForOfIteratorHelper(this.pict.TransactionTracking.checkTransactionQueue(t));try{for(i.s();!(o=i.n()).done;){var c=o.value;c.Type===a&&++n,c.Type===l&&(r=!0)}}catch(t){i.e(t)}finally{i.f()}r&&0===n?e():this.pict.TransactionTracking.pushToTransactionQueue(t,e,s)}},{key:"groupInputEvent",value:function(t,e,o,n){var r=this.getGroup(t);if(r){var i=n&&"string"==typeof n?n:this.fable.getUUID();if(n!==i&&this.pict.TransactionTracking.registerTransaction(i),r.Rows.length<1){var a=this.getTabularRecordSet(t);if(!Array.isArray(a))return;for(var s=0;s<a.length;s++)for(var l=0,c=Object.values(r.supportingManifest.elementDescriptors);l<c.length;l++){var p=c[l],u="".concat(this.Hash,"-").concat(r.Hash,"-").concat(p.Hash,"-").concat(s);u in o||(o[u]=!0,this.inputEventTabular(t,p.PictForm.InputIndex,s,e,i))}}var d,h=_createForOfIteratorHelper(r.Rows||[]);try{for(h.s();!(d=h.n()).done;){var f,m=d.value,v=_createForOfIteratorHelper(m.Inputs||[]);try{for(v.s();!(f=v.n()).done;){var g=f.value,w="".concat(this.Hash,"-").concat(r.Hash,"-").concat(g.Hash,"-").concat(m.Hash);w in o||(o[w]=!0,this.inputEvent(g.Hash,e,i))}}catch(t){v.e(t)}finally{v.f()}}}catch(t){h.e(t)}finally{h.f()}n!==i&&this.finalizeTransaction(i)}else this.log.warn("PICT View Metatemplate Helper subManifestInputEvent ".concat(t," is not a valid group index."))}},{key:"sectionInputEvent",value:function(t,e,o){var n=this.sectionDefinition.Groups.length,r=o&&"string"==typeof o?o:this.fable.getUUID();o!==r&&this.pict.TransactionTracking.registerTransaction(r);for(var i=0;i<n;i++)this.groupInputEvent(i,t,e,o);o!==r&&this.finalizeTransaction(r)}},{key:"getTabularRecordInput",value:function(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordInput(this,t,e)}},{key:"getTabularRecordInputByHash",value:function(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordInputByHash(this,t,e)}},{key:"getTabularRecordData",value:function(t,e){return this.pict.providers.DynamicTabularData.getTabularRecordData(this,t,e)}},{key:"getTabularRecordSet",value:function(t){return this.pict.providers.DynamicTabularData.getTabularRecordSet(this,t)}},{key:"createDynamicTableRow",value:function(t){return this.pict.providers.DynamicTabularData.createDynamicTableRow(this,t)}},{key:"setDynamicTableRowIndex",value:function(t,e,o){return this.pict.providers.DynamicTabularData.setDynamicTableRowIndex(this,t,e,o)}},{key:"moveDynamicTableRowDown",value:function(t,e){return this.pict.providers.DynamicTabularData.moveDynamicTableRowDown(this,t,e)}},{key:"moveDynamicTableRowUp",value:function(t,e){return this.pict.providers.DynamicTabularData.moveDynamicTableRowUp(this,t,e)}},{key:"deleteDynamicTableRow",value:function(t,e){return this.pict.providers.DynamicTabularData.deleteDynamicTableRow(this,t,e)}},{key:"isPictSectionForm",get:function(){return!0}}])}(n);e.exports=c,e.exports.default_configuration=i},{"../../package.json":94,"./Pict-View-DynamicForm-DefaultConfiguration.json":152,"pict-view":171}],154:[function(t,e,o){var n=t("pict-view"),r=t("../services/Pict-Service-DynamicFormDependencyManager.js"),i=t("./Pict-View-DynamicForm.js"),a="PendingAsyncOperation",s="onTransactionComplete",l="ReadyToFinalize",c=function(e){function o(e,n,i){var a;return _classCallCheck(this,o),(a=_callSuper(this,o,[e,n,i])).serviceType="PictFormMetacontroller",a.fable.addAndInstantiateSingletonService("PictDynamicFormDependencyManager",r.default_configuration,r),a.lastRenderedViews=[],a.formTemplatePrefix=a.pict.providers.MetatemplateGenerator.baseTemplatePrefix,a.manifest=a.pict.manifest,a.AutoSolveOnFirstRender=!0,a.FirstRenderCompleted=!1,a.comprehensionDestinationAddress=a.options&&"string"==typeof a.options.ComprehensionDestinationAddress&&a.options.ComprehensionDestinationAddress.length>0?a.options.ComprehensionDestinationAddress:"AppData.FormEntityComprehensions",a.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")},a}return _inherits(o,e),_createClass2(o,[{key:"viewMarshalDestination",get:function(){return this.pict.providers.DataBroker.marshalDestination},set:function(t){this.pict.providers.DataBroker.marshalDestination=t}},{key:"onMarshalFromView",value:function(){for(var t=Object.keys(this.fable.views),e=0;e<t.length;e++)this.fable.views[t[e]].isPictSectionForm&&this.fable.views[t[e]].marshalFromView();return _superPropGet(o,"onMarshalFromView",this,3)([])}},{key:"onMarshalToView",value:function(){for(var t=Object.keys(this.fable.views),e=0;e<t.length;e++)this.fable.views[t[e]].isPictSectionForm&&this.fable.views[t[e]].marshalToView();return _superPropGet(o,"onMarshalToView",this,3)([])}},{key:"gatherInitialBundle",value:function(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,function(e){setTimeout(function(){return t(e)},0)})):(this.log.info("No initial bundle to gather."),t())}},{key:"onAfterInitializeAsync",value:function(t){return _superPropGet(o,"onAfterInitializeAsync",this,3)([function(e){var o=this;if(e)return t(e);this.gatherInitialBundle(function(e){return o.bootstrapPictFormViewsFromManifest(),o.generateMetatemplate(),t(e)})}.bind(this)])}},{key:"onAfterRender",value:function(t){var e=_superPropGet(o,"onAfterRender",this,3)([t]);return this.regenerateFormSectionTemplates(),this.renderFormSections(),this.AutoSolveOnFirstRender&&!this.FirstRenderCompleted&&(this.FirstRenderCompleted=!0,this.pict.providers.DynamicSolver.solveViews()),this.options.AutoPopulateAfterRender&&this.marshalToView(),e}},{key:"onSolve",value:function(){return this.pict.providers.DynamicSolver.solveViews(),_superPropGet(o,"onSolve",this,3)([])}},{key:"runSolver",value:function(t,e){this.pict.providers.DynamicSolver.runSolver(t,e)}},{key:"onBeforeFilterViews",value:function(t){return t}},{key:"onAfterFilterViews",value:function(t){return t}},{key:"findDynamicSectionManifestDefinition",value:function(t){var e,o=null===(e=this.manifestDescription)||void 0===e||null===(e=e.ReferenceManifests)||void 0===e?void 0:e[t];return"object"!==_typeof(o)?(this.log.error("findDynamicSectionManifestDefinition() could not find a section manifest with hash [".concat(t,"]")),null):o}},{key:"injectManifestAndRender",value:function(t,e,o){var n=this,r=o?this.createDistinctManifest(t,o):t,i=this.injectManifest(r,e);return this.updateMetatemplateInDOM(),setTimeout(function(){var t,e=_createForOfIteratorHelper(i);try{for(e.s();!(t=e.n()).done;){t.value.render()}}catch(t){e.e(t)}finally{e.f()}if(n.options.AutoPopulateAfterRender){var o,r=_createForOfIteratorHelper(i);try{for(r.s();!(o=r.n()).done;){o.value.marshalToView()}}catch(t){r.e(t)}finally{r.f()}}},0),i}},{key:"injectManifest",value:function(t,e){var o=e?e.startsWith("PictSectionForm-")?e:"PictSectionForm-".concat(e):null,n=Object.keys(this.pict.views),r=o?n.indexOf(o):-1,i=[];if(r>=0)for(var a=r+1;a<n.length;a++){var s=n[a];i.push({key:s,view:this.pict.views[s]}),delete this.pict.views[s]}for(var l=this.bootstrapAdditiveManifest(t,o),c=0,p=i;c<p.length;c++){var u=p[c];this.pict.views[u.key]=u.view}this.generateMetatemplate();var d,h=_createForOfIteratorHelper(l);try{for(h.s();!(d=h.n()).done;){d.value.rebuildCustomTemplate()}}catch(t){h.e(t)}finally{h.f()}return this.pict.CSSMap.injectCSS(),l}},{key:"buildManifestTranslations",value:function(t){var e,o={},n=_createForOfIteratorHelper(t.Sections||[]);try{for(n.s();!(e=n.n()).done;){var r=e.value;r.OriginalHash&&(o[r.OriginalHash]=r.Hash);var i,a=_createForOfIteratorHelper(r.Groups||[]);try{for(a.s();!(i=a.n()).done;){var s=i.value;s.OriginalHash&&(o[s.OriginalHash]=s.Hash)}}catch(t){a.e(t)}finally{a.f()}}}catch(t){n.e(t)}finally{n.f()}for(var l={},c=0,p=Object.values((null==t?void 0:t.Descriptors)||{});c<p.length;c++){var u=p[c];u.OriginalDataAddress&&(o[u.OriginalDataAddress]=u.DataAddress),u.OriginalHash&&(l[u.OriginalHash]=u.Hash)}return{AddressTranslation:o,HashTranslation:l}}},{key:"rewriteSolverExpression",value:function(t,e,o){var n=e||{},r=o||{},i=this.fable.instantiateServiceProviderIfNotExists("ExpressionParser"),a=this.viewMarshalDestination;if("string"!=typeof t||0===t.length)return t;var s={};i.tokenize(t,s);for(var l=Array.from(s.OriginalRawTokens),c=!1,p=[],u=0,d=0;d<l.length;d++){var h=l[d],f=i.Tokenizer.getTokenType(h);if("("!==h)if(")"!==h)if(","!==h){if("Token.Symbol"===f){var m=null;if(h in n)m=n[h];else if(h in r)m=r[h];else if(a&&h.startsWith(a+".")){var v=h.substring(a.length+1);v in n?m=a+"."+n[v]:v in r&&(m=a+"."+r[v])}null!==m&&(l[d]=m,c=!0)}else if("Token.StateAddress"===f){var g=h.substring(1,h.length-1),w=null;if(g in r)w="{"+r[g]+"}";else if(g in n)w="{"+n[g]+"}";else if(a&&g.startsWith(a+".")){var y=g.substring(a.length+1);y in r?w="{"+a+"."+r[y]+"}":y in n&&(w="{"+a+"."+n[y]+"}")}null!==w&&(l[d]=w,c=!0)}else if("Token.String"===f&&p.length>0){var b=p[p.length-1],D=i.functionMap[b.name];if(D&&Array.isArray(D.AddressParameterIndices)&&D.AddressParameterIndices.includes(b.paramIndex)){var P=h.substring(1,h.length-1),T=null;if(P in n)T='"'+n[P]+'"';else if(P in r)T='"'+r[P]+'"';else if(a&&P.startsWith(a+".")){var S=P.substring(a.length+1);S in n?T='"'+a+"."+n[S]+'"':S in r&&(T='"'+a+"."+r[S]+'"')}null!==T&&(l[d]=T,c=!0)}}}else p.length>0&&p[p.length-1].depth===u-1&&p[p.length-1].paramIndex++;else u--,p.length>0&&p[p.length-1].depth===u&&p.pop();else{if(d>0){var F=l[d-1].toLowerCase();F in i.functionMap&&p.push({name:F,paramIndex:0,depth:u})}u++}}return c?i.recompose(l):t}},{key:"createDistinctManifest",value:function(t,e){var o,n=this,r=null!=e?e:this.pict.getUUID().replace(/-/g,""),i=JSON.parse(JSON.stringify(t)),a={},s=_createForOfIteratorHelper(i.Sections||[]);try{for(s.s();!(o=s.n()).done;){var l=o.value;l.Hash||(l.Hash="".concat(this.fable.getUUID())),l.OriginalHash=l.Hash,l.Hash="".concat(l.Hash,"_").concat(r),a[l.OriginalHash]=l.Hash;var c,p=_createForOfIteratorHelper(l.Groups||[]);try{for(p.s();!(c=p.n()).done;){var u=c.value;u.Hash||(u.Hash="".concat(this.fable.getUUID())),u.OriginalHash=u.Hash,u.Hash="".concat(u.Hash,"_").concat(r),a[u.OriginalHash]=u.Hash}}catch(t){p.e(t)}finally{p.f()}}}catch(t){s.e(t)}finally{s.f()}for(var d=i.Descriptors||{},h={},f=0,m=Object.entries(d);f<m.length;f++){var v=_slicedToArray(m[f],2),g=v[0],w=v[1];w.DataAddress||(w.DataAddress=g),w.OriginalDataAddress=w.DataAddress,w.DataAddress="".concat(r,".").concat(w.OriginalDataAddress),null!=w.Address&&(w.Address=w.DataAddress),w.Hash&&(w.OriginalHash=w.Hash,w.Hash="".concat(w.Hash,"_").concat(r)),w.PictForm&&(w.PictForm.Section&&(w.PictForm.Section="".concat(w.PictForm.Section,"_").concat(r)),w.PictForm.Group&&(w.PictForm.Group="".concat(w.PictForm.Group,"_").concat(r))),h[w.DataAddress]=w}i.Descriptors=h;for(var y={},b=0,D=Object.values((null==i?void 0:i.Descriptors)||{});b<D.length;b++){var P=D[b];P.OriginalDataAddress&&(a[P.OriginalDataAddress]=P.DataAddress),P.OriginalHash&&(y[P.OriginalHash]=P.Hash)}for(var T=0,S=Object.entries(a);T<S.length;T++)for(var F=_slicedToArray(S[T],2),C=F[0],x=F[1],_=function(){var t=I[A];if(t===C)return 1;var e=a[t].replace(new RegExp("^".concat(C.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"\\b"),"g"),x);if(e!==a[t]){n.pict.log.info('DocumentDynamicSectionManager.createDistinctManifest: Updated address translation for "'.concat(t,'" from "').concat(a[t],'" to "').concat(e,'".')),a[t]=e;var o=Object.entries(i.Descriptors).find(function(e){var o=_slicedToArray(e,2);o[0];return o[1].OriginalDataAddress===t}),r=_slicedToArray(o,2),s=r[0];r[1];i.Descriptors[s].DataAddress=e,null!=i.Descriptors[s].Address&&(i.Descriptors[s].Address=i.Descriptors[s].DataAddress),i.Descriptors[e]=i.Descriptors[s],delete i.Descriptors[s]}},A=0,I=Object.keys(a);A<I.length;A++)_();var k,H=function(t,e,o){var r=t[e],i="string"==typeof r?r:r.Expression;if(i){var s=n.rewriteSolverExpression(i,y,a);s!==i&&(n.pict.log.info("DocumentDynamicSectionManager.createDistinctManifest: Updated ".concat(o," ").concat(e,' from "').concat(i,'" to "').concat(s,'".')),"string"==typeof r?t[e]=s:t[e].Expression=s)}},R=_createForOfIteratorHelper(i.Sections||[]);try{for(R.s();!(k=R.n()).done;){var M=k.value;if(Array.isArray(M.Solvers)&&M.Solvers.length>0)for(var V=0;V<M.Solvers.length;V++)H(M.Solvers,V,"section solver reference");var E,L=_createForOfIteratorHelper(M.Groups||[]);try{for(L.s();!(E=L.n()).done;){var N=E.value;if(N.RecordSetAddress){var O="".concat(r,".").concat(N.RecordSetAddress);this.pict.log.info('DocumentDynamicSectionManager.createDistinctManifest: Updated group record set address from "'.concat(N.RecordSetAddress,'" to "').concat(O,'".')),N.RecordSetAddress=O}if(Array.isArray(N.RecordSetSolvers)&&N.RecordSetSolvers.length>0)for(var G=0;G<N.RecordSetSolvers.length;G++)H(N.RecordSetSolvers,G,"group solver reference")}}catch(t){L.e(t)}finally{L.f()}}}catch(t){R.e(t)}finally{R.f()}if(Array.isArray(i.ValidationSolvers))for(var B=0;B<i.ValidationSolvers.length;B++)H(i.ValidationSolvers,B,"validation solver reference");return i}},{key:"injectManifestsByHash",value:function(t,e,o){var n,r=[],i=_createForOfIteratorHelper(t);try{for(i.s();!(n=i.n()).done;){var a=n.value,s=this.findDynamicSectionManifestDefinition(a);if(s){var l=this.createDistinctManifest(s,o),c=this.injectManifest(l,e);r=r.concat(c)}}}catch(t){i.e(t)}finally{i.f()}this.updateMetatemplateInDOM(),setTimeout(function(){var t,e=_createForOfIteratorHelper(r);try{for(e.s();!(t=e.n()).done;){t.value.render()}}catch(t){e.e(t)}finally{e.f()}},0)}},{key:"bootstrapAdditiveManifest",value:function(t,e){var o,n=[],r=_createForOfIteratorHelper(this.bootstrapPictFormViewsFromManifest(t,e));try{for(r.s();!(o=r.n()).done;){var i=o.value,a=this.pict.views["PictSectionForm-".concat(i.Hash)];a&&n.push(a)}}catch(t){r.e(t)}finally{r.f()}return n}},{key:"filterViews",value:function(t,e){var o=this,n={ViewHashList:Object.keys(this.pict.views),RenderLastRenderedViewsWithoutCustomization:!0,LastRenderedViews:this.lastRenderedViews,FilterFunction:t,SortFunction:e,FilteredViewList:[]};n=this.onBeforeFilterViews(n);for(var r=0;r<n.ViewHashList.length;r++){var i=this.fable.views[n.ViewHashList[r]];if(!n.FilterFunction||n.FilterFunction(i))if(i.isPictSectionForm){if("function"!=typeof n.FilterFunction&&!i.sectionDefinition.IncludeInDefaultDynamicRender)continue;n.FilteredViewList.push(i)}else this.options.OnlyRenderDynamicSections&&!i.options.IncludeInMetacontrollerOperations||n.FilteredViewList.push(i)}var a,s=_createForOfIteratorHelper(n.FilteredViewList.filter(function(t){return t.options.DynamicPlacementMode||t.options.DynamicAnchor}));try{var l=function(){var t,e=a.value,r=e.options.DynamicPlacementMode||"After",i=e.options.DynamicAnchor,s=n.FilteredViewList.findIndex(function(t){return t===e});switch(r){case"First":n.FilteredViewList.splice(s,1),n.FilteredViewList.unshift(e);break;case"Last":n.FilteredViewList.splice(s,1),n.FilteredViewList.push(e);break;case"Before":case"After":if((t=n.FilteredViewList.findIndex(function(t){return t.Hash==i}))<0){var l="PictSectionForm-".concat(i);t=n.FilteredViewList.findIndex(function(t){return t.Hash==l})}if(t<0){o.log.error("No anchor view [".concat(i,"] found to position view [").concat(e.Hash,"] [").concat(r,"]."));break}n.FilteredViewList.splice(s,1),s<t&&--t,"After"===r&&++t,n.FilteredViewList.splice(t,0,e);break;default:o.log.error("Not auto-positioning view with unknown DynamicPlacementMode: ".concat(r))}};for(s.s();!(a=s.n()).done;)l()}catch(t){s.e(t)}finally{s.f()}return"function"==typeof n.SortFunction&&n.FilteredViewList.sort(n.SortFunction),(n=this.onAfterFilterViews(n)).FilteredViewList}},{key:"renderSpecificFormSection",value:function(t){this.lastRenderedViews=this.filterViews(function(e){return e.Hash==t}),this.regenerateFormSectionTemplates(),this.generateMetatemplate(),this.render()}},{key:"renderDefaultFormSections",value:function(){this.lastRenderedViews=this.filterViews(function(t){var e,o;return null!==(e=null==t||null===(o=t.sectionDefinition)||void 0===o?void 0:o.IncludeInDefaultDynamicRender)&&void 0!==e&&e}),this.regenerateFormSectionTemplates(),this.generateMetatemplate(),this.render()}},{key:"renderFormSections",value:function(t,e){for(var o=this.filterViews(t,e),n=0;n<o.length;n++)o[n]!==this&&o[n].render()}},{key:"marshalFormSections",value:function(t,e){for(var o=this.filterViews(t,e),n=0;n<o.length;n++)o[n]!==this&&o[n].marshalToView()}},{key:"regenerateFormSectionTemplates",value:function(t,e){for(var o=this.filterViews(t,e),n=0;n<o.length;n++){var r=o[n];r!==this&&(r.isPictSectionForm&&r.rebuildCustomTemplate())}this.pict.CSSMap.injectCSS()}},{key:"generateMetatemplate",value:function(t,e){var o="";this.formTemplatePrefix||(this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix),o+="{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Header:Pict.views["').concat(this.Hash,'"]~}');for(var n=this.filterViews(t,e),r=0;r<n.length;r++){var i=n[r];i!==this&&(i.options.IncludeInMetatemplateSectionGeneration?(o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(i.Hash,'"]~}'),i.isPictSectionForm?o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container:Pict.views["').concat(i.Hash,'"]~}'):(i.options.CustomTargetID=i.options.DefaultDestinationAddress.replace(/#/,""),o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(i.Hash,'"]~}')),o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(i.Hash,'"]~}')):i.isPictSectionForm||(i.options.CustomTargetID=i.options.DefaultDestinationAddress.replace(/#/,""),o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(i.Hash,'"]~}'),o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(i.Hash,'"]~}'),o+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(i.Hash,'"]~}')))}o+="{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Footer:Pict.views["').concat(this.Hash,'"]~}'),this.pict.TemplateProvider.addTemplate(this.options.MetaTemplateHash,o)}},{key:"updateMetatemplateInDOM",value:function(t,e){this.formTemplatePrefix||(this.formTemplatePrefix=this.pict.providers.MetatemplateGenerator.baseTemplatePrefix);for(var o,n=this.filterViews(t,e),r=null,i=null,a=0;a<n.length;a++){var s=n[a];if(s!==this&&(s.isPictSectionForm&&s.options.IncludeInMetatemplateSectionGeneration)){var l=s.options.CustomTargetID||"Pict-".concat(this.UUID,"-").concat(s.options.Hash,"-Wrap"),c=this.pict.ContentAssignment.getElement("#".concat(l));if(c.length>0){var p=c[0];i&&(this.pict.ContentAssignment.insertContentBefore("#".concat(l),o),i=null,o=null),r=p}else{var u="";s.options.IncludeInMetatemplateSectionGeneration?(u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(s.Hash,'"]~}'),s.isPictSectionForm?u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container:Pict.views["').concat(s.Hash,'"]~}'):(s.options.CustomTargetID=s.options.DefaultDestinationAddress.replace(/#/,""),u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(s.Hash,'"]~}')),u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(s.Hash,'"]~}')):s.isPictSectionForm||(s.options.CustomTargetID=s.options.DefaultDestinationAddress.replace(/#/,""),u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Prefix:Pict.views["').concat(s.Hash,'"]~}'),u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Custom:Pict.views["').concat(s.Hash,'"]~}'),u+="\n{~T:".concat(this.formTemplatePrefix,'-Template-Form-Container-Wrap-Postfix:Pict.views["').concat(s.Hash,'"]~}'));var d=this.pict.parseTemplate(u,s,null,[this]);r?(this.pict.ContentAssignment.insertContentAfter("#".concat(r.id),d),r=(c=this.pict.ContentAssignment.getElement("#".concat(l)))[0]):(i=l,o=d)}}}i&&(this.pict.ContentAssignment.appendContent("#Pict-".concat(this.UUID,"-FormContainer"),o),i=null,o=null)}},{key:"getSectionDefinition",value:function(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{var 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}}},{key:"getSectionViewFromHash",value:function(t){var e="string"==typeof t&&t;if(!e)return this.log.error("getSectionViewFromHash() called without a valid section hash."),!1;var o="PictSectionForm-".concat(e);return o in this.fable.views?this.fable.views[o]:(this.log.error("getSectionViewFromHash() could not find a view for section hash [".concat(e,"].")),!1)}},{key:"clearManifestDescription",value:function(){this.manifestDescription=null}},{key:"bootstrapPictFormViewsFromManifest",value:function(t,e){var o=this,n="object"===_typeof(t)&&t,r=[];if("object"!=_typeof(n)){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."),r;n=this.fable.settings.DefaultFormManifest}if(this.manifestDescription){this.stashedManifestDescription=this.manifestDescription,this.manifestDescription=n;for(var a=0,s=Object.entries(this.manifestDescription.Descriptors||{});a<s.length;a++){var l=_slicedToArray(s[a],2),c=l[0],p=l[1];this.stashedManifestDescription.Descriptors[c]?this.log.error("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() found a duplicate descriptor key [".concat(c,"] when merging manifests. The new descriptor will be skipped.")):this.stashedManifestDescription.Descriptors[c]=JSON.parse(JSON.stringify(p))}for(var u=0,d=Object.keys(this.manifestDescription.ReferenceManifests||{});u<d.length;u++){var h=d[u];this.stashedManifestDescription.ReferenceManifests[h]?this.log.warn("PictFormMetacontroller.bootstrapPictFormViewsFromManifest() found a duplicate reference manifest key [".concat(h,"] when merging manifests. The new reference manifest will be skipped.")):this.stashedManifestDescription.ReferenceManifests[h]=JSON.parse(JSON.stringify(this.manifestDescription.ReferenceManifests[h]))}var f=this.stashedManifestDescription.Sections.findIndex(function(t){return t.Hash==e});f<0?f=0:++f;var m,v=_createForOfIteratorHelper(this.manifestDescription.Sections||[]);try{for(v.s();!(m=v.n()).done;){var g=m.value,w=JSON.parse(JSON.stringify(g));this.stashedManifestDescription.Sections.splice(f,0,w),++f}}catch(t){v.e(t)}finally{v.f()}}else this.manifestDescription=n;var y=this.fable.instantiateServiceProviderWithoutRegistration("Manifest",this.manifestDescription);if(this.options.AutoPopulateDefaultObject){var b=this.pict.providers.DataBroker.marshalDestinationObject;"object"===_typeof(b)&&y.populateDefaults(b)}if("Sections"in this.manifestDescription&&Array.isArray(this.manifestDescription.Sections))for(var D=0;D<this.manifestDescription.Sections.length;D++){var P=this.getSectionDefinition(this.manifestDescription.Sections[D]);P&&r.push(P)}for(var T={},S=Object.keys(y.elementDescriptors),F=0;F<S.length;F++){var C=y.elementDescriptors[S[F]];C&&this.pict.manifest.addDescriptor(S[F],C),"object"==_typeof(C)&&"PictForm"in C&&"object"==_typeof(C.PictForm)&&"Section"in C.PictForm&&"string"==typeof C.PictForm.Section&&(T[C.PictForm.Section]=!0)}for(var x=Object.keys(T),_=function(t){r.find(function(e){return e.Hash==x[t]})||r.push(o.getSectionDefinition({Hash:x[t]}))},A=0;A<x.length;A++)_(A);for(var I=0;I<r.length;I++){var k="PictSectionForm-".concat(r[I].Hash);if(k in this.fable.views)this.log.info("getSectionList() found an existing view for section [".concat(r[I].Hash,"] so will be skipped."));else{var H=JSON.parse(JSON.stringify(r[I]));"Manifests"in H||(H.Manifests={}),H.Manifests.Section=this.manifestDescription,this.pict.addView(k,H,i)}}if("PickLists"in this.manifestDescription)for(var R=Object.keys(this.manifestDescription.PickLists),M=0;M<R.length;M++){var V=this.manifestDescription.PickLists[R[M]];this.pict.providers.DynamicMetaLists.buildList(V)}for(var E=0;E<r.length;E++){var L=r[E];"CustomCSS"in L&&"string"==typeof L.CustomCSS&&this.pict.CSSMap.addCSS("PSF-SectionCSS-".concat(L.Hash),L.CustomCSS)}return this.stashedManifestDescription&&(this.manifestDescription=this.stashedManifestDescription,delete this.stashedManifestDescription),r}},{key:"triggerGlobalInputEvent",value:function(t,e){var o=e&&"string"==typeof e?e:this.fable.getUUID();e!==o&&this.pict.TransactionTracking.registerTransaction(o);for(var n="string"==typeof t?t:this.fable.getUUID(),r=Object.keys(this.pict.views),i={},a=null,s=0;s<r.length;s++){var l=this.pict.views[r[s]];l.isPictSectionForm&&(a=l,l.sectionInputEvent(n,i,o))}e!==o&&a&&a.finalizeTransaction(o)}},{key:"registerEventTransactionAsyncOperation",value:function(t,e){this.pict.TransactionTracking.pushToTransactionQueue(t,e,a)}},{key:"eventTransactionAsyncOperationComplete",value:function(t,e){for(var o=this.pict.TransactionTracking.checkTransactionQueue(t),n=0,r=0,i=!1,c=0;c<o.length;c++){var p=o[c];p.Type===a&&(p.Data===e?(o.splice(c,1),++r,--c):++n),p.Type===l&&(i=!0)}if(0!==r){if(i&&0===n){for(var u=0;u<o.length;u++){var d=o[u];if(d.Type===s){if(o.splice(u,1),--u,"function"!=typeof d.Data){this.log.error("PICT View Metatemplate Helper eventTransactionAsyncOperationComplete transaction callback was not a function.");continue}try{d.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,"."))}},{key:"finalizeTransaction",value:function(t){this.pict.TransactionTracking.pushToTransactionQueue(t,null,l);var e,o=this.pict.TransactionTracking.checkTransactionQueue(t),n=0,r=_createForOfIteratorHelper(o);try{for(r.s();!(e=r.n()).done;){e.value.Type===a&&++n}}catch(t){r.e(t)}finally{r.f()}if(n>0)return this.pict.log.info("PICT View Metatemplate Helper finalizeTransaction ".concat(t," is waiting on ").concat(n," pending async operations.")),!1;for(var i=0;i<o.length;i++){var c=o[i];if(c.Type===s){if(o.splice(i,1),--i,"function"!=typeof c.Data){this.log.error("PICT View Metatemplate Helper finalizeTransaction transaction callback was not a function.");continue}try{c.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}},{key:"registerOnTransactionCompleteCallback",value:function(t,e){var o,n=0,r=!1,i=_createForOfIteratorHelper(this.pict.TransactionTracking.checkTransactionQueue(t));try{for(i.s();!(o=i.n()).done;){var c=o.value;c.Type===a&&++n,c.Type===l&&(r=!0)}}catch(t){i.e(t)}finally{i.f()}r&&0===n?e():this.pict.TransactionTracking.pushToTransactionQueue(t,e,s)}},{key:"showSupportViewInlineEditor",value:function(){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()}},{key:"isPictMetacontroller",get:function(){return!0}}])}(n);e.exports=c,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":138,"./Pict-View-DynamicForm.js":153,"./support/Pict-View-PSF-AppData-Visualization.js":156,"./support/Pict-View-PSF-DebugViewer.js":157,"./support/Pict-View-PSF-LifeCycle-Visualization.js":158,"./support/Pict-View-PSF-Solver-Visualization.js":159,"./support/Pict-View-PSF-SpecificSolve-Visualization.js":160,"pict-view":171}],155:[function(t,e,o){var n=t("pict-provider"),r={ProviderIdentifier:"Pict-Form-SupportExtensions",AutoInitialize:!0,AutoInitializeOrdinal:0,AutoSolveWithApp:!1},i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),"Pict-Support"in(i=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(r)),o),n])).pict.CSSMap.inlineCSSMap||i.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==i.pict.TemplateProvider.getTemplate("Pict-Form-Support-Container")&&i.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==i.pict.TemplateProvider.getTemplate("Pict-Form-Support-Container-Link")&&i.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> ] '),i.SupportViews={},i}return _inherits(e,t),_createClass2(e,[{key:"registerSupportView",value:function(t){this.pict.log.info("Registering support view ".concat(t.Hash," with Pict Support Extension provider.")),this.SupportViews[t.Hash]=t}},{key:"getSupportViewLinks",value:function(){for(var t=[],e=Object.keys(this.SupportViews),o=0;o<e.length;o++){var n=e[o],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}}])}(n);e.exports=i,e.exports.default_configuration=r},{"pict-provider":32}],156:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).DisplayShortName="FDT",r.DisplayLongName="FormData",r}return _inherits(e,t),_createClass2(e,[{key:"flattenMarshalDestination",value:function(){return this.flattenAddress(this.pict.views.PictFormMetacontroller.viewMarshalDestination)}},{key:"flattenAppData",value:function(){return this.flattenAddress("AppData")}},{key:"flattenAddress",value:function(t){var e=this.pict.resolveStateFromAddress(t);return this.pict.manifest.objectAddressGeneration.generateAddressses(e)}}])}(t("./Pict-View-PSF-SupportBase.js"));e.exports=n,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":161}],157:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).DisplayShortName="ILE",r.DisplayLongName="InlineEditor",r}return _inherits(e,t),_createClass2(e)}(t("./Pict-View-PSF-SupportBase.js"));e.exports=n,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":161}],158:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).DisplayShortName="LCV",r.DisplayLongName="LifecycleVisulization",r}return _inherits(e,t),_createClass2(e)}(t("./Pict-View-PSF-SupportBase.js"));e.exports=n,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":161}],159:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).DisplayShortName="SLV",r.DisplayLongName="SolverVisualization",r}return _inherits(e,t),_createClass2(e)}(t("./Pict-View-PSF-SupportBase.js"));e.exports=n,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":161}],160:[function(t,e,o){var n=function(t){function e(t,o,n){var r;return _classCallCheck(this,e),(r=_callSuper(this,e,[t,o,n])).DisplayShortName="STV",r.DisplayLongName="SpecificSolveTimingVisualization",r}return _inherits(e,t),_createClass2(e)}(t("./Pict-View-PSF-SupportBase.js"));e.exports=n,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":161}],161:[function(t,e,o){var n=t("pict-view"),r=t("./Pict-Provider-PSF-Support.js"),i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,o,n])).pict.addProviderSingleton("Pict-Form-SupportExtensions",{},r),i.DisplayShortName="U",i.DisplayLongName="UNDEFINED",i.pict.providers["Pict-Form-SupportExtensions"].registerSupportView(i),i}return _inherits(e,t),_createClass2(e,[{key:"getDynamicState",value:function(){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:[]};for(var t=this.pict.views.PictFormMetacontroller,e={Scope:t.manifestDescription.Scope,Description:"",Manifest:t.manifest,ManifestDescription:t.manifestDescription,AllViews:t.filterViews(),SectionViews:[],DynamicInputView:!1,Solvers:[]},o=0;o<e.AllViews.length;o++){var n=e.AllViews[o];n.isPictSectionForm&&"PictFormMetacontroller-DynamicInputs"==n.Hash?e.DynamicInputView=n:n.isPictSectionForm&&e.SectionViews.push({View:n,sectionDefinition:n.sectionDefinition,Solvers:[]})}for(var r=0;r<e.SectionViews.length;r++){var i=e.SectionViews[r].View,a=e.SectionViews[r].Solvers;if(i.isPictSectionForm&&Array.isArray(i.sectionDefinition.Solvers))for(var s=0;s<i.sectionDefinition.Solvers.length;s++){var l=i.sectionDefinition.Solvers[s],c={ViewHash:i.Hash,SectionOrdinal:r,GroupOrdinal:-1,Ordinal:1,Index:s,Expression:"",ExpressionType:"Unknown",ExpressionScope:"Section"};"string"==typeof l?(c.Expression=l,c.ExpressionType="Simple"):"object"===_typeof(l)&&(c.Expression=l.Expression,c.Ordinal=l.Ordinal,c.ExpressionType="Complex"),e.Solvers.push(c),a.push(c)}for(var p=0;p<i.sectionDefinition.Groups.length;p++){var u=i.getGroup(p);if("RecordSetSolvers"in u)for(var d=0;d<u.RecordSetSolvers.length;d++){var h=u.RecordSetSolvers[d],f={ViewHash:i.Hash,SectionOrdinal:r,GroupOrdinal:p,Ordinal:1,Index:d,Expression:"",ExpressionType:"Unknown",ExpressionScope:"Group"};h&&("string"==typeof h?(f.Expression=h,f.ExpressionType="Simple"):"object"===_typeof(h)&&(f.Expression=h.Expression,f.Ordinal=h.Ordinal,f.ExpressionType="Complex")),e.Solvers.push(f),a.push(f)}}a.sort(function(t,e){return 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(function(t,e){return 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(var m=0;m<e.Solvers.length;m++){var v=e.Solvers[m];if(v.Ordinal in e.LastSolveOutcome.SolveOrdinals)if("Section"==v.ExpressionScope){var g=e.LastSolveOutcome.SolveOrdinals[v.Ordinal].SectionSolvers;if(Array.isArray(g))for(var w=0;w<g.length;w++){var y=g[w];y.ViewHash==v.ViewHash&&y.Solver.Expression==v.Expression&&(v.LastResult=y.Solver.ResultsObject.RawResult,v.Value=y.Solver.ResultsObject.RawResult,v.LastResultsObject=y.Solver.ResultsObject)}}else if("Group"==v.ExpressionScope){var b=e.LastSolveOutcome.SolveOrdinals[v.Ordinal].GroupSolvers;if(Array.isArray(b))for(var D=0;D<b.length;D++){var P=b[D];P.ViewHash==v.ViewHash&&P.Solver.Expression==v.Expression&&(P.Solver&&"ResultsObject"in P.Solver&&(v.LastResult=P.Solver.ResultsObject.RawResult),P.Solver&&"ResultsObject"in P.Solver&&(v.LastResultsObject=P.Solver.ResultsObject))}}}return e}},{key:"getSectionSolvers",value:function(t){return this.getDynamicState().Solvers.map(function(e){if(e.ViewHash===t)return e})}},{key:"downloadJSONObjectAsFile",value:function(t){try{var e=this.pict.resolveStateFromAddress(t),o="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,"."));var r=new Blob([n],{type:"application/json"}),i=URL.createObjectURL(r),a=document.createElement("a");a.href=i,a.download=o,a.click(),URL.revokeObjectURL(i)}catch(e){this.pict.log.error("Error downloading JSON object from address ".concat(t,": ").concat(e.message))}}},{key:"updateExpressionFromElement",value:function(t,e,o,n,r,i){var a=this.pict.ContentAssignment.readContent(t);if(a){for(var s=this.pict.views.PictFormMetacontroller,l={Scope:s.manifestDescription.Scope,Description:"",Manifest:s.manifest,ManifestDescription:s.manifestDescription,AllViews:s.filterViews(),SectionViews:[],DynamicInputView:!1,Solvers:[]},c=0;c<l.AllViews.length;c++){var p=l.AllViews[c];p.isPictSectionForm&&"PictFormMetacontroller-DynamicInputs"==p.Hash?l.DynamicInputView=p:p.isPictSectionForm&&l.SectionViews.push({View:p,sectionDefinition:p.sectionDefinition,Solvers:[]})}for(var u=0;u<l.SectionViews.length;u++){var d=l.SectionViews[u].View;l.SectionViews[u].Solvers;if(d.isPictSectionForm&&Array.isArray(d.sectionDefinition.Solvers))for(var h=0;h<d.sectionDefinition.Solvers.length;h++){var f=d.sectionDefinition.Solvers[h];"Section"==e&&u==n&&h==r&&d.Hash==o&&("string"==typeof f?d.sectionDefinition.Solvers[h]=a:"object"===_typeof(f)&&(d.sectionDefinition.Solvers[h].Expression=a))}for(var m=0;m<d.sectionDefinition.Groups.length;m++){var v=d.getGroup(m);if("RecordSetSolvers"in v)for(var g=0;g<v.RecordSetSolvers.length;g++){var w=v.RecordSetSolvers[g];"Group"==e&&u==n&&m==r&&d.Hash==o&&("string"==typeof w?d.sectionDefinition.Solvers[m]=a:"object"===_typeof(w)&&(d.sectionDefinition.Solvers[m].Expression=a))}}}i&&this.pict.ContentAssignment.assignContent(i,a)}else this.pict.log.warn("No expression found in element at address ".concat(t,"; cannot update ").concat(e," solver Ordinal ").concat(n," Index ").concat(r,"."))}},{key:"bootstrapContainer",value:function(){var t=this.options.DefaultDestinationAddress;if(this.pict.ContentAssignment.getElement(this.options.DefaultDestinationAddress).length>0)return!0;var 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);var o=document.getElementById("Pict-Form-Extensions-Wrap"),n=document.getElementById("Pict-Form-Extension-DragControl");o&&n&&n.addEventListener("mousedown",function(t){var e=t.offsetX+n.clientLeft,r=t.offsetY+n.clientTop;function i(t){t.stopPropagation(),o.style.left=t.clientX-e+"px",o.style.top=t.clientY-r+"px"}window.addEventListener("pointermove",i),window.addEventListener("pointerup",function t(e){window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",t)}),t.preventDefault()});var r=document.getElementById("Pict-Form-Extensions-Wrap"),i=document.getElementById("Pict-Form-Extension-ResizeControl");r&&i&&i.addEventListener("mousedown",function(t){function e(t){t.stopPropagation();var e=t.clientX-r.getBoundingClientRect().left,o=t.clientY-r.getBoundingClientRect().top,n=getComputedStyle(r),i=parseInt(n.minWidth,10),a=parseInt(n.minHeight,10);e<i&&(e=i),o<a&&(o=a),r.style.width=e+"px",r.style.height=o+"px"}window.addEventListener("pointermove",e),window.addEventListener("pointerup",function t(o){window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}),t.preventDefault()})}}])}(n);e.exports=i,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":155,"pict-view":171}],162:[function(t,e,o){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"}]}},{}],163:[function(t,e,o){var n=function(e){function o(e,n,r){var i;return _classCallCheck(this,o),(i=_callSuper(this,o,[e,Object.assign({},t("./Pict-Section-TuiGrid-DefaultConfiguration.json"),n),r])).services,i.dateFormatter=i.fable.instantiateServiceProviderWithoutRegistration("Dates"),i.initialRenderComplete=!1,i.customFormatters={},i}return _inherits(o,e),_createClass2(o,[{key:"onBeforeInitialize",value:function(){return _superPropGet(o,"onBeforeInitialize",this,3)([]),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,_superPropGet(o,"onBeforeInitialize",this,3)([])}},{key:"initializeCustomFormatters",value:function(){var t=this;this.customFormatters.FormatterTwoDigitNumber=function(e){var o,n=Number.parseFloat(e.value),r=null!==(o=null==e?void 0:e.decimalPrecision)&&void 0!==o?o:2;return isNaN(n)?"":t.fable.Math.roundPrecise(e.value,r)},this.customFormatters.FormatterCurrencyNumber=function(e){var o,n=null!==(o=null==e?void 0:e.decimalPrecision)&&void 0!==o?o:2;return t.fable.DataFormat.formatterDollars(e.value,n)},this.customFormatters.FormatterRoundedNumber=function(e){var o,n=Number.parseFloat(e.value),r=null!==(o=null==e?void 0:e.decimalPrecision)&&void 0!==o?o:2;return isNaN(n)?"":t.fable.Math.roundPrecise(e.value,r)},this.customFormatters.FormatterDate=function(e){var o=t.fable.Dates.dayJS.utc(e.value);return e.dateformat?o.format(e.dateformat):o.format()}}},{key:"connectTuiGridPrototype",value:function(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)}}},{key:"preChangeHandler",value:function(t){}},{key:"changeHandler",value:function(t){for(var e=!1,o=0;o<t.changes.length;o++){var n=t.instance.getValue(t.changes[o].rowKey,"entity"),r=t.instance.getValue(t.changes[o].rowKey,"idrecord");this.log.trace("Generic Change Handler for TuiGrid Fired, Entity ".concat(n," IDRecord ").concat(r," setting Column [").concat(t.changes[o].value,"] to new Value [").concat(t.changes[o].value,"]")),this.options.ColumnsToSolveOnChange.hasOwnProperty(t.changes[o].columnName)&&(e=!0)}e&&this.services.PictApplication.solve()}},{key:"onAfterRender",value:function(t){return this.initialRenderComplete||(this.onAfterInitialRender(),this.initialRenderComplete=!0),_superPropGet(o,"onAfterRender",this,3)([t])}},{key:"onAfterInitialRender",value:function(){var t=this;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){var e={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options},o=this.fable.manifest.getValueByHash(e,this.options.GridDataAddress);"object"!=_typeof(o)?(this.log.error("Address for GridData [".concat(this.options.GridDataAddress,"] did not return an object; it was a ").concat(_typeof(o),".")),this.gridData=[]):this.gridData=JSON.parse(JSON.stringify(o))}else this.gridData=[];var n=this.services.ContentAssignment.getElement(this.options.TargetElementAddress);if(n.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=n[0],this.columnSchema=this.options.TuiColumnSchema;for(var r=0;r<this.columnSchema.length;r++){var i=this.columnSchema[r];if(i.PictTriggerSolveOnChange&&(this.options.ColumnsToSolveOnChange[i.name]=i),i.hasOwnProperty("formatter")&&this.customFormatters.hasOwnProperty(i.formatter)&&(i.formatter=this.customFormatters[i.formatter]),i.hasOwnProperty("editor")&&(i.editor.hasOwnProperty("type")&&"string"==typeof i.editor.type&&this.customEditors.hasOwnProperty(i.editor.type)&&(i.editor.type=this.customEditors[i.editor.type]),i.editor.hasOwnProperty("options")&&"object"==_typeof(i.editor.options)&&i.editor.options.hasOwnProperty("listItems")&&"string"==typeof i.editor.options.listItems)){var a={Fable:this.fable,Pict:this.fable,AppData:this.AppData,Bundle:this.Bundle,Options:this.options},s=this.fable.manifest.getValueByHash(a,i.editor.options.listItems);"object"==_typeof(s)?i.editor.options.listItems=s:(this.log.warn("Pict TuiGrid for column [".concat(i.name,"] had [").concat(i.editor.options.listItems,"] as a listItems address, but it didn't return an object. It was a [").concat(_typeof(s),"]. Setting to empty list.")),i.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();var l=this._tuiGridPrototype;this.tuiGrid=new l(this.gridSettings),this.tuiGrid.on("beforeChange",function(e){var o=e;t.preChangeHandler(o)}),this.tuiGrid.on("afterChange",function(e){var o=e;t.changeHandler(o)})}},{key:"customConfigureGridSettings",value:function(){}},{key:"SetGridValue",value:function(t,e,o,n){if(void 0!==o)if(this.tuiGrid)for(var r=this.tuiGrid.getData(),i=0;i<r.length;i++){r[i][n]==o&&this.tuiGrid.setValue(i,t,e)}else this.log.warn("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by [").concat(n,"]::[").concat(o,"]. No valid grid!"));else console.log("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by [").concat(n,"]::[").concat(o,"]. No valid lookup value!"))}},{key:"SetGridValueByRowKey",value:function(t,e,o){return void 0===o?(this.log.error("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by row key [").concat(o,"]. No valid row key!")),!1):this.tuiGrid?(this.tuiGrid.setValue(o,t,e),!0):(this.log.warn("Could not set grid value [".concat(t,"] = [").concat(e,"] looked up by row key [").concat(o,"]. No valid grid!")),!1)}}])}(t("pict-view"));e.exports=n,e.exports.default_configuration=t("./Pict-Section-TuiGrid-DefaultConfiguration.json")},{"./Pict-Section-TuiGrid-DefaultConfiguration.json":162,"./Pict-TuiGrid-Editors.js":166,"./Pict-TuiGrid-Headers.js":167,"pict-view":171}],164:[function(t,e,o){var n=function(){return _createClass2(function t(e){_classCallCheck(this,t);var o=document.createElement("input"),n=e.columnInfo.editor.options.decimalPrecision?e.columnInfo.editor.options.decimalPrecision:3;o.type="number",o.value=String(e.value),o.oninput=function(t){if(t.target instanceof HTMLInputElement){var e=parseFloat(t.target.value).toFixed(n).toString();e.length<parseFloat(t.target.value).toString().length&&(t.target.value=e)}},this.Element=o},[{key:"getElement",value:function(){return this.Element}},{key:"getValue",value:function(){return this.Element.value}},{key:"mounted",value:function(){this.Element.select()}}])}();e.exports=n},{}],165:[function(t,e,o){var n=function(){return _createClass2(function t(e){_classCallCheck(this,t);var o=document.createElement("input");o.type="text",o.value=String(e.value),o.placeholder=e.columnInfo.editor.options.placeholder||"",o.pattern=e.columnInfo.editor.options.pattern||"",o.minLength=e.columnInfo.editor.options.minLength||"",o.maxLength=e.columnInfo.editor.options.maxLength||"",o.required=e.columnInfo.editor.options.required||"",this.Element=o},[{key:"getElement",value:function(){return this.Element}},{key:"getValue",value:function(){return this.Element.value}},{key:"mounted",value:function(){this.Element.select()}}])}();e.exports=n},{}],166:[function(t,e,o){e.exports={EditorNumber:t("./Pict-TuiGrid-Editor-Number.js"),EditorText:t("./Pict-TuiGrid-Editor-Text.js")}},{"./Pict-TuiGrid-Editor-Number.js":164,"./Pict-TuiGrid-Editor-Text.js":165}],167:[function(t,e,o){var n=function(){return _createClass2(function t(){_classCallCheck(this,t);var e=document.createElement("input");e.type="hidden",e.value="",this.Element=e},[{key:"getElement",value:function(){return this.Element}},{key:"render",value:function(){}}])}();e.exports={CustomColumnHeaderNone:n}},{}],168:[function(t,e,o){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"}}},{}],169:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../package.json"),i=function(t){function e(t,o,n){var i;return _classCallCheck(this,e),(i=_callSuper(this,e,[t,o,n])).fable,i.pict=i.fable,i.serviceType="PictTemplate",i._Package=r,i}return _inherits(e,t),_createClass2(e,[{key:"render",value:function(t,e,o,n,r){return""}},{key:"renderAsync",value:function(t,e,o,n,r,i){return o(null,this.render(t,e,n,r,i))}},{key:"addPattern",value:function(t,e){return this.pict.MetaTemplate.addPatternBoth(t,e,this.render,this.renderAsync,this)}},{key:"resolveStateFromAddress",value:function(t,e,o,n,r,i){return this.pict.resolveStateFromAddress(t,e,o,n,r,i)}}])}(n);e.exports=i,e.exports.template_hash="Default"},{"../package.json":168,"fable-serviceproviderbase":26}],170:[function(t,e,o){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"}}},{}],171:[function(t,e,o){var n=t("fable-serviceproviderbase"),r=t("../package.json"),i={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:{}},a=function(t){function e(t,o,n){var a;_classCallCheck(this,e),(a=_callSuper(this,e,[t,Object.assign({},JSON.parse(JSON.stringify(i)),o),n])).fable,a.options,a.UUID,a.Hash,a.log;var s=a.Hash===a.UUID;a.UUID="V-".concat(a.UUID),s&&(a.Hash=a.UUID),a.options.ViewIdentifier||(a.options.ViewIdentifier="AutoViewID-".concat(a.fable.getUUID())),a.serviceType="PictView",a._Package=r,a.pict=a.fable,a.AppData=a.pict.AppData,a.Bundle=a.pict.Bundle,a.initializeTimestamp=!1,a.lastSolvedTimestamp=!1,a.lastRenderedTimestamp=!1,a.lastMarshalFromViewTimestamp=!1,a.lastMarshalToViewTimestamp=!1,a.pict.instantiateServiceProviderIfNotExists("TransactionTracking");for(var l=0;l<a.options.Templates.length;l++){var c=a.options.Templates[l];"Hash"in c&&"Template"in c?(c.Source||(c.Source="PictView [".concat(a.UUID,"]::[").concat(a.Hash,"] ").concat(a.options.ViewIdentifier," options object.")),a.pict.TemplateProvider.addTemplate(c.Hash,c.Template,c.Source)):a.log.error("PictView [".concat(a.UUID,"]::[").concat(a.Hash,"] ").concat(a.options.ViewIdentifier," could not load Template ").concat(l," in the options array."),c)}for(var p=0;p<a.options.DefaultTemplates.length;p++){var u=a.options.DefaultTemplates[p];"Postfix"in u&&"Template"in u?(u.Source||(u.Source="PictView [".concat(a.UUID,"]::[").concat(a.Hash,"] ").concat(a.options.ViewIdentifier," options object.")),a.pict.TemplateProvider.addDefaultTemplate(u.Prefix,u.Postfix,u.Template,u.Source)):a.log.error("PictView [".concat(a.UUID,"]::[").concat(a.Hash,"] ").concat(a.options.ViewIdentifier," could not load Default Template ").concat(p," in the options array."),u)}if(a.options.CSS){var d=a.options.CSSHash?a.options.CSSHash:"View-".concat(a.options.ViewIdentifier),h=a.options.CSSProvider?a.options.CSSProvider:d;a.pict.CSSMap.addCSS(d,a.options.CSS,h,a.options.CSSPriority)}a.renderables={};for(var f=0;f<a.options.Renderables.length;f++){var m=a.options.Renderables[f];a.addRenderable(m)}return a}return _inherits(e,t),_createClass2(e,[{key:"addRenderable",value:function(t,e,o,n,r){var i;"object"==_typeof(t)?i=t:i={RenderableHash:t,TemplateHash:e,DefaultTemplateRecordAddress:o,ContentDestinationAddress:n,RenderMethod:"string"!=typeof r?r:"replace"};"string"!=typeof i.RenderableHash||"string"!=typeof i.TemplateHash?this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not load Renderable; RenderableHash or TemplateHash are invalid."),i):(this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," adding renderable [").concat(i.RenderableHash,"] pointed to template ").concat(i.TemplateHash,".")),this.renderables[i.RenderableHash]=i)}},{key:"onBeforeInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeInitialize:")),!0}},{key:"onBeforeInitializeAsync",value:function(t){return this.onBeforeInitialize(),t()}},{key:"onInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onInitialize:")),!0}},{key:"onInitializeAsync",value:function(t){return this.onInitialize(),t()}},{key:"initialize",value:function(){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)}},{key:"initializeAsync",value:function(t){var e=this;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();var o=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate");this.pict.LogNoisiness>0&&this.log.info("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," beginning initialization...")),o.anticipate(this.onBeforeInitializeAsync.bind(this)),o.anticipate(this.onInitializeAsync.bind(this)),o.anticipate(this.onAfterInitializeAsync.bind(this)),o.wait(function(o){return o&&e.log.error("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ViewIdentifier," initialization failed: ").concat(o.message||o),{stack:o.stack}),e.initializeTimestamp=e.pict.log.getTimeStamp(),e.pict.LogNoisiness>0&&e.log.info("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ViewIdentifier," initialization complete.")),t()})}},{key:"onAfterInitialize",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterInitialize:")),!0}},{key:"onAfterInitializeAsync",value:function(t){return this.onAfterInitialize(),t()}},{key:"onBeforeRender",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeRender:")),!0}},{key:"onBeforeRenderAsync",value:function(t,e){return this.onBeforeRender(e),t()}},{key:"onBeforeProject",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeProject:")),!0}},{key:"onBeforeProjectAsync",value:function(t,e){return this.onBeforeProject(e),t()}},{key:"buildRenderOptions",value:function(t,e,o){var 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(o)?(n.RecordAddress="Passed in as object",n.Record=o):(n.RecordAddress="string"==typeof o?o:"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}},{key:"assignRenderContent",value:function(t,e,o){return this.pict.ContentAssignment.projectContent(t.RenderMethod,e,o,t.TestAddress)}},{key:"render",value:function(t,e,o,n){return this.renderWithScope(this,t,e,o,n)}},{key:"renderWithScope",value:function(t,e,o,n,r){var i,a,s,l="string"==typeof e?e:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable;return l?("__Virtual"==l?i={RenderableHash:"__Virtual",TemplateHash:this.renderables[this.options.DefaultRenderable].TemplateHash,ContentDestinationAddress:"string"==typeof o?o:"string"==typeof i.ContentDestinationAddress?i.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null,RenderMethod:"virtual-assignment",TransactionHash:r&&r.TransactionHash,RootRenderableViewHash:r&&r.RootRenderableViewHash}:(i=Object.assign({},this.renderables[l])).ContentDestinationAddress="string"==typeof o?o:"string"==typeof i.ContentDestinationAddress?i.ContentDestinationAddress:"string"==typeof this.options.DefaultDestinationAddress?this.options.DefaultDestinationAddress:null,i.TransactionHash||(i.TransactionHash="ViewRender-V-".concat(this.options.ViewIdentifier,"-R-").concat(l,"-U-").concat(this.pict.getUUID()),i.RootRenderableViewHash=this.Hash,this.pict.TransactionTracking.registerTransaction(i.TransactionHash)),i?i.ContentDestinationAddress?("object"===_typeof(n)?(s=n,a="Passed in as object"):s="string"==typeof(a="string"==typeof n?n:"string"==typeof i.DefaultTemplateRecordAddress?i.DefaultTemplateRecordAddress:"string"==typeof this.options.DefaultTemplateRecordAddress&&this.options.DefaultTemplateRecordAddress)?this.pict.DataProvider.getDataByAddress(a):void 0,this.onBeforeRender(i),this.pict.LogControlFlow&&this.log.trace("PICT-ControlFlow VIEW [".concat(this.UUID,"]::[").concat(this.Hash,"] Renderable[").concat(l,"] Destination[").concat(i.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(l,"] to Destination [").concat(i.ContentDestinationAddress,"]...")),i.Content=this.pict.parseTemplateByHash(i.TemplateHash,s,null,[this],t,{RootRenderable:"object"===_typeof(r)?r:i}),this.pict.LogNoisiness>0&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," Assigning Renderable[").concat(l,"] content length ").concat(i.Content.length," to Destination [").concat(i.ContentDestinationAddress,"] using render method [").concat(i.RenderMethod,"].")),this.onBeforeProject(i),this.onProject(i),"virtual-assignment"!==i.RenderMethod&&(this.onAfterProject(i),this.onAfterRender(i)),!0):(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.")),!1):(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.")),!1)):(this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(l," (param ").concat(e,") because it is not a valid renderable.")),!1)}},{key:"renderAsync",value:function(t,e,o,n,r){return this.renderWithScopeAsync(this,t,e,o,n,r)}},{key:"renderWithScopeAsync",value:function(t,e,o,n,r,i){var a,s,l,c=this,p="string"==typeof e?e:"string"==typeof this.options.DefaultRenderable&&this.options.DefaultRenderable,u="function"==typeof i?i:"function"==typeof n?n:"function"==typeof o?o:"function"==typeof e?e:"function"==typeof r?r:null;if(u||(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.")),u=function(t){t&&c.log.error("PictView [".concat(c.UUID,"]::[").concat(c.Hash,"] ").concat(c.options.Name," renderAsync Auto Callback Error: ").concat(t),t)}),!p)return this.log.error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not asynchronously render ").concat(p," (param ").concat(e,"because it is not a valid renderable.")),u(new Error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not asynchronously render ").concat(p," (param ").concat(e,"because it is not a valid renderable.")));if("__Virtual"==p?a={RenderableHash:"__Virtual",TemplateHash:this.renderables[this.options.DefaultRenderable].TemplateHash,ContentDestinationAddress:"string"==typeof o?o:"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[p])).ContentDestinationAddress="string"==typeof o?o:"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(p,"-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(p," (param ").concat(e,") because it does not exist.")),u(new Error("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not render ").concat(p," (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(p," (param ").concat(e,") because it does not have a valid destination address.")),u(new Error("Could not render ".concat(p)));"object"===_typeof(n)?(l=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,l="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(p,"] 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)..."));var d=this.fable.newAnticipate();d.anticipate(function(t){c.onBeforeRenderAsync(t,a)}),d.anticipate(function(o){c.pict.parseTemplateByHash(a.TemplateHash,l,function(t,n){return t?(c.log.error("PictView [".concat(c.UUID,"]::[").concat(c.Hash,"] ").concat(c.options.ViewIdentifier," could not render (asynchronously) ").concat(p," (param ").concat(e,") because it did not parse the template."),t),o(t)):(a.Content=n,o())},[c],t,{RootRenderable:"object"===_typeof(r)?r:a})}),d.anticipate(function(t){c.onBeforeProjectAsync(t,a)}),d.anticipate(function(t){c.onProjectAsync(t,a)}),"virtual-assignment"!==a.RenderMethod&&(d.anticipate(function(t){c.onAfterProjectAsync(t,a)}),d.anticipate(function(t){c.onAfterRenderAsync(t,a)})),d.wait(u)}},{key:"renderDefaultAsync",value:function(t){this.renderAsync(t)}},{key:"basicRender",value:function(t,e,o){return this.basicRenderWithScope(this,t,e,o)}},{key:"basicRenderWithScope",value:function(t,e,o,n){var r=this.buildRenderOptions(e,o,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)}},{key:"basicRenderAsync",value:function(t,e,o,n){return this.basicRenderWithScopeAsync(this,t,e,o,n)}},{key:"basicRenderWithScopeAsync",value:function(t,e,o,n,r){var i=this,a="function"==typeof r?r:"function"==typeof n?n:"function"==typeof o?o:"function"==typeof e?e:null;a||(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.")),a=function(t){t&&i.log.error("PictView [".concat(i.UUID,"]::[").concat(i.Hash,"] ").concat(i.options.Name," basicRenderAsync Auto Callback Error: ").concat(t),t)});var s=this.buildRenderOptions(e,o,n);if(!s.Valid){var l="PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," could not perform a basic render of ").concat(s.RenderableHash," because it is not valid.");return this.log.error(l),a(new Error(l))}this.pict.parseTemplateByHash(s.Renderable.TemplateHash,s.Record,function(t,e){return t?(i.log.error("PictView [".concat(i.UUID,"]::[").concat(i.Hash,"] ").concat(i.options.ViewIdentifier," could not render (asynchronously) ").concat(s.RenderableHash," because it did not parse the template."),t),a(t)):(i.assignRenderContent(s.Renderable,s.DestinationAddress,e),a())},[this],t,{RootRenderable:s.Renderable})}},{key:"onProject",value:function(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()}},{key:"onProjectAsync",value:function(t,e){return this.onProject(e),t()}},{key:"onAfterRender",value:function(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){var e,o=_createForOfIteratorHelper(this.pict.TransactionTracking.clearTransactionQueue(t.TransactionHash)||[]);try{for(o.s();!(e=o.n()).done;){var n=e.value,r=this.pict.views[n.Data.ViewHash];r?(r.onAfterProject(),r.onAfterRender(n.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(n.Data.ViewHash,"."))}}catch(t){o.e(t)}finally{o.f()}this.pict.TransactionTracking.unregisterTransaction(t.TransactionHash)}return!0}},{key:"onAfterRenderAsync",value:function(t,e){var o=this;this.onAfterRender(e);var n=this.fable.newAnticipate(),r=e&&e.RootRenderableViewHash===this.Hash;if(r){var i,a=_createForOfIteratorHelper(this.pict.TransactionTracking.clearTransactionQueue(e.TransactionHash)||[]);try{var s=function(){var t=i.value,r=o.pict.views[t.Data.ViewHash];if(!r)return o.log.error("PictView [".concat(o.UUID,"]::[").concat(o.Hash,"] ").concat(o.options.ViewIdentifier," onAfterRenderAsync: Could not find view for transaction hash ").concat(e.TransactionHash," and ViewHash ").concat(t.Data.ViewHash,".")),1;n.anticipate(r.onAfterProjectAsync.bind(r)),n.anticipate(function(e){r.onAfterRenderAsync(e,t.Data.Renderable)})};for(a.s();!(i=a.n()).done;)s()}catch(t){a.e(t)}finally{a.f()}}return n.wait(function(n){return r&&e&&e.TransactionHash&&o.pict.TransactionTracking.unregisterTransaction(e.TransactionHash),t(n)})}},{key:"onAfterProject",value:function(t){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterProject:")),!0}},{key:"onAfterProjectAsync",value:function(t,e){return t()}},{key:"onBeforeSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeSolve:")),!0}},{key:"onBeforeSolveAsync",value:function(t){return this.onBeforeSolve(),t()}},{key:"onSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onSolve:")),!0}},{key:"onSolveAsync",value:function(t){return this.onSolve(),t()}},{key:"solve",value:function(){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}},{key:"solveAsync",value:function(t){var e=this,o=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),n="function"==typeof t?t:null;n||(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.")),n=function(t){t&&e.log.error("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," solveAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeSolveAsync.bind(this)),o.anticipate(this.onSolveAsync.bind(this)),o.anticipate(this.onAfterSolveAsync.bind(this)),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ViewIdentifier," solveAsync() complete.")),e.lastSolvedTimestamp=e.pict.log.getTimeStamp(),n(t)})}},{key:"onAfterSolve",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterSolve:")),!0}},{key:"onAfterSolveAsync",value:function(t){return this.onAfterSolve(),t()}},{key:"onBeforeMarshalFromView",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeMarshalFromView:")),!0}},{key:"onBeforeMarshalFromViewAsync",value:function(t){return this.onBeforeMarshalFromView(),t()}},{key:"onMarshalFromView",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onMarshalFromView:")),!0}},{key:"onMarshalFromViewAsync",value:function(t){return this.onMarshalFromView(),t()}},{key:"marshalFromView",value:function(){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}},{key:"marshalFromViewAsync",value:function(t){var e=this,o=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),n="function"==typeof t?t:null;n||(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.")),n=function(t){t&&e.log.error("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," marshalFromViewAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeMarshalFromViewAsync.bind(this)),o.anticipate(this.onMarshalFromViewAsync.bind(this)),o.anticipate(this.onAfterMarshalFromViewAsync.bind(this)),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ViewIdentifier," marshalFromViewAsync() complete.")),e.lastMarshalFromViewTimestamp=e.pict.log.getTimeStamp(),n(t)})}},{key:"onAfterMarshalFromView",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterMarshalFromView:")),!0}},{key:"onAfterMarshalFromViewAsync",value:function(t){return this.onAfterMarshalFromView(),t()}},{key:"onBeforeMarshalToView",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onBeforeMarshalToView:")),!0}},{key:"onBeforeMarshalToViewAsync",value:function(t){return this.onBeforeMarshalToView(),t()}},{key:"onMarshalToView",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onMarshalToView:")),!0}},{key:"onMarshalToViewAsync",value:function(t){return this.onMarshalToView(),t()}},{key:"marshalToView",value:function(){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}},{key:"marshalToViewAsync",value:function(t){var e=this,o=this.pict.instantiateServiceProviderWithoutRegistration("Anticipate"),n="function"==typeof t?t:null;n||(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.")),n=function(t){t&&e.log.error("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.Name," marshalToViewAsync Auto Callback Error: ").concat(t),t)}),o.anticipate(this.onBeforeMarshalToViewAsync.bind(this)),o.anticipate(this.onMarshalToViewAsync.bind(this)),o.anticipate(this.onAfterMarshalToViewAsync.bind(this)),o.wait(function(t){return e.pict.LogNoisiness>2&&e.log.trace("PictView [".concat(e.UUID,"]::[").concat(e.Hash,"] ").concat(e.options.ViewIdentifier," marshalToViewAsync() complete.")),e.lastMarshalToViewTimestamp=e.pict.log.getTimeStamp(),n(t)})}},{key:"onAfterMarshalToView",value:function(){return this.pict.LogNoisiness>3&&this.log.trace("PictView [".concat(this.UUID,"]::[").concat(this.Hash,"] ").concat(this.options.ViewIdentifier," onAfterMarshalToView:")),!0}},{key:"onAfterMarshalToViewAsync",value:function(t){return this.onAfterMarshalToView(),t()}},{key:"isPictView",get:function(){return!0}}])}(n);e.exports=a},{"../package.json":170,"fable-serviceproviderbase":26}]},{},[2])(2)});
|