@finsemble/finsemble-ui 7.2.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +14 -14
- package/react/assets/css/button.css +34 -6
- package/react/assets/css/contextMenu.css +118 -0
- package/react/assets/css/notificationsCenter.css +3 -214
- package/react/assets/css/userPreferences.css +2 -2
- package/react/components/common/Checkbox.d.ts +3 -2
- package/react/components/common/Checkbox.js +5 -21
- package/react/components/common/Checkbox.js.map +1 -1
- package/react/components/common/ContextMenu.d.ts +13 -0
- package/react/components/common/ContextMenu.js +69 -0
- package/react/components/common/ContextMenu.js.map +1 -0
- package/react/components/common/DropdownButton.d.ts +0 -4
- package/react/components/common/DropdownButton.js +39 -10
- package/react/components/common/DropdownButton.js.map +1 -1
- package/react/components/common/css/FinsembleToggle.css +0 -1
- package/react/components/common/css/application-edit-page.css +3 -4
- package/react/components/common/css/checkbox.css +60 -21
- package/react/components/common/css/icon.css +2 -2
- package/react/components/common/css/toggle.css +4 -1
- package/react/components/common/helpers.js +9 -0
- package/react/components/common/helpers.js.map +1 -1
- package/react/components/common/stories/ContextMenu.stories.d.ts +38 -0
- package/react/components/common/stories/ContextMenu.stories.js +70 -0
- package/react/components/common/stories/ContextMenu.stories.js.map +1 -0
- package/react/components/common/stories/DropdownButton.stories.d.ts +3 -3
- package/react/components/common/stories/DropdownButton.stories.js +11 -10
- package/react/components/common/stories/DropdownButton.stories.js.map +1 -1
- package/react/components/common/tests/Checkbox.spec.js +10 -12
- package/react/components/common/tests/Checkbox.spec.js.map +1 -1
- package/react/components/common/tests/ContextMenu.spec.d.ts +1 -0
- package/react/components/common/tests/ContextMenu.spec.js +108 -0
- package/react/components/common/tests/ContextMenu.spec.js.map +1 -0
- package/react/components/common/tests/DropdownButton.spec.d.ts +1 -0
- package/react/components/common/tests/DropdownButton.spec.js +32 -0
- package/react/components/common/tests/DropdownButton.spec.js.map +1 -0
- package/react/components/fdc3Resolver/ResolverDialog.js +5 -1
- package/react/components/fdc3Resolver/ResolverDialog.js.map +1 -1
- package/react/components/notifications/components/drawer/DrawerHeader.js +3 -3
- package/react/components/notifications/components/drawer/DrawerHeader.js.map +1 -1
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +1 -0
- package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js +2 -0
- package/react/components/notifications/components/notificationsToasts/NotificationsToasts.js.map +1 -1
- package/react/components/notifications/components/shared/IconButton.js +2 -1
- package/react/components/notifications/components/shared/IconButton.js.map +1 -1
- package/react/components/notifications/components/shared/NotificationCardShell.d.ts +2 -0
- package/react/components/notifications/components/shared/NotificationCardShell.js +55 -49
- package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -3
- package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.d.ts +4 -0
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js +92 -13
- package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderControls.js.map +1 -1
- package/react/components/notifications/components/views/ListView.js +5 -9
- package/react/components/notifications/components/views/ListView.js.map +1 -1
- package/react/components/notifications/css/notification-card.css +165 -0
- package/react/components/notifications/stories/NotificationCardShell.stories.d.ts +14 -0
- package/react/components/notifications/stories/NotificationCardShell.stories.js +108 -0
- package/react/components/notifications/stories/NotificationCardShell.stories.js.map +1 -0
- package/react/components/notifications/tests/NotificationCardShell.spec.d.ts +1 -0
- package/react/components/notifications/tests/NotificationCardShell.spec.js +91 -0
- package/react/components/notifications/tests/NotificationCardShell.spec.js.map +1 -0
- package/react/components/notifications/types.d.ts +4 -2
- package/react/components/notifications/types.js.map +1 -1
- package/react/components/sdd/AddApp.d.ts +3 -3
- package/react/components/sdd/AddApp.js +29 -21
- package/react/components/sdd/AddApp.js.map +1 -1
- package/react/components/sdd/AppEditPage.js +1 -8
- package/react/components/sdd/AppEditPage.js.map +1 -1
- package/react/components/sdd/Appearance.css +2 -1
- package/react/components/sdd/Applications.js +7 -7
- package/react/components/sdd/Applications.js.map +1 -1
- package/react/components/sdd/Navigation.js +2 -4
- package/react/components/sdd/Navigation.js.map +1 -1
- package/react/components/sdd/common/views.js +1 -14
- package/react/components/sdd/common/views.js.map +1 -1
- package/react/components/sdd/css/addApp.css +64 -1
- package/react/components/sdd/css/nav.css +50 -29
- package/react/components/sdd/fixtures/views.js +1 -14
- package/react/components/sdd/fixtures/views.js.map +1 -1
- package/react/components/sdd/tests/AddApp.spec.js +2 -2
- package/react/components/sdd/tests/AddApp.spec.js.map +1 -1
- package/react/components/sdd/tests/AppEditPage.spec.js +5 -8
- package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
- package/react/components/sdd/tests/Export.spec.js +11 -11
- package/react/components/sdd/tests/Export.spec.js.map +1 -1
- package/react/components/sdd/tests/ExportZip.spec.js +3 -3
- package/react/components/sdd/tests/ExportZip.spec.js.map +1 -1
- package/react/components/sdd/tests/Navigation.spec.js +3 -2
- package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +1 -2
- package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
- package/react/components/toolbar/dashbar/Dashbar.js +18 -14
- package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.d.ts +9 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +35 -1
- package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js +1 -1
- package/react/components/toolbar/workspaceManagementMenu/stores/workspaceManagementMenuStore.js.map +1 -1
- package/react/components/userPreferences/components/content/Workspaces.d.ts +3 -1
- package/react/components/userPreferences/components/content/Workspaces.js +20 -3
- package/react/components/userPreferences/components/content/Workspaces.js.map +1 -1
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.d.ts +1 -0
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js +3 -2
- package/react/components/userPreferences/components/workspaces/WorkspaceItem.js.map +1 -1
- package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js +12 -9
- package/react/components/userPreferences/tests/NotificationsPreferencesHome.spec.js.map +1 -1
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.js +2 -0
- package/react/components/userPreferences/tests/UserPreferencesBase.spec.js.map +1 -1
- package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +99 -26
- package/react/components/windowTitleBar/WindowTitleBarShell.js +206 -138
- package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
- package/react/components/windowTitleBar/components/left/LinkerButton.js +30 -21
- package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
- package/react/hooks/useNotifications.js +8 -7
- package/react/hooks/useNotifications.js.map +1 -1
- package/react/tsconfig.tsbuildinfo +1 -1
- package/react/components/notifications/components/shared/OverflowMenu.d.ts +0 -16
- package/react/components/notifications/components/shared/OverflowMenu.js +0 -114
- package/react/components/notifications/components/shared/OverflowMenu.js.map +0 -1
- package/react/components/sdd/GettingStarted.d.ts +0 -8
- package/react/components/sdd/GettingStarted.js +0 -25
- package/react/components/sdd/GettingStarted.js.map +0 -1
- package/react/components/sdd/stories/GettingStarted.stories.d.ts +0 -11
- package/react/components/sdd/stories/GettingStarted.stories.js +0 -18
- package/react/components/sdd/stories/GettingStarted.stories.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppEditPage.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/AppEditPage.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACN,IAAI,EACJ,SAAS,EACT,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,gBAAgB,GAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,QAAQ,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,EAAE;IACT,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,cAAc,EAAE,IAAI;IACpB,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,IAAI;IACtB,yBAAyB,EAAE,EAAE;IAC7B,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,KAAK;IAChB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,UAAU;IACxB,GAAG,EAAE,uBAAuB;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,KAAK,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,QAAgB,EAAE,OAAO,GAAG,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,EAAE;;IAC3G,MAAM,IAAI,GAAG,gCACT,OAAO,CAAC,IAAI,KACf,OAAO,kCACH,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,KACxB,CAAC,UAAU,CAAC,EAAE,WAAW,MAEN,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAK,IAAI,EAAI,CAAC,CAAC;IAE1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpE,CAAC,CAAC;AACF,MAAM,kBAAkB,GAAG,CAC1B,UAAkB,EAClB,QAAgB,EAChB,MAAM,GAAG,KAAK,EACd,WAA4B,WAAW,EACtC,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,OAAO,CAAC,IAAyB,EAAI,CAAC,CAAC;IACxE,OAAO;SACL,IAAI,CAAC,QAAQ,CAAC;SACd,EAAE,CAAC,CAAC,CAAC;SACL,QAAQ,CAAC,QAAQ,EAAE;QACnB,MAAM,EAAE;YACP,KAAK,EAAE,QAAQ;SACf;KACD,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,+CACtC,QAAQ,GACR,CAAC,MAAM;QACT,CAAC,CAAC;YACA,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,UAAU;SACf;QACH,CAAC,CAAC,EAAE,CAAC,KACN,CAAC,UAAU,CAAC,EAAE,QAAQ,IACrB,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,OAAO,CAAC,IAAyB,EAAI,CAAC,CAAC;IACxE,OAAO;SACL,IAAI,CAAC,QAAQ,CAAC;SACd,EAAE,CAAC,CAAC,CAAC;SACL,QAAQ,CAAC,SAAS,EAAE;QACpB,GAAG,EAAE,OAAO;QACZ,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;KACxB,CAAC,CAAC;IACJ,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AACzC,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,KAAa,EAAE,WAAoB,EAAE,iBAA0B,KAAK,EAAE,EAAE;;IACjH,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1D,MAAM,IAAI,GAAG,gCACT,WAAW,CAAC,IAAI,KACnB,OAAO,kCACH,MAAA,WAAW,CAAC,IAAI,0CAAE,OAAO,KAC5B,CAAC,UAAU,CAAC,EAAE,WAAW,MAEN,CAAC;IACtB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,WAAW,oBAAK,IAAI,EAAI,CAAC,CAAC;IAEjD,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,uBAAuB;IACvB,IAAI,cAAc,EAAE;QACnB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,IAAI,EAAE,sBAAsB,EAC5B,gBAAgB,EAAE,KAAK,EACvB,cAAc,EAAE,KAAK,EACrB,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,IACzB,CAAC;KACH;SAAM;QACN,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,IACzB,CAAC;KACH;AACF,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CACtB,UAAkB,EAClB,KAAa,EACb,cAAuB,IAAI,EAC3B,gBAAyB,IAAI,EAC7B,iBAA0B,KAAK,EAC9B,EAAE;;IACH,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,gCACT,WAAW,CAAC,IAAI,KACnB,OAAO,kCACH,MAAA,WAAW,CAAC,IAAI,0CAAE,OAAO,KAC5B,CAAC,UAAU,CAAC,EAAE,WAAW,MAEN,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,WAAW,oBAAK,IAAI,EAAI,CAAC,CAAC;IAEjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC/G,CAAC,CAAC;AACF,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,eAAuB,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE;IACzF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,OAAO,CAAC,IAAyB,EAAI,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,6BAA6B,IAAI,IAAI,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;QACzC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3C,eAAe,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAC9D,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACpB;KACD;AACF,CAAC,CAAC;AACF,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,UAAkC,EAAE,YAAuB,EAAE,EAAE;;IACxG,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,GAClB,UAAU,IAEM,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAK,IAAI,EAAI,CAAC,CAAC;IAE1C,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE;QACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,eAAe,GAAG,CACvB,IAAY,EACZ,mBAA2B,EAC3B,WAAmC,EACnC,OAAO,GAAG,IAAI,EACb,EAAE;IACH,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,OAAO,CAAC,IAAyB,EAAI,CAAC,CAAC;IACxE,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE/F,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE7B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;QAC5B,aAAa;QACb,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;KACnD;AACF,CAAC,CAAC;AAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,0GAA0G;IAE1G,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACtF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qGAAqG,EAAE,GAAG,EAAE;QAC9G,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,qBAAqB,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACxC,KAAK,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gGAAgG,EAAE,GAAG,EAAE;QACzG,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;QAErE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;QAErE,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACrD,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAAyB,EAAI,CAAC,CAAC;YACjF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,gBAAgB,oBAAM,gBAAgB,CAAC,IAAyB,EAAI,CAAC,CAAC;YAC7F,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAAyB,EAAI,CAAC,CAAC;YACjF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACxD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACrB,SAAS,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YAClF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,SAAS,oBAAM,SAAS,CAAC,IAAyB,EAAI,CAAC,CAAC;YAE/E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC1B,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM;iBACb;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,WAAW,CAAC;iBACjB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACvE,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;YAC5F,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,WAAW,CAAC;iBACjB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,SAAS,EAAE;gBACpB,GAAG,EAAE,GAAG;gBACR,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;aACxB,CAAC,CAAC;YACJ,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;YAC/F,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,SAAS,oBAAM,SAAS,CAAC,IAAyB,EAAI,CAAC,CAAC;YAC/E,OAAO;iBACL,IAAI,CAAC,WAAW,CAAC;iBACjB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,SAAS,EAAE;gBACpB,GAAG,EAAE,OAAO;gBACZ,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;aACxB,CAAC,CAAC;YACJ,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,MAAM,UAAU,GAAG,SAAS,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC;QAClC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACjC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,eAAe,oBAAM,eAAe,CAAC,IAAyB,EAAI,CAAC,CAAC;YAE3F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACpE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,eAAe,oBAAM,eAAe,CAAC,IAAyB,EAAI,CAAC,CAAC;YAE3F,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACzC,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACzC,MAAM,EAAE;oBACP,KAAK,EAAE,0EAA0E;iBACjF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,SAAS,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,YAAY,GAAG;YACpB,OAAO,EAAE,QAAQ;SACjB,CAAC;QACF,MAAM,kBAAkB,GAAG;YAC1B,OAAO,EAAE,cAAc;SACvB,CAAC;QACF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,gBAAgB,CAAC,IAAyB,EAAI,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE1E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,KAAK,IAAI,GAAG,IAAI,kBAAkB,EAAE;gBACnC,aAAa;gBACb,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACpD;QACF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,UAAU,CAAC,IAAyB,EAAI,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE1E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,KAAK,IAAI,GAAG,IAAI,kBAAkB,EAAE;gBACnC,aAAa;gBACb,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;aAC1D;QACF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACjC,iBAAiB,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC7C,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACjC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,UAAU,CAAC;iBAChB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,SAAS,oBAAM,SAAS,CAAC,IAAyB,EAAI,CAAC,CAAC;YAE/E,OAAO;iBACL,IAAI,CAAC,UAAU,CAAC;iBAChB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,SAAS;iBAChB;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,UAAU,CAAC;iBAChB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,SAAS,EAAE;gBACpB,GAAG,EAAE,OAAO;gBACZ,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;aACxB,CAAC,CAAC;YACJ,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;QAC/B,qEAAqE;QACrE,oCAAoC;QACpC,gCAAgC;QAChC,0DAA0D;QAC1D,sBAAsB;IACvB,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QAC1B,MAAM,UAAU,GAAG,cAAc,CAAC;QAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAClC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACjC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,UAAU,oBAAM,UAAU,CAAC,IAAyB,EAAI,CAAC,CAAC;YACjF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,MAAM,UAAU,GAAG,aAAa,CAAC;QACjC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QACpC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC/B,gKAAgK;QAChK,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;;YACxD,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,KAAK,EAAE,SAAS,MAEG,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EACzE,0CAA0C,CAC1C,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAChG,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;;YACpD,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,KAAK,EAAE,EAAE,MAEU,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EACzE,0CAA0C,CAC1C,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAChG,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;;YAChE,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,KAAK,EAAE;wBACN,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE;wBACpD,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE;qBAC5C,MAEkB,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EACzE,0CAA0C,CAC1C,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAChG,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;;YAC7D,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,MAEtC,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1E,+CAA+C,CAC/C,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9F,gJAAgJ;QACjJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;;YACnE,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAEP,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CACL,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1E,+CAA+C,CAC/C,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9F,wCAAwC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC/D,uBAAuB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,MAAM,UAAU,GAAG,OAAO,CAAC;QAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM;iBACb;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;iBACZ;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM;iBACb;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,MAAM,UAAU,GAAG,QAAQ,CAAC;QAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM;iBACb;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK;iBACZ;aACD,CAAC,CAAC;YAEJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,QAAQ,CAAC;iBACd,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,MAAM;iBACb;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC;QAC/B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YAErE,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,gBAAgB,EAAE,CAAC,IAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;;YACxC,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,gBAAgB,EAAE,CAAC,MAEA,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,MAAM,UAAU,GAAG,SAAS,CAAC;QAC7B,MAAM,aAAa,GAAG,iBAAiB,CAAC;QACxC,MAAM,aAAa,GAAG,cAAc,CAAC;QACrC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,oBAAoB,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;;YAC7D,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,CAAC,UAAU,CAAC,EAAE,GAAG,MAEE,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAK,IAAI,EAAI,CAAC,CAAC;YAE1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;YACpG,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,aAAa,CAAC;iBACnB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,CAAC,UAAU,CAAC,EAAE,GAAG,IAChB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,aAAa,CAAC;iBACnB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,EAAE;iBACT;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,aAAa,CAAC;iBACnB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,GAAG;iBACV;aACD,CAAC,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC7B,MAAM,KAAK,GAAG,cAAc,CAAC;QAC7B,MAAM,UAAU,GAAG,kBAAkB,CAAC;QACtC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,UAAU,GAAG,cAAc,CAAC;QAClC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,MAAM,UAAU,GAAG,aAAa,CAAC;QACjC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,kBAAkB,CAAC;QACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG,aAAa,CAAC;QAC3B,MAAM,YAAY,GAAG;YACpB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,UAAU,GAAG;YAClB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI;SACf,CAAC;QACF,MAAM,aAAa,GAAG;YACrB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,KAAK;SAChB,CAAC;QACF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACvD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YACjE,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,YAAY,GAAG;YACpB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACnB,CAAC;QACF,MAAM,UAAU,GAAG;YAClB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;SAClB,CAAC;QACF,MAAM,aAAa,GAAG;YACrB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SAClB,CAAC;QACF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACvD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,YAAY,GAAG;YACpB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;SACnB,CAAC;QACF,MAAM,UAAU,GAAG;YAClB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;SAClB,CAAC;QACF,MAAM,aAAa,GAAG;YACrB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,IAAI;SAClB,CAAC;QACF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACvD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,aAAa,GAAG;YACrB,SAAS,EAAE,IAAI;SACf,CAAC;QACF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACvD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC;QACtB,MAAM,YAAY,GAAG;YACpB,WAAW,EAAE,IAAI;SACjB,CAAC;QACF,MAAM,aAAa,GAAG;YACrB,WAAW,EAAE,KAAK;SAClB,CAAC;QACF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACvD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,mBAAmB,CAAC;iBACzB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,WAAW;iBAClB;aACD,CAAC,CAAC;YACJ,OAAO;iBACL,IAAI,CAAC,mBAAmB,CAAC;iBACzB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,YAAY;iBACnB;aACD,CAAC,CAAC;YACJ,OAAO;iBACL,IAAI,CAAC,mBAAmB,CAAC;iBACzB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,iBAAiB;iBACxB;aACD,CAAC,CAAC;YAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,IACzF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACzE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAI,CAAC,IAAyB,EAAI,CAAC,CAAC;YACrE,OAAO;iBACL,IAAI,CAAC,mBAAmB,CAAC;iBACzB,EAAE,CAAC,CAAC,CAAC;iBACL,QAAQ,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE;oBACP,KAAK,EAAE,WAAW;iBAClB;aACD,CAAC,CAAC;YAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;;YACjE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAEvE,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE/E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,OAAO,EAAE,EAAE,IACV,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;;YAC/D,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,OAAO,EAAE,EAAE,MAEQ,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1G,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;;YACvD,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAEvE,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,WAAW,CACX,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,YAAY,CACZ,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,iBAAiB,CACjB,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1G,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;;YACzE,MAAM,IAAI,GAAG,gCACT,IAAI,CAAC,IAAI,KACZ,OAAO,kCACH,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,KACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAAE,CAAC,MAExF,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,IAAI,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,WAAW,CACX,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,YAAY,CACZ,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CACpG,gCAAgC,CAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,YAAY,GAAG;YACpB,QAAQ,EAAE,SAAS;SACnB,CAAC;QACF,MAAM,aAAa,GAAG;YACrB,QAAQ,EAAE,WAAW;SACrB,CAAC;QACF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC5D,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC/D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC/B,MAAM,UAAU,GAAG,2BAA2B,CAAC;QAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACnC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACxC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAClC,MAAM,UAAU,GAAG,WAAW,CAAC;QAC/B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAClC,MAAM,UAAU,GAAG,gBAAgB,CAAC;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC;QACtC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,2BAA2B,CAAC;QAC1C,MAAM,UAAU,GAAG,aAAa,CAAC;QACjC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC;QACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,aAAa,oBAAM,aAAa,CAAC,IAAyB,EAAI,CAAC,CAAC;QACvF,MAAM,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,YAAY;IACZ,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC7D,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,aAAa,oBAAM,aAAa,CAAC,IAAyB,EAAI,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACnD,4DAA4D;YAC5D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACvD,oEAAoE;YACpE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACxE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,iDAAiD;QACjD,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACnC,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,gBAAgB,oBAAM,gBAAgB,CAAC,IAAyB,EAAI,CAAC,CAAC;YAC7F,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,SAAS,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAwB,EAAE,UAAU,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,aAAa,oBAAM,aAAa,CAAC,IAAyB,EAAI,CAAC,CAAC;YAEvF,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,0BAA0B;YAC1B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,iCACtC,QAAQ,KACX,IAAI,EAAE,sBAAsB,EAC5B,gBAAgB,EAAE,KAAK,EACvB,cAAc,EAAE,KAAK,EACrB,SAAS,EAAE,WAAW,IACrB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;;YACxC,MAAM,IAAI,GAAG,gCACT,aAAa,CAAC,IAAI,KACrB,OAAO,kCACH,MAAA,aAAa,CAAC,IAAI,0CAAE,OAAO,KAC9B,gBAAgB,EAAE,CAAC,MAEA,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAC,aAAa,oBAAM,IAAyB,EAAI,CAAC,CAAC;YAEzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACxC,MAAM,KAAK,GAAG,yBAAyB,CAAC;QACxC,MAAM,UAAU,GAAG,uBAAuB,CAAC;QAC3C,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACrC,MAAM,UAAU,GAAG,gBAAgB,CAAC;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACzD,MAAM,KAAK,GAAG,0CAA0C,CAAC;QACzD,MAAM,UAAU,GAAG,YAAY,CAAC;QAChC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACjD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAClD,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { afterEach, describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { AppEditPageProps } from \"../AppEditPage\";\nimport {\n\tPage,\n\tEmptyPage,\n\tNativePage,\n\tPageWithIconURL,\n\tAssimilationPage,\n\tCitrixPage,\n\tAppServiceWeb,\n\tAppServiceNative,\n} from \"../stories/AppEditPage.stories\";\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\nconst defaults = {\n\tname: \"Test\",\n\tabstractPosition: 0,\n\taddToWorkspace: true,\n\talias: \"\",\n\tallowAutoArrange: true,\n\tallowGrouping: true,\n\tallowMaximize: true,\n\tallowMinimize: true,\n\tallowSnapping: true,\n\tallowTabbing: true,\n\tallowTiling: true,\n\talwaysOnTop: false,\n\tappArguments: \"\",\n\tappType: \"web\",\n\tautoConnect: false,\n\tbootPhase: \"preuser\",\n\tdescription: \"\",\n\tdevConsole: false,\n\tenableAOT: false,\n\tenableTitleBar: true,\n\theight: 600,\n\thideClose: false,\n\thideMaximize: false,\n\thideMinimize: false,\n\ticonURL: \"\",\n\tintents: [],\n\tisEvergreen: false,\n\tlaunchableByUser: true,\n\tnative_windowSpawnTimeout: 30,\n\topacity: 1,\n\tpath: \"\",\n\tpersistPath: true,\n\tpersistURL: true,\n\tpreloads: [],\n\tresizable: true,\n\trules: [],\n\tsecurity: \"trusted\",\n\tserviceVisible: false,\n\tsingleton: false,\n\tspawnOnStartup: false,\n\ttitlebarType: \"injected\",\n\turl: \"http://www.google.com\",\n\twaitForInitialization: true,\n\twidth: 1280,\n};\n\nconst testPresetInputValue = (appDataKey: string, selector: string, starter = Page, presetValue = \"Test\") => {\n\tconst args = {\n\t\t...starter.args,\n\t\tappData: {\n\t\t\t...starter.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\texpect(wrapper.find(selector).prop(\"value\")).to.equal(presetValue);\n};\nconst testSaveInputValue = (\n\tappDataKey: string,\n\tselector: string,\n\tnative = false,\n\tnewValue: string | number = \"New value\"\n) => {\n\tconst starter = native ? NativePage : Page;\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper\n\t\t.find(selector)\n\t\t.at(0)\n\t\t.simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: newValue,\n\t\t\t},\n\t\t});\n\n\tconst collection = wrapper.find(\"button\");\n\tcollection.at(collection.length - 1).simulate(\"click\");\n\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t...defaults,\n\t\t...(native\n\t\t\t? {\n\t\t\t\t\tappType: \"native\",\n\t\t\t\t\tpath: \"test.exe\",\n\t\t\t }\n\t\t\t: {}),\n\t\t[appDataKey]: newValue,\n\t});\n};\nconst testSubmitOnEnter = (selector: string, starter = Page) => {\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper\n\t\t.find(selector)\n\t\t.at(0)\n\t\t.simulate(\"keydown\", {\n\t\t\tkey: \"Enter\",\n\t\t\tpreventDefault: () => {},\n\t\t});\n\texpect(buttonSpy.calledOnce).to.be.true;\n};\nconst flipCheckbox = (appDataKey: string, label: string, presetValue: boolean, forAppServices: boolean = false) => {\n\tconst CurrentPage = forAppServices ? AppServiceWeb : Page;\n\n\tconst args = {\n\t\t...CurrentPage.args,\n\t\tappData: {\n\t\t\t...CurrentPage.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst buttonSpy = sinon.spy(args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<CurrentPage {...args} />);\n\n\twrapper.find(`[role='checkbox'][aria-label='${label}']`).simulate(\"click\");\n\tconst collection = wrapper.find(\"button\");\n\tconst saveButton = collection.at(collection.length - 1);\n\tsaveButton.simulate(\"click\");\n\t//this damn thing again\n\tif (forAppServices) {\n\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t...defaults,\n\t\t\tname: \"Chart data connector\",\n\t\t\tlaunchableByUser: false,\n\t\t\tenableTitleBar: false,\n\t\t\t[appDataKey]: !presetValue,\n\t\t});\n\t} else {\n\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t...defaults,\n\t\t\t[appDataKey]: !presetValue,\n\t\t});\n\t}\n};\nconst presetCheckbox = (\n\tappDataKey: string,\n\tlabel: string,\n\tpresetValue: boolean = true,\n\texpectedValue: boolean = true,\n\tforAppServices: boolean = false\n) => {\n\tconst CurrentPage = forAppServices ? AppServiceWeb : Page;\n\tconst args = {\n\t\t...CurrentPage.args,\n\t\tappData: {\n\t\t\t...CurrentPage.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<CurrentPage {...args} />);\n\n\texpect(wrapper.find(`[role='checkbox'][aria-label='${label}']`).prop(\"aria-checked\")).to.equal(expectedValue);\n};\nconst checkUniqueRadioButtons = (name: string, numberOfButtons: number, starter = Page) => {\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\n\tconst locator = `input[type='radio'][name='${name}']`;\n\n\tfor (let i = 0; i < numberOfButtons; i++) {\n\t\twrapper.find(locator).at(i).simulate(\"change\");\n\n\t\tfor (let j = 0; j < numberOfButtons; j++) {\n\t\t\texpect(\n\t\t\t\twrapper.find(locator).at(j).prop(\"checked\"),\n\t\t\t\t`When radio #${i + 1} is clicked, is radio #${j + 1} checked?`\n\t\t\t).to.equal(i === j);\n\t\t}\n\t}\n};\nconst presetRadioButtons = (name: string, presetData: { [key: string]: any }, radioChecked: boolean[]) => {\n\tconst args = {\n\t\t...Page.args,\n\t\tappData: {\n\t\t\t...Page.args?.appData,\n\t\t\t...presetData,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\tradioChecked.forEach((radioButton, key) => {\n\t\texpect(wrapper.find(`input[type='radio'][name='${name}']`).at(key).prop(\"checked\")).to.equal(radioButton);\n\t});\n};\nconst saveRadioButton = (\n\tname: string,\n\tbuttonNumberChecked: number,\n\tsavedValues: { [key: string]: any },\n\tstarter = Page\n) => {\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper.find(`input[type='radio'][name='${name}']`).at(buttonNumberChecked).simulate(\"change\");\n\n\tconst collection = wrapper.find(\"button\");\n\tconst saveButton = collection.at(collection.length - 1);\n\tsaveButton.simulate(\"click\");\n\n\tconst savedValue = buttonSpy.args[0][0];\n\tfor (let key in savedValues) {\n\t\t// @ts-ignore\n\t\texpect(savedValue[key]).to.equal(savedValues[key]);\n\t}\n};\n\ndescribe(\"<AppEditPage/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\t// Not using accessibility scans on this page, since the parent component <Applications /> is running them\n\n\tit(\"should call the passed-in cancel function when the cancel button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"cancelFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\tconst collection = wrapper.find(\"button\");\n\t\tcollection.at(collection.length - 2).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\n\tit(\"should call the passed-in Remove Application function when the Remove Application button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"removeApplicationFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\tconst collection = wrapper.find(\"button\");\n\t\tcollection.at(collection.length - 3).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\tsinon.restore();\n\t});\n\tit(\"should call the passed-in submit function with relevant data when the submit button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\twrapper.find(\"button\").last().simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\texpect(buttonSpy.firstCall.args[0]).to.deep.equal(defaults);\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(10e3);\n\n\tdescribe(\"Show/hide sections for types of apps\", () => {\n\t\tit(\"Web app type\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.false;\n\t\t});\n\t\tit(\"Native app type\", () => {\n\t\t\tconst wrapper = mount(<NativePage {...(NativePage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.true;\n\t\t});\n\t\tit(\"Assimilation app type\", () => {\n\t\t\tconst wrapper = mount(<AssimilationPage {...(AssimilationPage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.true;\n\t\t});\n\t\tit(\"Citrix app type\", () => {\n\t\t\tconst wrapper = mount(<CitrixPage {...(CitrixPage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.false;\n\t\t});\n\t});\n\n\tdescribe(\"Name\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(\"name\", \"#app-name\");\n\t\t});\n\t\tit(\"should display starting name in Name field, if name field is set\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"Test\");\n\t\t});\n\t\tit(\"should not display starting name in Name field, if no name field is set\", () => {\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"\");\n\t\t});\n\t\tit(\"should display Name as a valid field, even if the given name is duplicate\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\tconst appName = wrapper.find(\"#app-name\").at(0);\n\t\t\tappName.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"Used\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-name\").at(0).prop(\"value\")).to.equal(\"Used\");\n\t\t\texpect(!!wrapper.find(\"#app-name\").at(0).prop(\"aria-invalid\")).to.be.false;\n\t\t});\n\t\tit(\"should have a disabled Save button if the name field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should click submit button when pressing enter on Name field\", () => {\n\t\t\ttestSubmitOnEnter(\"#app-name\");\n\t\t});\n\t\tit(\"should not click submit button when pressing a key other than enter on Name field\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"a\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\t});\n\t\tit(\"should not submit when pressing enter on Name field IF the submit button is disabled\", () => {\n\t\t\tconst buttonSpy = sinon.spy(EmptyPage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"Enter\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Icon URL\", () => {\n\t\tconst appDataKey = \"iconURL\";\n\t\tconst selector = \"#app-icon-url\";\n\t\tconst imageSelector = \".app-icon\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector);\n\t\t});\n\t\tit(\"should display icon when icon url is provided\", () => {\n\t\t\tconst wrapper = mount(<PageWithIconURL {...(PageWithIconURL.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.true;\n\t\t});\n\t\tit(\"should not display icon when no icon url is provided\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.false;\n\t\t});\n\t\tit(\"when icon url field is emptied, the icon should disappear\", () => {\n\t\t\tconst wrapper = mount(<PageWithIconURL {...(PageWithIconURL.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(selector).simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.false;\n\t\t});\n\t\tit(\"when icon url field gets a value, the icon should start displaying\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(selector).simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/components/fdc3-workbench/fdc3-icon-256.png\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"API Access\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\n\t\tconst name = \"api-access\";\n\t\tconst nativeParams = {\n\t\t\tappType: \"native\",\n\t\t};\n\t\tconst assimilationParams = {\n\t\t\tappType: \"assimilation\",\n\t\t};\n\t\tit(\"should save correctly when edited: With API Access\", () => {\n\t\t\tconst buttonSpy = sinon.spy(AssimilationPage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(AssimilationPage.args as AppEditPageProps)} />);\n\t\t\twrapper.find(`input[type='checkbox'][name='${name}']`).simulate(\"change\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\tsaveButton.simulate(\"click\");\n\n\t\t\tconst savedValue = buttonSpy.args[0][0];\n\t\t\tfor (let key in assimilationParams) {\n\t\t\t\t// @ts-ignore\n\t\t\t\texpect(savedValue[key]).to.equal(nativeParams[key]);\n\t\t\t}\n\t\t});\n\t\tit(\"should save correctly when edited: Without API Access\", () => {\n\t\t\tconst buttonSpy = sinon.spy(NativePage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(NativePage.args as AppEditPageProps)} />);\n\t\t\twrapper.find(`input[type='checkbox'][name='${name}']`).simulate(\"change\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\tsaveButton.simulate(\"click\");\n\n\t\t\tconst savedValue = buttonSpy.args[0][0];\n\t\t\tfor (let key in assimilationParams) {\n\t\t\t\t// @ts-ignore\n\t\t\t\texpect(savedValue[key]).to.equal(assimilationParams[key]);\n\t\t\t}\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(\"[name='api-access']\", NativePage);\n\t\t});\n\t});\n\tdescribe(\"App URL\", () => {\n\t\tconst appDataKey = \"url\";\n\t\tconst selector = \"#app-url\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit.skip(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector);\n\t\t});\n\t\tit(\"should have a disabled Save button if the App URL field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for App URL if provided URL is invalid\", () => {\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"invalid\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-url\").at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should click submit button when pressing enter on App URL field\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"Enter\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\t});\n\t});\n\tdescribe.skip(\"File path\", () => {\n\t\t// Couldn't get tests for manipulating input[type=file] to work right\n\t\t// should save correctly when edited\n\t\t// should display pre-set values\n\t\t// is required (enables/disables Save button when invalid)\n\t\t// shows invalid state\n\t});\n\tdescribe(\"Arguments\", () => {\n\t\tconst appDataKey = \"appArguments\";\n\t\tconst selector = \"#app-arguments\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, true);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, NativePage);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector, NativePage);\n\t\t});\n\t\tit(\"is not required (Save button is enabled if empty)\", () => {\n\t\t\tconst wrapper = mount(<NativePage {...(NativePage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.find(selector).prop(\"value\")).to.be.empty;\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\texpect(saveButton.prop(\"disabled\")).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Description\", () => {\n\t\tconst appDataKey = \"description\";\n\t\tconst selector = \"#app-description\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"is not required (Save button is enabled if empty)\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.find(selector).prop(\"value\")).to.be.empty;\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\texpect(saveButton.prop(\"disabled\")).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Select Connect\", () => {\n\t\t// @todo write test: should save correctly when edited (radio buttons and box) - issue with how <AppEditAccess /> is set up, so it always appears empty in tests\n\t\tit(\"should display preset value (undefined rules)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: undefined,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (empty rules)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (rules without authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [\n\t\t\t\t\t\t{ contextType: \"fdc3.instrument\", cc: \"#Workspace\" },\n\t\t\t\t\t\t{ contextType: \"layout\", fwd: \"#Workspace\" },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (rules with authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [{ authorize: [{ name: \"ChartIQ Example App\" }] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='false']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust selected apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.true;\n\t\t\t// AppEditAccess is tested independently (and can't be tested on this level because it comes up as empty because it doesn't have a list of apps)\n\t\t});\n\t\tit(\"should display preset value (rules with empty authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [{ authorize: [] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='false']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust selected apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.true;\n\t\t\t// AppEditAccess is tested independently\n\t\t});\n\t\tit.skip(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(\"interop-trust\", 2);\n\t\t});\n\t});\n\tdescribe(\"Width\", () => {\n\t\tconst appDataKey = \"width\";\n\t\tconst selector = \"#app-width\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, false, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, Page, \"200\");\n\t\t});\n\t\tit(\"should display invalid state for width if provided a negative number\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for width if provided an empty value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for non-numeric value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"abc\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the width field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the width field is negative\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"Height\", () => {\n\t\tconst appDataKey = \"height\";\n\t\tconst selector = \"#app-height\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, false, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, Page, \"200\");\n\t\t});\n\t\tit(\"should display invalid state for width if provided a negative number\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for width if provided an empty value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for non-numeric value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"abc\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-height\").at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the height field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the height field is negative\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"Lock dimensions\", () => {\n\t\tconst label = \"Lock dimensions\";\n\t\tconst appDataKey = \"resizable\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, false);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Position\", () => {\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(\".position-entry [role='combobox']\").simulate(\"click\");\n\t\t\twrapper.find(\".position-entry .finsemble-dropdown__btn-option\").at(4).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tabstractPosition: 4,\n\t\t\t});\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tabstractPosition: 5,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".position-entry .finsemble-dropdown__btn-label\").text()).to.equal(\"Center\");\n\t\t});\n\t});\n\tdescribe(\"Opacity\", () => {\n\t\tconst appDataKey = \"opacity\";\n\t\tconst rangeSelector = \".app-edit-range\";\n\t\tconst inputSelector = \"#app-opacity\";\n\t\tit(\"should display correctly when preset (input range)\", () => {\n\t\t\ttestPresetInputValue(appDataKey, rangeSelector, Page, \"30\");\n\t\t});\n\t\tit(\"should display correctly when preset (input field)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\t[appDataKey]: 0.3,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...args} />);\n\n\t\t\texpect(wrapper.find(inputSelector).prop(\"value\")).to.equal(30);\n\t\t});\n\t\tit(\"should save correctly when edited (input range)\", () => {\n\t\t\ttestSaveInputValue(appDataKey, rangeSelector, false, 30);\n\t\t});\n\t\tit(\"should save correctly when edited (input field) - value saved is 1/100 of what is entered\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(inputSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 30,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\t[appDataKey]: 0.3,\n\t\t\t});\n\t\t});\n\t\tit(\"When editing the range field, the text box updates\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(inputSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 70,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(rangeSelector).prop(\"value\")).to.equal(0.7);\n\t\t});\n\t\tit(\"When editing the text box, the range field updates\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(rangeSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 0.7,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(inputSelector).prop(\"value\")).to.equal(70);\n\t\t});\n\t});\n\tdescribe(\"Auto arrange\", () => {\n\t\tconst label = \"Auto arrange\";\n\t\tconst appDataKey = \"allowAutoArrange\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Grouping\", () => {\n\t\tconst label = \"Grouping\";\n\t\tconst appDataKey = \"allowGrouping\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Snapping\", () => {\n\t\tconst label = \"Snapping\";\n\t\tconst appDataKey = \"allowSnapping\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Tabs\", () => {\n\t\tconst label = \"Tabs\";\n\t\tconst appDataKey = \"allowTabbing\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Tiling\", () => {\n\t\tconst label = \"Tiling\";\n\t\tconst appDataKey = \"allowTiling\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Enable title bar\", () => {\n\t\tconst label = \"Enable title bar\";\n\t\tconst appDataKey = \"enableTitleBar\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Always on top\", () => {\n\t\tconst name = \"alwaysOnTop\";\n\t\tconst enableParams = {\n\t\t\talwaysOnTop: true,\n\t\t\tenableAOT: false,\n\t\t};\n\t\tconst showParams = {\n\t\t\talwaysOnTop: false,\n\t\t\tenableAOT: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\talwaysOnTop: false,\n\t\t\tenableAOT: false,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Show in titlebar\", () => {\n\t\t\tpresetRadioButtons(name, showParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Show in titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, showParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Minimize\", () => {\n\t\tconst name = \"minimize\";\n\t\tconst enableParams = {\n\t\t\tallowMinimize: true,\n\t\t\thideMinimize: false,\n\t\t};\n\t\tconst hideParams = {\n\t\t\tallowMinimize: true,\n\t\t\thideMinimize: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tallowMinimize: false,\n\t\t\thideMinimize: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Hide from titlebar\", () => {\n\t\t\tpresetRadioButtons(name, hideParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Hide from titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, hideParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Maximize\", () => {\n\t\tconst name = \"maximize\";\n\t\tconst enableParams = {\n\t\t\tallowMaximize: true,\n\t\t\thideMaximize: false,\n\t\t};\n\t\tconst hideParams = {\n\t\t\tallowMaximize: true,\n\t\t\thideMaximize: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tallowMaximize: false,\n\t\t\thideMaximize: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Hide from titlebar\", () => {\n\t\t\tpresetRadioButtons(name, hideParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Hide from titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, hideParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Close\", () => {\n\t\tconst name = \"close\";\n\t\tconst enableParams = {\n\t\t\thideClose: false,\n\t\t};\n\t\tconst disableParams = {\n\t\t\thideClose: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Display linker\", () => {\n\t\tconst name = \"linker\";\n\t\tconst enableParams = {\n\t\t\tautoConnect: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tautoConnect: false,\n\t\t};\n\t\tit(\"should display correctly when preset: Always\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: FDC3 API use\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Always\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: FDC3 API use\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Intents\", () => {\n\t\tit(\"should save correctly when edited (adding an intent)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"ViewChart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(1)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"View Chart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(2)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"fdc3.instrument\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t});\n\t\t});\n\t\tit(\"should save correctly when edited (adding just an intent name)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"ViewChart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"\", contexts: [\"\"] }],\n\t\t\t});\n\t\t});\n\t\tit(\"should save correctly when edited (removing an intent)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\t\t\twrapper.find(\".inputTable button[title='Remove row']\").at(0).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [],\n\t\t\t});\n\t\t});\n\t\tit(\"should display preset values (empty list of intents)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(2);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.be.empty;\n\t\t});\n\t\tit(\"should display preset values (with 1 intent)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(3);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.equal(\n\t\t\t\t\"ViewChart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.equal(\n\t\t\t\t\"View Chart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.equal(\n\t\t\t\t\"fdc3.instrument\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(3).prop(\"value\"), \"Intent table, input field 4\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(4).prop(\"value\"), \"Intent table, input field 5\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(5).prop(\"value\"), \"Intent table, input field 6\").to.be.empty;\n\t\t});\n\t\tit(\"should display preset values (multiple contexts for an intent)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\", \"custom.symbol\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(3);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.equal(\n\t\t\t\t\"ViewChart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.equal(\n\t\t\t\t\"View Chart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.equal(\n\t\t\t\t\"fdc3.instrument, custom.symbol\"\n\t\t\t);\n\t\t});\n\t});\n\tdescribe(\"Set security\", () => {\n\t\tconst name = \"security\";\n\t\tconst enableParams = {\n\t\t\tsecurity: \"trusted\",\n\t\t};\n\t\tconst disableParams = {\n\t\t\tsecurity: \"untrusted\",\n\t\t};\n\t\tit(\"should display correctly when preset: Trusted\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Untrusted\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Trusted\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit.skip(\"should save correctly when edited: Untrusted\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit.skip(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Launch timeout\", () => {\n\t\tconst appDataKey = \"native_windowSpawnTimeout\";\n\t\tconst selector = \"#launch-timeout\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, true, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, NativePage, \"200\");\n\t\t});\n\t});\n\tdescribe(\"Only one instance\", () => {\n\t\tconst label = \"Only one instance\";\n\t\tconst appDataKey = \"singleton\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Launch at startup\", () => {\n\t\tconst label = \"Launch at startup\";\n\t\tconst appDataKey = \"spawnOnStartup\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Include in Apps menu\", () => {\n\t\tconst label = \"Include in Apps menu\";\n\t\tconst appDataKey = \"launchableByUser\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Persist across workspaces\", () => {\n\t\tconst label = \"Persist across workspaces\";\n\t\tconst appDataKey = \"isEvergreen\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Add to workspaces\", () => {\n\t\tconst label = \"Add to workspace\";\n\t\tconst appDataKey = \"addToWorkspace\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Persist the location\", () => {\n\t\tconst label = \"Persist the URL\";\n\t\tconst appDataKey = \"persistURL\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n});\n\ndescribe(\"<AppWebServicesEditPage/>\", () => {\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<AppServiceWeb {...(AppServiceWeb.args as AppEditPageProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(10e3);\n\n\t// keep this\n\tdescribe(\"Show/hide sections for types of app serivces\", () => {\n\t\tit(\"Web app services type\", () => {\n\t\t\tconst wrapper = mount(<AppServiceWeb {...(AppServiceWeb.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\t// expect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\t// expect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-debug\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t});\n\t\t//check on this after adding a native app service\n\t\tit(\"Native app services type\", () => {\n\t\t\tconst wrapper = mount(<AppServiceNative {...(AppServiceNative.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-debug\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t});\n\t});\n\n\tdescribe(\"Boot Phase\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\tconst buttonSpy = sinon.spy(AppServiceWeb.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<AppServiceWeb {...(AppServiceWeb.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(\".bootPhase-entry [role='combobox']\").simulate(\"click\");\n\t\t\twrapper.find(\".bootPhase-entry .finsemble-dropdown__btn-option\").at(4).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\t// something is wrong here\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tname: \"Chart data connector\",\n\t\t\t\tlaunchableByUser: false,\n\t\t\t\tenableTitleBar: false,\n\t\t\t\tbootPhase: \"earlyuser\",\n\t\t\t});\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\tconst args = {\n\t\t\t\t...AppServiceWeb.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...AppServiceWeb.args?.appData,\n\t\t\t\t\tabstractPosition: 4,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<AppServiceWeb {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".bootPhase-entry .finsemble-dropdown__btn-label\").text()).to.equal(\"preuser\");\n\t\t});\n\t});\n\n\tdescribe(\"Wait for Initialization\", () => {\n\t\tconst label = \"Wait for initialization\";\n\t\tconst appDataKey = \"waitForInitialization\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false, true);\n\t\t});\n\t});\n\n\tdescribe(\"Make service visible\", () => {\n\t\tconst label = \"Make service visible\";\n\t\tconst appDataKey = \"serviceVisible\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false, true);\n\t\t});\n\t});\n\tdescribe(\"Open Chrome devtools when service starts\", () => {\n\t\tconst label = \"Open Chrome devtools when service starts\";\n\t\tconst appDataKey = \"devConsole\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should save correctly (change to false)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false, true);\n\t\t});\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"AppEditPage.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/AppEditPage.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { afterEach, describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport sinon from \"sinon\";\nimport { AppEditPageProps } from \"../AppEditPage\";\nimport {\n\tPage,\n\tEmptyPage,\n\tNativePage,\n\tPageWithIconURL,\n\tAssimilationPage,\n\tCitrixPage,\n\tAppServiceWeb,\n\tAppServiceNative,\n} from \"../stories/AppEditPage.stories\";\nimport { accessibilityAssessor } from \"./a11y_helper\";\n\nconst defaults = {\n\tname: \"Test\",\n\tabstractPosition: 0,\n\taddToWorkspace: true,\n\talias: \"\",\n\tallowAutoArrange: true,\n\tallowGrouping: true,\n\tallowMaximize: true,\n\tallowMinimize: true,\n\tallowSnapping: true,\n\tallowTabbing: true,\n\tallowTiling: true,\n\talwaysOnTop: false,\n\tappArguments: \"\",\n\tappType: \"web\",\n\tautoConnect: false,\n\tbootPhase: \"preuser\",\n\tdescription: \"\",\n\tdevConsole: false,\n\tenableAOT: false,\n\tenableTitleBar: true,\n\theight: 600,\n\thideClose: false,\n\thideMaximize: false,\n\thideMinimize: false,\n\ticonURL: \"\",\n\tintents: [],\n\tisEvergreen: false,\n\tlaunchableByUser: true,\n\tnative_windowSpawnTimeout: 30,\n\topacity: 1,\n\tpath: \"\",\n\tpersistPath: true,\n\tpersistURL: true,\n\tpreloads: [],\n\tresizable: true,\n\trules: [],\n\tsecurity: \"trusted\",\n\tserviceVisible: false,\n\tsingleton: false,\n\tspawnOnStartup: false,\n\ttitlebarType: \"injected\",\n\turl: \"http://www.google.com\",\n\twaitForInitialization: true,\n\twidth: 1280,\n};\n\nconst testPresetInputValue = (appDataKey: string, selector: string, starter = Page, presetValue = \"Test\") => {\n\tconst args = {\n\t\t...starter.args,\n\t\tappData: {\n\t\t\t...starter.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\texpect(wrapper.find(selector).prop(\"value\")).to.equal(presetValue);\n};\nconst testSaveInputValue = (\n\tappDataKey: string,\n\tselector: string,\n\tnative = false,\n\tnewValue: string | number = \"New value\"\n) => {\n\tconst starter = native ? NativePage : Page;\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper\n\t\t.find(selector)\n\t\t.at(0)\n\t\t.simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: newValue,\n\t\t\t},\n\t\t});\n\n\tconst collection = wrapper.find(\"button\");\n\tcollection.at(collection.length - 1).simulate(\"click\");\n\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t...defaults,\n\t\t...(native\n\t\t\t? {\n\t\t\t\t\tappType: \"native\",\n\t\t\t\t\tpath: \"test.exe\",\n\t\t\t }\n\t\t\t: {}),\n\t\t[appDataKey]: newValue,\n\t});\n};\nconst testSubmitOnEnter = (selector: string, starter = Page) => {\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper\n\t\t.find(selector)\n\t\t.at(0)\n\t\t.simulate(\"keydown\", {\n\t\t\tkey: \"Enter\",\n\t\t\tpreventDefault: () => {},\n\t\t});\n\texpect(buttonSpy.calledOnce).to.be.true;\n};\nconst flipCheckbox = (appDataKey: string, label: string, presetValue: boolean, forAppServices: boolean = false) => {\n\tconst CurrentPage = forAppServices ? AppServiceWeb : Page;\n\n\tconst args = {\n\t\t...CurrentPage.args,\n\t\tappData: {\n\t\t\t...CurrentPage.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst buttonSpy = sinon.spy(args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<CurrentPage {...args} />);\n\n\twrapper.find(`input[type='checkbox'][aria-label='${label}']`).simulate(\"change\");\n\tconst collection = wrapper.find(\"button\");\n\tconst saveButton = collection.at(collection.length - 1);\n\tsaveButton.simulate(\"click\");\n\t//this damn thing again\n\tif (forAppServices) {\n\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t...defaults,\n\t\t\tname: \"Chart data connector\",\n\t\t\tlaunchableByUser: false,\n\t\t\tenableTitleBar: false,\n\t\t\t[appDataKey]: !presetValue,\n\t\t});\n\t} else {\n\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t...defaults,\n\t\t\t[appDataKey]: !presetValue,\n\t\t});\n\t}\n};\nconst presetCheckbox = (\n\tappDataKey: string,\n\tlabel: string,\n\tpresetValue: boolean = true,\n\texpectedValue: boolean = true,\n\tforAppServices: boolean = false\n) => {\n\tconst CurrentPage = forAppServices ? AppServiceWeb : Page;\n\tconst args = {\n\t\t...CurrentPage.args,\n\t\tappData: {\n\t\t\t...CurrentPage.args?.appData,\n\t\t\t[appDataKey]: presetValue,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<CurrentPage {...args} />);\n\n\texpect(wrapper.find(`input[type='checkbox'][aria-label='${label}']`).prop(\"checked\")).to.equal(expectedValue);\n};\nconst checkUniqueRadioButtons = (name: string, numberOfButtons: number, starter = Page) => {\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\n\tconst locator = `input[type='radio'][name='${name}']`;\n\n\tfor (let i = 0; i < numberOfButtons; i++) {\n\t\twrapper.find(locator).at(i).simulate(\"change\");\n\n\t\tfor (let j = 0; j < numberOfButtons; j++) {\n\t\t\texpect(\n\t\t\t\twrapper.find(locator).at(j).prop(\"checked\"),\n\t\t\t\t`When radio #${i + 1} is clicked, is radio #${j + 1} checked?`\n\t\t\t).to.equal(i === j);\n\t\t}\n\t}\n};\nconst presetRadioButtons = (name: string, presetData: { [key: string]: any }, radioChecked: boolean[]) => {\n\tconst args = {\n\t\t...Page.args,\n\t\tappData: {\n\t\t\t...Page.args?.appData,\n\t\t\t...presetData,\n\t\t},\n\t} as AppEditPageProps;\n\tconst wrapper = mount(<Page {...args} />);\n\n\tradioChecked.forEach((radioButton, key) => {\n\t\texpect(wrapper.find(`input[type='radio'][name='${name}']`).at(key).prop(\"checked\")).to.equal(radioButton);\n\t});\n};\nconst saveRadioButton = (\n\tname: string,\n\tbuttonNumberChecked: number,\n\tsavedValues: { [key: string]: any },\n\tstarter = Page\n) => {\n\tconst buttonSpy = sinon.spy(starter.args as AppEditPageProps, \"submitFn\");\n\tconst wrapper = mount(<Page {...(starter.args as AppEditPageProps)} />);\n\twrapper.find(`input[type='radio'][name='${name}']`).at(buttonNumberChecked).simulate(\"change\");\n\n\tconst collection = wrapper.find(\"button\");\n\tconst saveButton = collection.at(collection.length - 1);\n\tsaveButton.simulate(\"click\");\n\n\tconst savedValue = buttonSpy.args[0][0];\n\tfor (let key in savedValues) {\n\t\t// @ts-ignore\n\t\texpect(savedValue[key]).to.equal(savedValues[key]);\n\t}\n};\n\ndescribe(\"<AppEditPage/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\n\t// Not using accessibility scans on this page, since the parent component <Applications /> is running them\n\n\tit(\"should call the passed-in cancel function when the cancel button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"cancelFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\tconst collection = wrapper.find(\"button\");\n\t\tcollection.at(collection.length - 2).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t});\n\n\tit(\"should call the passed-in Remove Application function when the Remove Application button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"removeApplicationFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\tconst collection = wrapper.find(\"button\");\n\t\tcollection.at(collection.length - 3).simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\tsinon.restore();\n\t});\n\tit(\"should call the passed-in submit function with relevant data when the submit button is clicked\", () => {\n\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\twrapper.find(\"button\").last().simulate(\"click\");\n\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\texpect(buttonSpy.firstCall.args[0]).to.deep.equal(defaults);\n\t});\n\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(10e3);\n\n\tdescribe(\"Show/hide sections for types of apps\", () => {\n\t\tit(\"Web app type\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.false;\n\t\t});\n\t\tit(\"Native app type\", () => {\n\t\t\tconst wrapper = mount(<NativePage {...(NativePage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.true;\n\t\t});\n\t\tit(\"Assimilation app type\", () => {\n\t\t\tconst wrapper = mount(<AssimilationPage {...(AssimilationPage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.true;\n\t\t});\n\t\tit(\"Citrix app type\", () => {\n\t\t\tconst wrapper = mount(<CitrixPage {...(CitrixPage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Virtual app name\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Persist across workspaces\")).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-window-behavior\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-workspace\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-url\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#persist-path\").exists()).to.be.false;\n\t\t});\n\t});\n\n\tdescribe(\"Name\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(\"name\", \"#app-name\");\n\t\t});\n\t\tit(\"should display starting name in Name field, if name field is set\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"Test\");\n\t\t});\n\t\tit(\"should not display starting name in Name field, if no name field is set\", () => {\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\"#app-name\").first().prop(\"value\")).to.equal(\"\");\n\t\t});\n\t\tit(\"should display Name as a valid field, even if the given name is duplicate\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\tconst appName = wrapper.find(\"#app-name\").at(0);\n\t\t\tappName.simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"Used\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-name\").at(0).prop(\"value\")).to.equal(\"Used\");\n\t\t\texpect(!!wrapper.find(\"#app-name\").at(0).prop(\"aria-invalid\")).to.be.false;\n\t\t});\n\t\tit(\"should have a disabled Save button if the name field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should click submit button when pressing enter on Name field\", () => {\n\t\t\ttestSubmitOnEnter(\"#app-name\");\n\t\t});\n\t\tit(\"should not click submit button when pressing a key other than enter on Name field\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"a\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\t});\n\t\tit(\"should not submit when pressing enter on Name field IF the submit button is disabled\", () => {\n\t\t\tconst buttonSpy = sinon.spy(EmptyPage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-name\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"Enter\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Icon URL\", () => {\n\t\tconst appDataKey = \"iconURL\";\n\t\tconst selector = \"#app-icon-url\";\n\t\tconst imageSelector = \".app-icon\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector);\n\t\t});\n\t\tit(\"should display icon when icon url is provided\", () => {\n\t\t\tconst wrapper = mount(<PageWithIconURL {...(PageWithIconURL.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.true;\n\t\t});\n\t\tit(\"should not display icon when no icon url is provided\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.false;\n\t\t});\n\t\tit(\"when icon url field is emptied, the icon should disappear\", () => {\n\t\t\tconst wrapper = mount(<PageWithIconURL {...(PageWithIconURL.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(selector).simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.false;\n\t\t});\n\t\tit(\"when icon url field gets a value, the icon should start displaying\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(selector).simulate(\"change\", {\n\t\t\t\ttarget: {\n\t\t\t\t\tvalue: \"https://assets.finsemble.com/components/fdc3-workbench/fdc3-icon-256.png\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texpect(wrapper.find(imageSelector).exists()).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"API Access\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\n\t\tconst id = \"api-access\";\n\t\tconst nativeParams = {\n\t\t\tappType: \"native\",\n\t\t};\n\t\tconst assimilationParams = {\n\t\t\tappType: \"assimilation\",\n\t\t};\n\t\tit(\"should save correctly when edited: With API Access\", () => {\n\t\t\tconst buttonSpy = sinon.spy(AssimilationPage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(AssimilationPage.args as AppEditPageProps)} />);\n\t\t\twrapper.find(`input[type='checkbox']#${id}`).simulate(\"change\");\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\tsaveButton.simulate(\"click\");\n\n\t\t\tconst savedValue = buttonSpy.args[0][0];\n\t\t\tfor (let key in assimilationParams) {\n\t\t\t\t// @ts-ignore\n\t\t\t\texpect(savedValue[key]).to.equal(nativeParams[key]);\n\t\t\t}\n\t\t});\n\t\tit(\"should save correctly when edited: Without API Access\", () => {\n\t\t\tconst buttonSpy = sinon.spy(NativePage.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(NativePage.args as AppEditPageProps)} />);\n\t\t\twrapper.find(`input[type='checkbox']#${id}`).simulate(\"change\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\tsaveButton.simulate(\"click\");\n\n\t\t\tconst savedValue = buttonSpy.args[0][0];\n\t\t\tfor (let key in assimilationParams) {\n\t\t\t\t// @ts-ignore\n\t\t\t\texpect(savedValue[key]).to.equal(assimilationParams[key]);\n\t\t\t}\n\t\t});\n\t});\n\tdescribe(\"App URL\", () => {\n\t\tconst appDataKey = \"url\";\n\t\tconst selector = \"#app-url\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit.skip(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector);\n\t\t});\n\t\tit(\"should have a disabled Save button if the App URL field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for App URL if provided URL is invalid\", () => {\n\t\t\tconst wrapper = mount(<EmptyPage {...(EmptyPage.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"invalid\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-url\").at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should click submit button when pressing enter on App URL field\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\"#app-url\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"keydown\", {\n\t\t\t\t\tkey: \"Enter\",\n\t\t\t\t\tpreventDefault: () => {},\n\t\t\t\t});\n\t\t\texpect(buttonSpy.calledOnce).to.be.true;\n\t\t});\n\t});\n\tdescribe.skip(\"File path\", () => {\n\t\t// Couldn't get tests for manipulating input[type=file] to work right\n\t\t// should save correctly when edited\n\t\t// should display pre-set values\n\t\t// is required (enables/disables Save button when invalid)\n\t\t// shows invalid state\n\t});\n\tdescribe(\"Arguments\", () => {\n\t\tconst appDataKey = \"appArguments\";\n\t\tconst selector = \"#app-arguments\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, true);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, NativePage);\n\t\t});\n\t\tit(\"should submit on enter\", () => {\n\t\t\ttestSubmitOnEnter(selector, NativePage);\n\t\t});\n\t\tit(\"is not required (Save button is enabled if empty)\", () => {\n\t\t\tconst wrapper = mount(<NativePage {...(NativePage.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.find(selector).prop(\"value\")).to.be.empty;\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\texpect(saveButton.prop(\"disabled\")).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Description\", () => {\n\t\tconst appDataKey = \"description\";\n\t\tconst selector = \"#app-description\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector);\n\t\t});\n\t\tit(\"is not required (Save button is enabled if empty)\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.find(selector).prop(\"value\")).to.be.empty;\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tconst saveButton = collection.at(collection.length - 1);\n\t\t\texpect(saveButton.prop(\"disabled\")).to.be.false;\n\t\t});\n\t});\n\tdescribe(\"Select Connect\", () => {\n\t\t// @todo write test: should save correctly when edited (radio buttons and box) - issue with how <AppEditAccess /> is set up, so it always appears empty in tests\n\t\tit(\"should display preset value (undefined rules)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: undefined,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (empty rules)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (rules without authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [\n\t\t\t\t\t\t{ contextType: \"fdc3.instrument\", cc: \"#Workspace\" },\n\t\t\t\t\t\t{ contextType: \"layout\", fwd: \"#Workspace\" },\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='true']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust all apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.false;\n\t\t});\n\t\tit(\"should display preset value (rules with authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [{ authorize: [{ name: \"ChartIQ Example App\" }] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='false']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust selected apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.true;\n\t\t\t// AppEditAccess is tested independently (and can't be tested on this level because it comes up as empty because it doesn't have a list of apps)\n\t\t});\n\t\tit(\"should display preset value (rules with empty authorize)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\trules: [{ authorize: [] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(\n\t\t\t\twrapper.find(\"input[name='interop-trust'][value='false']\").prop(\"checked\"),\n\t\t\t\t\"Radio button 'trust selected apps' is checked\"\n\t\t\t).to.be.true;\n\t\t\texpect(wrapper.find(\".app-edit-access\").exists(), \"Display SelectConnect listbox\").to.be.true;\n\t\t\t// AppEditAccess is tested independently\n\t\t});\n\t\tit.skip(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(\"interop-trust\", 2);\n\t\t});\n\t});\n\tdescribe(\"Width\", () => {\n\t\tconst appDataKey = \"width\";\n\t\tconst selector = \"#app-width\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, false, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, Page, \"200\");\n\t\t});\n\t\tit(\"should display invalid state for width if provided a negative number\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for width if provided an empty value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for non-numeric value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"abc\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the width field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the width field is negative\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"Height\", () => {\n\t\tconst appDataKey = \"height\";\n\t\tconst selector = \"#app-height\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, false, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, Page, \"200\");\n\t\t});\n\t\tit(\"should display invalid state for width if provided a negative number\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for width if provided an empty value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(selector).at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should display invalid state for non-numeric value\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"abc\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\texpect(wrapper.find(\"#app-height\").at(0).prop(\"aria-invalid\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the height field is emptied\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t\tit(\"should have a disabled Save button if the height field is negative\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(selector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"-999\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(\"button\").last().prop(\"disabled\")).to.be.true;\n\t\t});\n\t});\n\tdescribe(\"Lock dimensions\", () => {\n\t\tconst label = \"Lock dimensions\";\n\t\tconst appDataKey = \"resizable\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, false);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Position\", () => {\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(\".position-entry [role='combobox']\").simulate(\"click\");\n\t\t\twrapper.find(\".position-entry .finsemble-dropdown__btn-option\").at(4).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tabstractPosition: 4,\n\t\t\t});\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tabstractPosition: 5,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".position-entry .finsemble-dropdown__btn-label\").text()).to.equal(\"Center\");\n\t\t});\n\t});\n\tdescribe(\"Opacity\", () => {\n\t\tconst appDataKey = \"opacity\";\n\t\tconst rangeSelector = \".app-edit-range\";\n\t\tconst inputSelector = \"#app-opacity\";\n\t\tit(\"should display correctly when preset (input range)\", () => {\n\t\t\ttestPresetInputValue(appDataKey, rangeSelector, Page, \"30\");\n\t\t});\n\t\tit(\"should display correctly when preset (input field)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\t[appDataKey]: 0.3,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...args} />);\n\n\t\t\texpect(wrapper.find(inputSelector).prop(\"value\")).to.equal(30);\n\t\t});\n\t\tit(\"should save correctly when edited (input range)\", () => {\n\t\t\ttestSaveInputValue(appDataKey, rangeSelector, false, 30);\n\t\t});\n\t\tit(\"should save correctly when edited (input field) - value saved is 1/100 of what is entered\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(inputSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 30,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\t[appDataKey]: 0.3,\n\t\t\t});\n\t\t});\n\t\tit(\"When editing the range field, the text box updates\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(inputSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 70,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(rangeSelector).prop(\"value\")).to.equal(0.7);\n\t\t});\n\t\tit(\"When editing the text box, the range field updates\", () => {\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(rangeSelector)\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: 0.7,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\texpect(wrapper.find(inputSelector).prop(\"value\")).to.equal(70);\n\t\t});\n\t});\n\tdescribe(\"Auto arrange\", () => {\n\t\tconst label = \"Auto arrange\";\n\t\tconst appDataKey = \"allowAutoArrange\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Grouping\", () => {\n\t\tconst label = \"Grouping\";\n\t\tconst appDataKey = \"allowGrouping\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Snapping\", () => {\n\t\tconst label = \"Snapping\";\n\t\tconst appDataKey = \"allowSnapping\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Tabs\", () => {\n\t\tconst label = \"Tabs\";\n\t\tconst appDataKey = \"allowTabbing\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Tiling\", () => {\n\t\tconst label = \"Tiling\";\n\t\tconst appDataKey = \"allowTiling\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Enable title bar\", () => {\n\t\tconst label = \"Enable title bar\";\n\t\tconst appDataKey = \"enableTitleBar\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Always on top\", () => {\n\t\tconst name = \"alwaysOnTop\";\n\t\tconst enableParams = {\n\t\t\talwaysOnTop: true,\n\t\t\tenableAOT: false,\n\t\t};\n\t\tconst showParams = {\n\t\t\talwaysOnTop: false,\n\t\t\tenableAOT: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\talwaysOnTop: false,\n\t\t\tenableAOT: false,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Show in titlebar\", () => {\n\t\t\tpresetRadioButtons(name, showParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Show in titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, showParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Minimize\", () => {\n\t\tconst name = \"minimize\";\n\t\tconst enableParams = {\n\t\t\tallowMinimize: true,\n\t\t\thideMinimize: false,\n\t\t};\n\t\tconst hideParams = {\n\t\t\tallowMinimize: true,\n\t\t\thideMinimize: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tallowMinimize: false,\n\t\t\thideMinimize: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Hide from titlebar\", () => {\n\t\t\tpresetRadioButtons(name, hideParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Hide from titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, hideParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Maximize\", () => {\n\t\tconst name = \"maximize\";\n\t\tconst enableParams = {\n\t\t\tallowMaximize: true,\n\t\t\thideMaximize: false,\n\t\t};\n\t\tconst hideParams = {\n\t\t\tallowMaximize: true,\n\t\t\thideMaximize: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tallowMaximize: false,\n\t\t\thideMaximize: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Hide from titlebar\", () => {\n\t\t\tpresetRadioButtons(name, hideParams, [false, true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Hide from titlebar\", () => {\n\t\t\tsaveRadioButton(name, 1, hideParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 2, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 3);\n\t\t});\n\t});\n\tdescribe(\"Close\", () => {\n\t\tconst name = \"close\";\n\t\tconst enableParams = {\n\t\t\thideClose: false,\n\t\t};\n\t\tconst disableParams = {\n\t\t\thideClose: true,\n\t\t};\n\t\tit(\"should display correctly when preset: Enable\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Disable\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Enable\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: Disable\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Display linker\", () => {\n\t\tconst name = \"linker\";\n\t\tconst enableParams = {\n\t\t\tautoConnect: true,\n\t\t};\n\t\tconst disableParams = {\n\t\t\tautoConnect: false,\n\t\t};\n\t\tit(\"should display correctly when preset: Always\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: FDC3 API use\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Always\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit(\"should save correctly when edited: FDC3 API use\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Intents\", () => {\n\t\tit(\"should save correctly when edited (adding an intent)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"ViewChart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(1)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"View Chart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(2)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"fdc3.instrument\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t});\n\t\t});\n\t\tit(\"should save correctly when edited (adding just an intent name)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<Page {...(Page.args as AppEditPageProps)} />);\n\t\t\twrapper\n\t\t\t\t.find(\".inputTable input\")\n\t\t\t\t.at(0)\n\t\t\t\t.simulate(\"change\", {\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tvalue: \"ViewChart\",\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"\", contexts: [\"\"] }],\n\t\t\t});\n\t\t});\n\t\tit(\"should save correctly when edited (removing an intent)\", () => {\n\t\t\tconst buttonSpy = sinon.spy(Page.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\t\t\twrapper.find(\".inputTable button[title='Remove row']\").at(0).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tintents: [],\n\t\t\t});\n\t\t});\n\t\tit(\"should display preset values (empty list of intents)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(2);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.be.empty;\n\t\t});\n\t\tit(\"should display preset values (with 1 intent)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(3);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.equal(\n\t\t\t\t\"ViewChart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.equal(\n\t\t\t\t\"View Chart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.equal(\n\t\t\t\t\"fdc3.instrument\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(3).prop(\"value\"), \"Intent table, input field 4\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(4).prop(\"value\"), \"Intent table, input field 5\").to.be.empty;\n\t\t\texpect(wrapper.find(\".inputTable input\").at(5).prop(\"value\"), \"Intent table, input field 6\").to.be.empty;\n\t\t});\n\t\tit(\"should display preset values (multiple contexts for an intent)\", () => {\n\t\t\tconst args = {\n\t\t\t\t...Page.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...Page.args?.appData,\n\t\t\t\t\tintents: [{ name: \"ViewChart\", displayName: \"View Chart\", contexts: [\"fdc3.instrument\", \"custom.symbol\"] }],\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<Page {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".inputTable tr\"), \"List of rows\").to.be.lengthOf(3);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(0).prop(\"value\"), \"Intent table, input field 1\").to.equal(\n\t\t\t\t\"ViewChart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(1).prop(\"value\"), \"Intent table, input field 2\").to.equal(\n\t\t\t\t\"View Chart\"\n\t\t\t);\n\t\t\texpect(wrapper.find(\".inputTable input\").at(2).prop(\"value\"), \"Intent table, input field 3\").to.equal(\n\t\t\t\t\"fdc3.instrument, custom.symbol\"\n\t\t\t);\n\t\t});\n\t});\n\tdescribe(\"Set security\", () => {\n\t\tconst name = \"security\";\n\t\tconst enableParams = {\n\t\t\tsecurity: \"trusted\",\n\t\t};\n\t\tconst disableParams = {\n\t\t\tsecurity: \"untrusted\",\n\t\t};\n\t\tit(\"should display correctly when preset: Trusted\", () => {\n\t\t\tpresetRadioButtons(name, enableParams, [true, false]);\n\t\t});\n\t\tit(\"should display correctly when preset: Untrusted\", () => {\n\t\t\tpresetRadioButtons(name, disableParams, [false, true]);\n\t\t});\n\t\tit(\"should save correctly when edited: Trusted\", () => {\n\t\t\tsaveRadioButton(name, 0, enableParams);\n\t\t});\n\t\tit.skip(\"should save correctly when edited: Untrusted\", () => {\n\t\t\tsaveRadioButton(name, 1, disableParams);\n\t\t});\n\t\tit.skip(\"confirm that the radio buttons stay independent\", () => {\n\t\t\tcheckUniqueRadioButtons(name, 2);\n\t\t});\n\t});\n\tdescribe(\"Launch timeout\", () => {\n\t\tconst appDataKey = \"native_windowSpawnTimeout\";\n\t\tconst selector = \"#launch-timeout\";\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\ttestSaveInputValue(appDataKey, selector, true, 200);\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\ttestPresetInputValue(appDataKey, selector, NativePage, \"200\");\n\t\t});\n\t});\n\tdescribe(\"Only one instance\", () => {\n\t\tconst label = \"Only one instance\";\n\t\tconst appDataKey = \"singleton\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Launch at startup\", () => {\n\t\tconst label = \"Launch at startup\";\n\t\tconst appDataKey = \"spawnOnStartup\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Include in Apps menu\", () => {\n\t\tconst label = \"Include in Apps menu\";\n\t\tconst appDataKey = \"launchableByUser\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Persist across workspaces\", () => {\n\t\tconst label = \"Persist across workspaces\";\n\t\tconst appDataKey = \"isEvergreen\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Add to workspaces\", () => {\n\t\tconst label = \"Add to workspace\";\n\t\tconst appDataKey = \"addToWorkspace\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n\tdescribe(\"Persist the location\", () => {\n\t\tconst label = \"Persist the URL\";\n\t\tconst appDataKey = \"persistURL\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false);\n\t\t});\n\t});\n});\n\ndescribe(\"<AppWebServicesEditPage/>\", () => {\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<AppServiceWeb {...(AppServiceWeb.args as AppEditPageProps)} />);\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t}).timeout(10e3);\n\n\t// keep this\n\tdescribe(\"Show/hide sections for types of app serivces\", () => {\n\t\tit(\"Web app services type\", () => {\n\t\t\tconst wrapper = mount(<AppServiceWeb {...(AppServiceWeb.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.false;\n\t\t\t// expect(wrapper.contains(\"Virtual app name\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.false;\n\t\t\t// expect(wrapper.contains(\"Persist across workspaces\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-debug\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t});\n\t\t//check on this after adding a native app service\n\t\tit(\"Native app services type\", () => {\n\t\t\tconst wrapper = mount(<AppServiceNative {...(AppServiceNative.args as AppEditPageProps)} />);\n\t\t\texpect(wrapper.contains(\"App URL\")).to.be.false;\n\t\t\texpect(wrapper.contains(\"File path\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Arguments\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"API access\")).to.be.true;\n\t\t\texpect(wrapper.contains(\"Launch timeout\")).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-debug\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-select-connect\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-preloads\").exists()).to.be.false;\n\t\t\texpect(wrapper.find(\"#accordion-control-interop\").exists()).to.be.true;\n\t\t\texpect(wrapper.find(\"#accordion-control-component\").exists()).to.be.true;\n\t\t});\n\t});\n\n\tdescribe(\"Boot Phase\", () => {\n\t\tafterEach(() => {\n\t\t\tsinon.restore();\n\t\t});\n\t\tit(\"should save correctly when edited\", () => {\n\t\t\tconst buttonSpy = sinon.spy(AppServiceWeb.args as AppEditPageProps, \"submitFn\");\n\t\t\tconst wrapper = mount(<AppServiceWeb {...(AppServiceWeb.args as AppEditPageProps)} />);\n\n\t\t\twrapper.find(\".bootPhase-entry [role='combobox']\").simulate(\"click\");\n\t\t\twrapper.find(\".bootPhase-entry .finsemble-dropdown__btn-option\").at(4).simulate(\"click\");\n\n\t\t\tconst collection = wrapper.find(\"button\");\n\t\t\tcollection.at(collection.length - 1).simulate(\"click\");\n\t\t\t// something is wrong here\n\t\t\texpect(buttonSpy.args[0][0]).to.deep.equal({\n\t\t\t\t...defaults,\n\t\t\t\tname: \"Chart data connector\",\n\t\t\t\tlaunchableByUser: false,\n\t\t\t\tenableTitleBar: false,\n\t\t\t\tbootPhase: \"earlyuser\",\n\t\t\t});\n\t\t});\n\t\tit(\"should display pre-set values\", () => {\n\t\t\tconst args = {\n\t\t\t\t...AppServiceWeb.args,\n\t\t\t\tappData: {\n\t\t\t\t\t...AppServiceWeb.args?.appData,\n\t\t\t\t\tabstractPosition: 4,\n\t\t\t\t},\n\t\t\t} as AppEditPageProps;\n\t\t\tconst wrapper = mount(<AppServiceWeb {...(args as AppEditPageProps)} />);\n\n\t\t\texpect(wrapper.find(\".bootPhase-entry .finsemble-dropdown__btn-label\").text()).to.equal(\"preuser\");\n\t\t});\n\t});\n\n\tdescribe(\"Wait for Initialization\", () => {\n\t\tconst label = \"Wait for initialization\";\n\t\tconst appDataKey = \"waitForInitialization\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false, true);\n\t\t});\n\t});\n\n\tdescribe(\"Make service visible\", () => {\n\t\tconst label = \"Make service visible\";\n\t\tconst appDataKey = \"serviceVisible\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false, true);\n\t\t});\n\t});\n\tdescribe(\"Open Chrome devtools when service starts\", () => {\n\t\tconst label = \"Open Chrome devtools when service starts\";\n\t\tconst appDataKey = \"devConsole\";\n\t\tit(\"should display pre-set value: checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, true, true, true);\n\t\t});\n\t\tit(\"should display pre-set value: not checked\", () => {\n\t\t\tpresetCheckbox(appDataKey, label, false, false, true);\n\t\t});\n\t\tit(\"should save correctly (change to true)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, true, true);\n\t\t});\n\t\tit(\"should save correctly (change to false)\", () => {\n\t\t\tflipCheckbox(appDataKey, label, false, true);\n\t\t});\n\t});\n});\n"]}
|