Skip to content

Instantly share code, notes, and snippets.

@lynxtaa
Last active February 12, 2021 11:44
Show Gist options
  • Save lynxtaa/378b24031ad15e35bfded95186012a0d to your computer and use it in GitHub Desktop.
Save lynxtaa/378b24031ad15e35bfded95186012a0d to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
// - XState (all XState exports)
const fetchMachine = Machine({
id: 'route',
initial: 'Общий_ввод_карточки',
states: {
Общий_ввод_карточки: {
initial: 'Ввод_карточки_Петров',
states: {
Ввод_карточки_Петров: {},
Ввод_карточки_Иванов: {},
},
on: {
FORWARD: 'Юрист',
REPLACE: [
{
target: '.Ввод_карточки_Петров',
cond: (ctx, event) => event.node === 'Ввод_карточки_Петров',
},
{
target: '.Ввод_карточки_Иванов',
cond: (ctx, event) => event.node === 'Ввод_карточки_Иванов',
},
],
},
},
Юрист: {
initial: 'Нераспределенные_для_юристов',
states: {
Нераспределенные_для_юристов: {},
Юрист_Ахматова: {},
Юрист_Маяковский: {},
},
on: {
FORWARD: 'subRoute1',
BACK: 'Общий_ввод_карточки',
REPLACE: [
{
target: '.Нераспределенные_для_юристов',
cond: (ctx, event) => event.node === 'Нераспределенные_для_юристов',
},
{
target: '.Юрист_Ахматова',
cond: (ctx, event) => event.node === 'Юрист_Ахматова',
},
{
target: '.Юрист_Маяковский',
cond: (ctx, event) => event.node === 'Юрист_Маяковский',
},
],
},
},
subRoute1: {
type: 'parallel',
states: {
branch1: {
initial: 'Загрузчик',
states: {
Загрузчик: {
on: {
FORWARD1: 'end',
},
},
end: { type: 'final' },
},
},
branch2: {
initial: 'Набивка',
states: {
Набивка: {
initial: 'Нераспределенные_для_набивки',
states: {
Нераспределенные_для_набивки: {},
Набивка_Иванов: {},
Набивка_Петров: {},
},
on: {
FORWARD: '#route.subRoute1.branch2.Сверка',
REPLACE: [
{
target: '.Нераспределенные_для_набивки',
cond: (ctx, event) => event.node === 'Нераспределенные_для_набивки',
},
{
target: '.Набивка_Иванов',
cond: (ctx, event) => event.node === 'Набивка_Иванов',
},
{
target: '.Набивка_Петров',
cond: (ctx, event) => event.node === 'Набивка_Петров',
},
],
},
},
Сверка: {
initial: 'Нераспределенные_для_сверки',
states: {
Нераспределенные_для_сверки: {},
Сверка_Иванов: {},
Сверка_Петров: {},
},
on: {
FORWARD: 'end',
BACK: 'Набивка',
REPLACE: [
{
target: '.Нераспределенные_для_сверки',
cond: (ctx, event) => event.node === 'Нераспределенные_для_сверки',
},
{
target: '.Сверка_Иванов',
cond: (ctx, event) => event.node === 'Сверка_Иванов',
},
{
target: '.Сверка_Петров',
cond: (ctx, event) => event.node === 'Сверка_Петров',
},
],
},
},
end: { type: 'final' },
},
},
},
onDone: 'Контроль',
},
Контроль: {
initial: 'Нераспределенные_для_контроля',
states: {
Нераспределенные_для_контроля: {},
Контроль_Иванов: {},
},
on: {
FORWARD: 'Сток',
BACK: { target: ['subRoute1.branch1.Загрузчик', 'subRoute1.branch2.Сверка'] },
REPLACE: [
{
target: '.Нераспределенные_для_контроля',
cond: (ctx, event) => event.node === 'Нераспределенные_для_контроля',
},
{
target: '.Контроль_Иванов',
cond: (ctx, event) => event.node === 'Контроль_Иванов',
},
],
},
},
Сток: { type: 'final' },
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment