diff --git a/404.html b/404.html index d9d6e4bb..78469d37 100644 --- a/404.html +++ b/404.html @@ -9,13 +9,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/fbe93038.cf47bd58.js b/assets/js/fbe93038.cf47bd58.js new file mode 100644 index 00000000..74226a2d --- /dev/null +++ b/assets/js/fbe93038.cf47bd58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklaravel_workflow=self.webpackChunklaravel_workflow||[]).push([[8432],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>w});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),p=u(n),f=o,w=p["".concat(s,".").concat(f)]||p[f]||k[f]||i;return n?r.createElement(w,l(l({ref:t},c),{},{components:n})):r.createElement(w,l({ref:t},c))}));function w(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,l=new Array(i);l[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[p]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const i={sidebar_position:7},l="Testing",a={unversionedId:"testing",id:"testing",title:"Testing",description:"Workflows",source:"@site/docs/testing.md",sourceDirName:".",slug:"/testing",permalink:"/docs/testing",draft:!1,editUrl:"https://github.com/laravel-workflow/laravel-workflow.github.io/edit/main/docs/testing.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Constraints Summary",permalink:"/docs/constraints/constraints-summary"},next:{title:"Failures and Recovery",permalink:"/docs/failures-and-recovery"}},s={},u=[{value:"Workflows",id:"workflows",level:2},{value:"Skipping Time",id:"skipping-time",level:2},{value:"Activities",id:"activities",level:2}],c={toc:u};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"testing"},"Testing"),(0,o.kt)("h2",{id:"workflows"},"Workflows"),(0,o.kt)("p",null,"You can execute workflows synchronously in your test environment and mock activities to define expected behaviors and outputs without running the actual implementations."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"use Workflow\\ActivityStub;\nuse Workflow\\Workflow;\n\nclass MyWorkflow extends Workflow\n{\n public function execute()\n {\n $result = yield ActivityStub::make(MyActivity::class);\n\n return $result;\n }\n}\n")),(0,o.kt)("p",null,"The above workflow can be tested by first calling ",(0,o.kt)("inlineCode",{parentName:"p"},"WorkflowStub::fake()")," and then mocking the activity."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"public function testWorkflow()\n{\n WorkflowStub::fake();\n\n WorkflowStub::mock(MyActivity::class, 'result');\n\n $workflow = WorkflowStub::make(MyWorkflow::class);\n $workflow->start();\n\n $this->assertSame($workflow->output(), 'result');\n}\n")),(0,o.kt)("p",null,"You can also provide a callback instead of a result value to ",(0,o.kt)("inlineCode",{parentName:"p"}," WorkflowStub::mock()"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"public function testWorkflow()\n{\n WorkflowStub::fake();\n\n WorkflowStub::mock(MyActivity::class, function ($context) {\n return 'result';\n });\n\n $workflow = WorkflowStub::make(MyWorkflow::class);\n $workflow->start();\n\n $this->assertSame($workflow->output(), 'result');\n}\n")),(0,o.kt)("p",null,"The workflow ",(0,o.kt)("inlineCode",{parentName:"p"},"$context")," along with any arguments for the current activity will also be passed to the callback."),(0,o.kt)("h2",{id:"skipping-time"},"Skipping Time"),(0,o.kt)("p",null,"By manipulating the system time with ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travel()")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travelTo()"),", you can simulate time-dependent workflows. This strategy allows you to test timeouts, delays, and other time-sensitive logic within your workflows."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"use Workflow\\ActivityStub;\nuse Workflow\\Workflow;\nuse Workflow\\WorkflowStub;\n\nclass MyTimerWorkflow extends Workflow\n{\n public function execute()\n {\n yield WorkflowStub::timer(60);\n\n $result = yield ActivityStub::make(MyActivity::class);\n\n return $result;\n }\n}\n")),(0,o.kt)("p",null,"The above workflow waits 60 seconds before executing the activity. Using ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travel()")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"$workflow->resume()")," allows us to skip this waiting period."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"public function testTimeTravelWorkflow()\n{\n WorkflowStub::fake();\n\n WorkflowStub::mock(MyActivity::class, 'result');\n\n $workflow = WorkflowStub::make(MyTimerWorkflow::class);\n $workflow->start();\n\n $this->travel(120)->seconds();\n\n $workflow->resume();\n\n $this->assertSame($workflow->output(), 'result');\n}\n")),(0,o.kt)("p",null,"The helpers ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travel()")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travelTo()")," methods use ",(0,o.kt)("inlineCode",{parentName:"p"},"Carbon:setTestNow()")," under the hood."),(0,o.kt)("h2",{id:"activities"},"Activities"),(0,o.kt)("p",null,"Testing activities is similar to testing Laravel jobs. You manually create the activity and then call the ",(0,o.kt)("inlineCode",{parentName:"p"},"handle()")," method."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"$workflow = WorkflowStub::make(MyWorkflow::class);\n\n$activity = new MyActivity(0, now()->toDateTimeString(), StoredWorkflow::findOrFail($workflow->id()));\n\n$result = $activity->handle();\n")),(0,o.kt)("p",null,"Note that we call the handle method and not the ",(0,o.kt)("inlineCode",{parentName:"p"},"execute()")," method."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fbe93038.e6d4cd34.js b/assets/js/fbe93038.e6d4cd34.js deleted file mode 100644 index 0d46b237..00000000 --- a/assets/js/fbe93038.e6d4cd34.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklaravel_workflow=self.webpackChunklaravel_workflow||[]).push([[8432],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>w});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),p=u(n),f=o,w=p["".concat(s,".").concat(f)]||p[f]||k[f]||i;return n?r.createElement(w,l(l({ref:t},c),{},{components:n})):r.createElement(w,l({ref:t},c))}));function w(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,l=new Array(i);l[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[p]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const i={sidebar_position:7},l="Testing",a={unversionedId:"testing",id:"testing",title:"Testing",description:"Workflows",source:"@site/docs/testing.md",sourceDirName:".",slug:"/testing",permalink:"/docs/testing",draft:!1,editUrl:"https://github.com/laravel-workflow/laravel-workflow.github.io/edit/main/docs/testing.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Constraints Summary",permalink:"/docs/constraints/constraints-summary"},next:{title:"Failures and Recovery",permalink:"/docs/failures-and-recovery"}},s={},u=[{value:"Workflows",id:"workflows",level:2},{value:"Skipping Time",id:"skipping-time",level:2},{value:"Activities",id:"activities",level:2}],c={toc:u};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"testing"},"Testing"),(0,o.kt)("h2",{id:"workflows"},"Workflows"),(0,o.kt)("p",null,"Using the ",(0,o.kt)("inlineCode",{parentName:"p"},"sync")," driver for testing, you can execute workflows synchronously in your test environment and mock activities to define expected behaviors and outputs without running the actual implementations."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"use Workflow\\ActivityStub;\nuse Workflow\\Workflow;\n\nclass MyWorkflow extends Workflow\n{\n public function execute()\n {\n $result = yield ActivityStub::make(MyActivity::class);\n\n return $result;\n }\n}\n")),(0,o.kt)("p",null,"The above workflow can be tested by first calling ",(0,o.kt)("inlineCode",{parentName:"p"},"WorkflowStub::fake()")," and then mocking the activity."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"public function testWorkflow()\n{\n WorkflowStub::fake();\n\n WorkflowStub::mock(MyActivity::class, 'result');\n\n $workflow = WorkflowStub::make(MyWorkflow::class);\n $workflow->start();\n\n $this->assertSame($workflow->output(), 'result');\n}\n")),(0,o.kt)("p",null,"You can also provide a callback instead of a result value to ",(0,o.kt)("inlineCode",{parentName:"p"}," WorkflowStub::mock()"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"public function testWorkflow()\n{\n WorkflowStub::fake();\n\n WorkflowStub::mock(MyActivity::class, function ($context) {\n return 'result';\n });\n\n $workflow = WorkflowStub::make(MyWorkflow::class);\n $workflow->start();\n\n $this->assertSame($workflow->output(), 'result');\n}\n")),(0,o.kt)("p",null,"The workflow ",(0,o.kt)("inlineCode",{parentName:"p"},"$context")," along with any arguments for the current activity will also be passed to the callback."),(0,o.kt)("h2",{id:"skipping-time"},"Skipping Time"),(0,o.kt)("p",null,"By manipulating the system time with ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travel()")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travelTo()"),", you can simulate time-dependent workflows. This strategy allows you to test timeouts, delays, and other time-sensitive logic within your workflows."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"use Workflow\\ActivityStub;\nuse Workflow\\Workflow;\nuse Workflow\\WorkflowStub;\n\nclass MyTimerWorkflow extends Workflow\n{\n public function execute()\n {\n yield WorkflowStub::timer(60);\n\n $result = yield ActivityStub::make(MyActivity::class);\n\n return $result;\n }\n}\n")),(0,o.kt)("p",null,"The above workflow waits 60 seconds before executing the activity. Using ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travel()")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"$workflow->resume()")," allows us to skip this waiting period."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"public function testTimeTravelWorkflow()\n{\n WorkflowStub::fake();\n\n WorkflowStub::mock(MyActivity::class, 'result');\n\n $workflow = WorkflowStub::make(MyTimerWorkflow::class);\n $workflow->start();\n\n $this->travel(120)->seconds();\n\n $workflow->resume();\n\n $this->assertSame($workflow->output(), 'result');\n}\n")),(0,o.kt)("p",null,"The helpers ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travel()")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"$this->travelTo()")," methods use ",(0,o.kt)("inlineCode",{parentName:"p"},"Carbon:setTestNow()")," under the hood."),(0,o.kt)("h2",{id:"activities"},"Activities"),(0,o.kt)("p",null,"Testing activities is similar to testing Laravel jobs. You manually create the activity and then call the ",(0,o.kt)("inlineCode",{parentName:"p"},"handle()")," method."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"$workflow = WorkflowStub::make(MyWorkflow::class);\n\n$activity = new MyActivity(0, now()->toDateTimeString(), StoredWorkflow::findOrFail($workflow->id()));\n\n$result = $activity->handle();\n")),(0,o.kt)("p",null,"Note that we call the handle method and not the ",(0,o.kt)("inlineCode",{parentName:"p"},"execute()")," method."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.8668d096.js b/assets/js/runtime~main.7a785c48.js similarity index 99% rename from assets/js/runtime~main.8668d096.js rename to assets/js/runtime~main.7a785c48.js index d8ae587a..0d24bb8a 100644 --- a/assets/js/runtime~main.8668d096.js +++ b/assets/js/runtime~main.7a785c48.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,f,c,b={},r={};function t(e){var a=r[e];if(void 0!==a)return a.exports;var d=r[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,t),d.loaded=!0,d.exports}t.m=b,t.c=r,e=[],t.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(t.O).every((e=>t.O[e](d[o])))?d.splice(o--,1):(r=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);t.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var r=2&f&&e;"object"==typeof r&&!~a.indexOf(r);r=d(r))Object.getOwnPropertyNames(r).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,t.d(c,b),c},t.d=(e,a)=>{for(var d in a)t.o(a,d)&&!t.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,d)=>(t.f[d](e,a),a)),[])),t.u=e=>"assets/js/"+({53:"935f2afb",58:"43a0fcd1",187:"80ef88f8",265:"c714f954",511:"e93269e3",533:"b2b675dd",552:"35ec9624",651:"69286e12",698:"cfe30022",863:"30d88d9e",1168:"bf8c8cab",1360:"be6dcb94",1473:"038e9d84",1477:"b2f554cd",1647:"3b5edcc4",1660:"f333be45",1674:"3becfe26",1692:"eed8a362",1713:"a7023ddc",1938:"01d5e643",1988:"0a908f34",2021:"01f20817",2064:"08ae8db3",2190:"146cf867",2214:"6872c2b9",2319:"97ddfb62",2355:"d54ae1fb",2375:"8dd790d1",2394:"d7c1c49e",2418:"b57e739f",2438:"6aa6c2d1",2529:"b021b917",2534:"dedeede7",2535:"814f3328",2565:"7d044f50",2746:"cc8f8187",2884:"78a6fab6",2911:"f13831ec",3085:"1f391b9e",3089:"a6aa9e1f",3147:"058291ad",3154:"89a81aa8",3217:"3b8c55ea",3376:"f3543915",3389:"c200aa59",3494:"62c28a92",3608:"9e4087bc",3609:"a8a5b354",3624:"a9f04d76",3696:"7731220c",3697:"34c6b9ec",3837:"68c82945",3901:"6fc63c89",3937:"b1513dc1",3957:"17efc523",4013:"01a85c17",4067:"365a10b6",4128:"a09c2993",4195:"c4f5d8e4",4304:"e2b533cb",4566:"0fc7a839",4614:"9e8d1e2e",4641:"a5026a04",4719:"b0cbe494",5010:"5710d8a8",5136:"50e98084",5138:"940891e7",5244:"128a5f34",5354:"174e6463",5409:"5f1a941c",5465:"8dc71f8b",5553:"835932e0",5560:"63fdd185",5616:"c200e719",5744:"cd8200a2",5873:"d5590fad",5914:"6d3bfe1f",5943:"eceef560",6103:"ccc49370",6143:"3f0f1ef5",6380:"376c2c88",6408:"cccaa1d8",6485:"9d398624",6519:"91d0fc28",6554:"7d81f6b8",6586:"183053be",6607:"19d288dd",6698:"a9235c5e",6957:"b12abb6b",7128:"7ab016b8",7239:"16345323",7377:"40e2aa62",7414:"393be207",7570:"d9cba164",7644:"dd48ea67",7918:"17896441",7920:"1a4e3797",7934:"3fe38aa2",8041:"1046c47f",8044:"f16fa4e3",8432:"fbe93038",8499:"e1e6acd4",8507:"8d413bd9",8586:"d3057f73",8601:"174f928e",8610:"6875c492",8694:"932187f2",8727:"76183543",8733:"674363c6",8833:"1a08dbdb",8999:"d0ae32ce",9063:"aa08db83",9112:"7ec778da",9143:"69ee9527",9189:"197cee37",9271:"f80b29c4",9289:"7f27efa5",9320:"284848bf",9356:"abc1f8d3",9513:"631eb435",9514:"1be78505",9619:"60b4aebe",9628:"bb0f14cc",9739:"9f8fce84",9765:"3e65188e",9817:"14eb3368"}[e]||e)+"."+{53:"b6149981",58:"36998299",143:"50c39da9",187:"9ab882f2",265:"40103dd5",511:"ebc9e4eb",533:"cb149e7b",552:"2bbfd045",651:"e75790cc",698:"80263ab2",732:"9a2ff219",863:"1b56e820",1168:"312fb1a7",1360:"314657a4",1473:"0cf389fe",1477:"5bfe9d6b",1647:"e8667dc6",1660:"b9c825c3",1674:"6c3d5ece",1692:"ad0c34a9",1713:"c703b7e4",1938:"574aead5",1988:"6db18322",2021:"3801894a",2064:"5bfb2486",2190:"e652164f",2214:"cf076539",2319:"cf2604f3",2355:"1d2f11bf",2375:"ea9c15b8",2394:"fade95b9",2418:"c26a6a64",2438:"87748580",2529:"60487477",2534:"5d515fec",2535:"c7d42d20",2565:"1087f7c0",2746:"a889ee16",2884:"ef2a90fa",2911:"f30d49b8",3085:"acb348d3",3089:"c78d43f4",3147:"cfb5953f",3154:"27705183",3217:"5ba2c003",3376:"fdb42d6b",3389:"10b3ea74",3494:"0fc63de4",3608:"e7e9ded1",3609:"07f2de4a",3624:"043473dd",3696:"e8746b93",3697:"4939ab9c",3837:"13699c53",3901:"cf9c0d62",3937:"ff9dc19e",3957:"ce8fbcc4",4013:"1d48ab8b",4067:"5db684cd",4128:"643540e7",4195:"17db1cc2",4304:"2c82a0e4",4566:"89e7e7cd",4614:"1fc40d9d",4641:"0fe9a170",4719:"a46e2caf",4972:"878c8f63",5010:"4db9189d",5136:"1111ab99",5138:"077917d4",5244:"d2a94a10",5354:"ad7c70ee",5409:"0460db4b",5465:"c3793ea0",5553:"3468e4ca",5560:"fec592be",5616:"48f44b92",5744:"8d74ef3e",5873:"24ffe1d1",5914:"79397306",5943:"ce50bf21",6103:"ea0ee6fd",6143:"5fd85168",6380:"12469607",6408:"c99fb26f",6485:"7022be0a",6519:"9c48dd12",6554:"3731652e",6586:"b2325c35",6607:"24cd3757",6698:"3ab72d4b",6780:"6a8166b1",6945:"9d41f761",6957:"24993131",7128:"6cd6fc10",7239:"3107f56d",7377:"3aebdba5",7414:"24a53e9d",7570:"6da89d57",7644:"d939b99a",7918:"31b67b52",7920:"6d9824a1",7934:"c32f1527",8041:"4fce9780",8044:"4117fbee",8432:"e6d4cd34",8499:"7734ab2c",8507:"90987514",8586:"cbc7b71b",8601:"c8b5e69d",8610:"d42d5da4",8694:"7bd794c4",8727:"3afa48c1",8733:"c78b403b",8833:"9a4badac",8894:"8cd52291",8999:"927305af",9063:"6560f862",9112:"a930b32d",9143:"cb822be1",9189:"ebab75f5",9271:"13e11ce2",9289:"c8158204",9320:"593979f1",9356:"5c9bcdb1",9513:"7e076cf3",9514:"9644c51b",9619:"d1faa2a9",9628:"409b5a33",9739:"5bc5913e",9765:"2ca5537b",9817:"4e55368a"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="laravel-workflow:",t.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var r,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{r.onerror=r.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],r.parentNode&&r.parentNode.removeChild(r),c&&c.forEach((e=>e(d))),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.p="/",t.gca=function(e){return e={16345323:"7239",17896441:"7918",76183543:"8727","935f2afb":"53","43a0fcd1":"58","80ef88f8":"187",c714f954:"265",e93269e3:"511",b2b675dd:"533","35ec9624":"552","69286e12":"651",cfe30022:"698","30d88d9e":"863",bf8c8cab:"1168",be6dcb94:"1360","038e9d84":"1473",b2f554cd:"1477","3b5edcc4":"1647",f333be45:"1660","3becfe26":"1674",eed8a362:"1692",a7023ddc:"1713","01d5e643":"1938","0a908f34":"1988","01f20817":"2021","08ae8db3":"2064","146cf867":"2190","6872c2b9":"2214","97ddfb62":"2319",d54ae1fb:"2355","8dd790d1":"2375",d7c1c49e:"2394",b57e739f:"2418","6aa6c2d1":"2438",b021b917:"2529",dedeede7:"2534","814f3328":"2535","7d044f50":"2565",cc8f8187:"2746","78a6fab6":"2884",f13831ec:"2911","1f391b9e":"3085",a6aa9e1f:"3089","058291ad":"3147","89a81aa8":"3154","3b8c55ea":"3217",f3543915:"3376",c200aa59:"3389","62c28a92":"3494","9e4087bc":"3608",a8a5b354:"3609",a9f04d76:"3624","7731220c":"3696","34c6b9ec":"3697","68c82945":"3837","6fc63c89":"3901",b1513dc1:"3937","17efc523":"3957","01a85c17":"4013","365a10b6":"4067",a09c2993:"4128",c4f5d8e4:"4195",e2b533cb:"4304","0fc7a839":"4566","9e8d1e2e":"4614",a5026a04:"4641",b0cbe494:"4719","5710d8a8":"5010","50e98084":"5136","940891e7":"5138","128a5f34":"5244","174e6463":"5354","5f1a941c":"5409","8dc71f8b":"5465","835932e0":"5553","63fdd185":"5560",c200e719:"5616",cd8200a2:"5744",d5590fad:"5873","6d3bfe1f":"5914",eceef560:"5943",ccc49370:"6103","3f0f1ef5":"6143","376c2c88":"6380",cccaa1d8:"6408","9d398624":"6485","91d0fc28":"6519","7d81f6b8":"6554","183053be":"6586","19d288dd":"6607",a9235c5e:"6698",b12abb6b:"6957","7ab016b8":"7128","40e2aa62":"7377","393be207":"7414",d9cba164:"7570",dd48ea67:"7644","1a4e3797":"7920","3fe38aa2":"7934","1046c47f":"8041",f16fa4e3:"8044",fbe93038:"8432",e1e6acd4:"8499","8d413bd9":"8507",d3057f73:"8586","174f928e":"8601","6875c492":"8610","932187f2":"8694","674363c6":"8733","1a08dbdb":"8833",d0ae32ce:"8999",aa08db83:"9063","7ec778da":"9112","69ee9527":"9143","197cee37":"9189",f80b29c4:"9271","7f27efa5":"9289","284848bf":"9320",abc1f8d3:"9356","631eb435":"9513","1be78505":"9514","60b4aebe":"9619",bb0f14cc:"9628","9f8fce84":"9739","3e65188e":"9765","14eb3368":"9817"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,d)=>{var f=t.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((d,c)=>f=e[a]=[d,c]));d.push(f[2]=c);var b=t.p+t.u(a),r=new Error;t.l(b,(d=>{if(t.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;r.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",r.name="ChunkLoadError",r.type=c,r.request=b,f[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],r=d[1],o=d[2],n=0;if(b.some((a=>0!==e[a]))){for(f in r)t.o(r,f)&&(t.m[f]=r[f]);if(o)var i=o(t)}for(a&&a(d);n{"use strict";var e,a,d,f,c,b={},r={};function t(e){var a=r[e];if(void 0!==a)return a.exports;var d=r[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,t),d.loaded=!0,d.exports}t.m=b,t.c=r,e=[],t.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(t.O).every((e=>t.O[e](d[o])))?d.splice(o--,1):(r=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);t.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var r=2&f&&e;"object"==typeof r&&!~a.indexOf(r);r=d(r))Object.getOwnPropertyNames(r).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,t.d(c,b),c},t.d=(e,a)=>{for(var d in a)t.o(a,d)&&!t.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,d)=>(t.f[d](e,a),a)),[])),t.u=e=>"assets/js/"+({53:"935f2afb",58:"43a0fcd1",187:"80ef88f8",265:"c714f954",511:"e93269e3",533:"b2b675dd",552:"35ec9624",651:"69286e12",698:"cfe30022",863:"30d88d9e",1168:"bf8c8cab",1360:"be6dcb94",1473:"038e9d84",1477:"b2f554cd",1647:"3b5edcc4",1660:"f333be45",1674:"3becfe26",1692:"eed8a362",1713:"a7023ddc",1938:"01d5e643",1988:"0a908f34",2021:"01f20817",2064:"08ae8db3",2190:"146cf867",2214:"6872c2b9",2319:"97ddfb62",2355:"d54ae1fb",2375:"8dd790d1",2394:"d7c1c49e",2418:"b57e739f",2438:"6aa6c2d1",2529:"b021b917",2534:"dedeede7",2535:"814f3328",2565:"7d044f50",2746:"cc8f8187",2884:"78a6fab6",2911:"f13831ec",3085:"1f391b9e",3089:"a6aa9e1f",3147:"058291ad",3154:"89a81aa8",3217:"3b8c55ea",3376:"f3543915",3389:"c200aa59",3494:"62c28a92",3608:"9e4087bc",3609:"a8a5b354",3624:"a9f04d76",3696:"7731220c",3697:"34c6b9ec",3837:"68c82945",3901:"6fc63c89",3937:"b1513dc1",3957:"17efc523",4013:"01a85c17",4067:"365a10b6",4128:"a09c2993",4195:"c4f5d8e4",4304:"e2b533cb",4566:"0fc7a839",4614:"9e8d1e2e",4641:"a5026a04",4719:"b0cbe494",5010:"5710d8a8",5136:"50e98084",5138:"940891e7",5244:"128a5f34",5354:"174e6463",5409:"5f1a941c",5465:"8dc71f8b",5553:"835932e0",5560:"63fdd185",5616:"c200e719",5744:"cd8200a2",5873:"d5590fad",5914:"6d3bfe1f",5943:"eceef560",6103:"ccc49370",6143:"3f0f1ef5",6380:"376c2c88",6408:"cccaa1d8",6485:"9d398624",6519:"91d0fc28",6554:"7d81f6b8",6586:"183053be",6607:"19d288dd",6698:"a9235c5e",6957:"b12abb6b",7128:"7ab016b8",7239:"16345323",7377:"40e2aa62",7414:"393be207",7570:"d9cba164",7644:"dd48ea67",7918:"17896441",7920:"1a4e3797",7934:"3fe38aa2",8041:"1046c47f",8044:"f16fa4e3",8432:"fbe93038",8499:"e1e6acd4",8507:"8d413bd9",8586:"d3057f73",8601:"174f928e",8610:"6875c492",8694:"932187f2",8727:"76183543",8733:"674363c6",8833:"1a08dbdb",8999:"d0ae32ce",9063:"aa08db83",9112:"7ec778da",9143:"69ee9527",9189:"197cee37",9271:"f80b29c4",9289:"7f27efa5",9320:"284848bf",9356:"abc1f8d3",9513:"631eb435",9514:"1be78505",9619:"60b4aebe",9628:"bb0f14cc",9739:"9f8fce84",9765:"3e65188e",9817:"14eb3368"}[e]||e)+"."+{53:"b6149981",58:"36998299",143:"50c39da9",187:"9ab882f2",265:"40103dd5",511:"ebc9e4eb",533:"cb149e7b",552:"2bbfd045",651:"e75790cc",698:"80263ab2",732:"9a2ff219",863:"1b56e820",1168:"312fb1a7",1360:"314657a4",1473:"0cf389fe",1477:"5bfe9d6b",1647:"e8667dc6",1660:"b9c825c3",1674:"6c3d5ece",1692:"ad0c34a9",1713:"c703b7e4",1938:"574aead5",1988:"6db18322",2021:"3801894a",2064:"5bfb2486",2190:"e652164f",2214:"cf076539",2319:"cf2604f3",2355:"1d2f11bf",2375:"ea9c15b8",2394:"fade95b9",2418:"c26a6a64",2438:"87748580",2529:"60487477",2534:"5d515fec",2535:"c7d42d20",2565:"1087f7c0",2746:"a889ee16",2884:"ef2a90fa",2911:"f30d49b8",3085:"acb348d3",3089:"c78d43f4",3147:"cfb5953f",3154:"27705183",3217:"5ba2c003",3376:"fdb42d6b",3389:"10b3ea74",3494:"0fc63de4",3608:"e7e9ded1",3609:"07f2de4a",3624:"043473dd",3696:"e8746b93",3697:"4939ab9c",3837:"13699c53",3901:"cf9c0d62",3937:"ff9dc19e",3957:"ce8fbcc4",4013:"1d48ab8b",4067:"5db684cd",4128:"643540e7",4195:"17db1cc2",4304:"2c82a0e4",4566:"89e7e7cd",4614:"1fc40d9d",4641:"0fe9a170",4719:"a46e2caf",4972:"878c8f63",5010:"4db9189d",5136:"1111ab99",5138:"077917d4",5244:"d2a94a10",5354:"ad7c70ee",5409:"0460db4b",5465:"c3793ea0",5553:"3468e4ca",5560:"fec592be",5616:"48f44b92",5744:"8d74ef3e",5873:"24ffe1d1",5914:"79397306",5943:"ce50bf21",6103:"ea0ee6fd",6143:"5fd85168",6380:"12469607",6408:"c99fb26f",6485:"7022be0a",6519:"9c48dd12",6554:"3731652e",6586:"b2325c35",6607:"24cd3757",6698:"3ab72d4b",6780:"6a8166b1",6945:"9d41f761",6957:"24993131",7128:"6cd6fc10",7239:"3107f56d",7377:"3aebdba5",7414:"24a53e9d",7570:"6da89d57",7644:"d939b99a",7918:"31b67b52",7920:"6d9824a1",7934:"c32f1527",8041:"4fce9780",8044:"4117fbee",8432:"cf47bd58",8499:"7734ab2c",8507:"90987514",8586:"cbc7b71b",8601:"c8b5e69d",8610:"d42d5da4",8694:"7bd794c4",8727:"3afa48c1",8733:"c78b403b",8833:"9a4badac",8894:"8cd52291",8999:"927305af",9063:"6560f862",9112:"a930b32d",9143:"cb822be1",9189:"ebab75f5",9271:"13e11ce2",9289:"c8158204",9320:"593979f1",9356:"5c9bcdb1",9513:"7e076cf3",9514:"9644c51b",9619:"d1faa2a9",9628:"409b5a33",9739:"5bc5913e",9765:"2ca5537b",9817:"4e55368a"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="laravel-workflow:",t.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var r,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{r.onerror=r.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],r.parentNode&&r.parentNode.removeChild(r),c&&c.forEach((e=>e(d))),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.p="/",t.gca=function(e){return e={16345323:"7239",17896441:"7918",76183543:"8727","935f2afb":"53","43a0fcd1":"58","80ef88f8":"187",c714f954:"265",e93269e3:"511",b2b675dd:"533","35ec9624":"552","69286e12":"651",cfe30022:"698","30d88d9e":"863",bf8c8cab:"1168",be6dcb94:"1360","038e9d84":"1473",b2f554cd:"1477","3b5edcc4":"1647",f333be45:"1660","3becfe26":"1674",eed8a362:"1692",a7023ddc:"1713","01d5e643":"1938","0a908f34":"1988","01f20817":"2021","08ae8db3":"2064","146cf867":"2190","6872c2b9":"2214","97ddfb62":"2319",d54ae1fb:"2355","8dd790d1":"2375",d7c1c49e:"2394",b57e739f:"2418","6aa6c2d1":"2438",b021b917:"2529",dedeede7:"2534","814f3328":"2535","7d044f50":"2565",cc8f8187:"2746","78a6fab6":"2884",f13831ec:"2911","1f391b9e":"3085",a6aa9e1f:"3089","058291ad":"3147","89a81aa8":"3154","3b8c55ea":"3217",f3543915:"3376",c200aa59:"3389","62c28a92":"3494","9e4087bc":"3608",a8a5b354:"3609",a9f04d76:"3624","7731220c":"3696","34c6b9ec":"3697","68c82945":"3837","6fc63c89":"3901",b1513dc1:"3937","17efc523":"3957","01a85c17":"4013","365a10b6":"4067",a09c2993:"4128",c4f5d8e4:"4195",e2b533cb:"4304","0fc7a839":"4566","9e8d1e2e":"4614",a5026a04:"4641",b0cbe494:"4719","5710d8a8":"5010","50e98084":"5136","940891e7":"5138","128a5f34":"5244","174e6463":"5354","5f1a941c":"5409","8dc71f8b":"5465","835932e0":"5553","63fdd185":"5560",c200e719:"5616",cd8200a2:"5744",d5590fad:"5873","6d3bfe1f":"5914",eceef560:"5943",ccc49370:"6103","3f0f1ef5":"6143","376c2c88":"6380",cccaa1d8:"6408","9d398624":"6485","91d0fc28":"6519","7d81f6b8":"6554","183053be":"6586","19d288dd":"6607",a9235c5e:"6698",b12abb6b:"6957","7ab016b8":"7128","40e2aa62":"7377","393be207":"7414",d9cba164:"7570",dd48ea67:"7644","1a4e3797":"7920","3fe38aa2":"7934","1046c47f":"8041",f16fa4e3:"8044",fbe93038:"8432",e1e6acd4:"8499","8d413bd9":"8507",d3057f73:"8586","174f928e":"8601","6875c492":"8610","932187f2":"8694","674363c6":"8733","1a08dbdb":"8833",d0ae32ce:"8999",aa08db83:"9063","7ec778da":"9112","69ee9527":"9143","197cee37":"9189",f80b29c4:"9271","7f27efa5":"9289","284848bf":"9320",abc1f8d3:"9356","631eb435":"9513","1be78505":"9514","60b4aebe":"9619",bb0f14cc:"9628","9f8fce84":"9739","3e65188e":"9765","14eb3368":"9817"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,d)=>{var f=t.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((d,c)=>f=e[a]=[d,c]));d.push(f[2]=c);var b=t.p+t.u(a),r=new Error;t.l(b,(d=>{if(t.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;r.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",r.name="ChunkLoadError",r.type=c,r.request=b,f[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],r=d[1],o=d[2],n=0;if(b.some((a=>0!==e[a]))){for(f in r)t.o(r,f)&&(t.m[f]=r[f]);if(o)var i=o(t)}for(a&&a(d);n