Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
iTasks-SDK
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
73
Issues
73
List
Boards
Labels
Service Desk
Milestones
Merge Requests
7
Merge Requests
7
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
clean-and-itasks
iTasks-SDK
Commits
47e4f146
Commit
47e4f146
authored
Dec 10, 2018
by
Bas Lijnse
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into 259-editors-need-refinement
parents
a3d349db
730dec44
Pipeline
#17054
passed with stage
in 3 minutes and 35 seconds
Changes
64
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
64 changed files
with
394 additions
and
236 deletions
+394
-236
Examples/Applications/Incidone/Incidone/ContactPosition.icl
Examples/Applications/Incidone/Incidone/ContactPosition.icl
+1
-1
Examples/Applications/Incidone/IncidoneCCC.icl
Examples/Applications/Incidone/IncidoneCCC.icl
+5
-2
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Core.icl
...Applications/ShipAdventure/C2/Apps/ShipAdventure/Core.icl
+0
-2
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Editor.icl
...plications/ShipAdventure/C2/Apps/ShipAdventure/Editor.icl
+0
-1
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Images.icl
...plications/ShipAdventure/C2/Apps/ShipAdventure/Images.icl
+2
-2
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Types.icl
...pplications/ShipAdventure/C2/Apps/ShipAdventure/Types.icl
+0
-2
Examples/Applications/ShipAdventure/C2/Framework/ContactPosition.icl
...plications/ShipAdventure/C2/Framework/ContactPosition.icl
+1
-1
Examples/Applications/ShipAdventure/C2/Framework/Core.icl
Examples/Applications/ShipAdventure/C2/Framework/Core.icl
+2
-2
Examples/Applications/TheTaxMan/CivilAffairs/UoD.dcl
Examples/Applications/TheTaxMan/CivilAffairs/UoD.dcl
+1
-2
Examples/Applications/TheTaxMan/CivilAffairs/UoD.icl
Examples/Applications/TheTaxMan/CivilAffairs/UoD.icl
+0
-4
Examples/Games/Ligretto/Ligretto/UI.icl
Examples/Games/Ligretto/Ligretto/UI.icl
+0
-2
Examples/Games/Trax/Trax/UI.icl
Examples/Games/Trax/Trax/UI.icl
+0
-2
Examples/Graphics/BasicImagesExamples/BasicImages.icl
Examples/Graphics/BasicImagesExamples/BasicImages.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Box.icl
Examples/Graphics/BasicImagesExamples/Box.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Boxes.icl
Examples/Graphics/BasicImagesExamples/Boxes.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Clean.icl
Examples/Graphics/BasicImagesExamples/Clean.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Grids.icl
Examples/Graphics/BasicImagesExamples/Grids.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Linears.icl
Examples/Graphics/BasicImagesExamples/Linears.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Mask.icl
Examples/Graphics/BasicImagesExamples/Mask.icl
+0
-1
Examples/Graphics/BasicImagesExamples/OnClick.icl
Examples/Graphics/BasicImagesExamples/OnClick.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Overlays.icl
Examples/Graphics/BasicImagesExamples/Overlays.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Polyline.icl
Examples/Graphics/BasicImagesExamples/Polyline.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Rosetree.icl
Examples/Graphics/BasicImagesExamples/Rosetree.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Rotates.icl
Examples/Graphics/BasicImagesExamples/Rotates.icl
+0
-1
Examples/Graphics/BasicImagesExamples/Transformations.icl
Examples/Graphics/BasicImagesExamples/Transformations.icl
+0
-1
Libraries/iTasks.dcl
Libraries/iTasks.dcl
+0
-1
Libraries/iTasks/Extensions/Admin/TonicAdmin.icl
Libraries/iTasks/Extensions/Admin/TonicAdmin.icl
+0
-2
Libraries/iTasks/Extensions/Admin/WorkflowAdmin.icl
Libraries/iTasks/Extensions/Admin/WorkflowAdmin.icl
+2
-2
Libraries/iTasks/Extensions/SVG/SVGEditor.dcl
Libraries/iTasks/Extensions/SVG/SVGEditor.dcl
+0
-1
Libraries/iTasks/Extensions/SVG/SVGEditor.icl
Libraries/iTasks/Extensions/SVG/SVGEditor.icl
+5
-4
Libraries/iTasks/Internal/Task.icl
Libraries/iTasks/Internal/Task.icl
+2
-2
Libraries/iTasks/Internal/TaskEval.dcl
Libraries/iTasks/Internal/TaskEval.dcl
+5
-4
Libraries/iTasks/Internal/TaskState.dcl
Libraries/iTasks/Internal/TaskState.dcl
+13
-12
Libraries/iTasks/Internal/TaskState.icl
Libraries/iTasks/Internal/TaskState.icl
+13
-13
Libraries/iTasks/Internal/Tonic.dcl
Libraries/iTasks/Internal/Tonic.dcl
+1
-1
Libraries/iTasks/Internal/Tonic/Images.icl
Libraries/iTasks/Internal/Tonic/Images.icl
+6
-12
Libraries/iTasks/UI/Editor/Common.icl
Libraries/iTasks/UI/Editor/Common.icl
+4
-7
Libraries/iTasks/UI/Editor/Controls.dcl
Libraries/iTasks/UI/Editor/Controls.dcl
+4
-0
Libraries/iTasks/UI/Editor/Controls.icl
Libraries/iTasks/UI/Editor/Controls.icl
+8
-0
Libraries/iTasks/UI/Editor/Generic.icl
Libraries/iTasks/UI/Editor/Generic.icl
+2
-2
Libraries/iTasks/UI/Editor/Modifiers.dcl
Libraries/iTasks/UI/Editor/Modifiers.dcl
+1
-1
Libraries/iTasks/UI/Editor/Modifiers.icl
Libraries/iTasks/UI/Editor/Modifiers.icl
+1
-1
Libraries/iTasks/UI/JS/Interface.dcl
Libraries/iTasks/UI/JS/Interface.dcl
+3
-2
Libraries/iTasks/UI/JS/Interface.icl
Libraries/iTasks/UI/JS/Interface.icl
+2
-1
Libraries/iTasks/UI/Layout.icl
Libraries/iTasks/UI/Layout.icl
+1
-0
Libraries/iTasks/UI/Layout/BasicForms.icl
Libraries/iTasks/UI/Layout/BasicForms.icl
+1
-0
Libraries/iTasks/UI/Layout/Common.dcl
Libraries/iTasks/UI/Layout/Common.dcl
+1
-8
Libraries/iTasks/UI/Layout/Common.icl
Libraries/iTasks/UI/Layout/Common.icl
+1
-5
Libraries/iTasks/UI/Layout/Minimal.icl
Libraries/iTasks/UI/Layout/Minimal.icl
+1
-0
Libraries/iTasks/UI/Tune.dcl
Libraries/iTasks/UI/Tune.dcl
+0
-24
Libraries/iTasks/UI/Tune.icl
Libraries/iTasks/UI/Tune.icl
+0
-19
Libraries/iTasks/UI/WebPublic/js/itasks-components-container.js
...ies/iTasks/UI/WebPublic/js/itasks-components-container.js
+24
-1
Libraries/iTasks/UI/WebPublic/js/itasks-components-selection.js
...ies/iTasks/UI/WebPublic/js/itasks-components-selection.js
+18
-1
Libraries/iTasks/WF/Combinators/Common.dcl
Libraries/iTasks/WF/Combinators/Common.dcl
+13
-1
Libraries/iTasks/WF/Combinators/Common.icl
Libraries/iTasks/WF/Combinators/Common.icl
+16
-1
Libraries/iTasks/WF/Combinators/Core.dcl
Libraries/iTasks/WF/Combinators/Core.dcl
+10
-0
Libraries/iTasks/WF/Combinators/Core.icl
Libraries/iTasks/WF/Combinators/Core.icl
+47
-33
Libraries/iTasks/WF/Combinators/Tune.dcl
Libraries/iTasks/WF/Combinators/Tune.dcl
+44
-10
Libraries/iTasks/WF/Combinators/Tune.icl
Libraries/iTasks/WF/Combinators/Tune.icl
+120
-18
Libraries/iTasks/WF/Tasks/Core.icl
Libraries/iTasks/WF/Tasks/Core.icl
+2
-1
Libraries/iTasks/WF/Tasks/IO.icl
Libraries/iTasks/WF/Tasks/IO.icl
+7
-7
Libraries/iTasks/WF/Tasks/SDS.icl
Libraries/iTasks/WF/Tasks/SDS.icl
+2
-1
Tests/Interactive/Editlets/TestSVGEditlet.icl
Tests/Interactive/Editlets/TestSVGEditlet.icl
+1
-1
Tests/Interactive/Editlets/TestSVGEditletClick.icl
Tests/Interactive/Editlets/TestSVGEditletClick.icl
+1
-1
No files found.
Examples/Applications/Incidone/Incidone/ContactPosition.icl
View file @
47e4f146
...
...
@@ -6,7 +6,7 @@ import qualified Text.Parsers.ZParsers.ParsersKernel as PK
import
qualified
Text
.
Parsers
.
ZParsers
.
ParsersDerived
as
PD
import
qualified
Control
.
Applicative
as
CA
from
Control
.
Applicative
import
class
Alternative
,
class
Applicative
from
Text
.
Parsers
.
ZParsers
.
ParsersKernel
import
::
Parser
,
instance
Alternative
(
Parser
s
t
),
instance
Applicative
(
Parser
s
t
),
instance
Functor
(
Parser
s
t
)
from
Text
.
Parsers
.
ZParsers
.
ParsersKernel
import
::
Parser
,
instance
Alternative
(
Parser
s
t
),
instance
pure
(
Parser
s
t
),
instance
<*>
(
Parser
s
t
),
instance
Functor
(
Parser
s
t
)
import
iTasks
.
Extensions
.
GIS
.
LeafletNavalIcons
import
Incidone
.
OP
.
Concepts
...
...
Examples/Applications/Incidone/IncidoneCCC.icl
View file @
47e4f146
...
...
@@ -55,16 +55,19 @@ where
doAuthenticated
::
(
User
->
Task
a
)
->
Task
a
|
iTask
a
doAuthenticated
task
=
(
enterCredentials
=
enterCredentials
<<@
(
ApplyLayout
credentialsLayout
)
>>*
[
OnAction
(
Action
"Login"
)
(
hasValue
(\
cred
->
verifyCredentials
cred
>>-
executeTask
task
))
]
)
<<@
ApplyLayout
(
beforeStep
(
sequenceLayouts
[
setUIAttributes
(
titleAttr
"Login"
),
frameCompact
]))
//Compact layout before login, full screen afterwards
]
where
enterCredentials
::
Task
Credentials
enterCredentials
=
viewInformation
()
[]
(
DivTag
[
ClassAttr
"identify-app"
,
StyleAttr
"width: 350px; height: 55px; margin-bottom: 5px"
]
[])
||-
enterInformation
()
[]
//Compact layout before login, full screen afterwards
credentialsLayout
=
sequenceLayouts
[
setUIAttributes
(
titleAttr
"Login"
),
frameCompact
]
verifyCredentials
::
Credentials
->
Task
(
Maybe
User
)
verifyCredentials
credentials
=:{
Credentials
|
username
,
password
}
|
username
===
Username
"admin"
...
...
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Core.icl
View file @
47e4f146
...
...
@@ -83,7 +83,6 @@ actorWithInstructions user
editor
=
fromSVGEditor
{
initView
=
\((
ms2d
,
_),
cl
)
->
(
ms2d
,
cl
)
,
renderImage
=
\((_,
network
),
_)
(
ms2d`
,
cl`
)
->
maps2DImage
'
DS
'.
newSet
cl`
PickRoomMode
ms2d`
'
DM
'.
newMap
'
DM
'.
newMap
'
DM
'.
newMap
'
DM
'.
newMap
'
DM
'.
newMap
'
DM
'.
newMap
'
DIS
'.
newMap
{
network
&
devices
=
'
DM
'.
newMap
}
,
updView
=
\((
ms2d
,
_),
cl
)
_
->
(
ms2d
,
cl
)
,
updModel
=
\((_,
network
),
_)
(
ms2d`
,
cl`
)
->
((
ms2d`
,
network
),
cl`
)
}
...
...
@@ -411,6 +410,5 @@ mkSection
editor
=
fromSVGEditor
{
initView
=
const
([],
NoAction
)
,
renderImage
=
\(((((((((
mc3d
,
network
),
allDevices
),
statusMap
),
sectionUsersMap
),
userActorMap
),
invMap
),
exitLocks
),
hopLocks
),
ms2d
)
_
_
->
map2DImage
'
DS
'.
newSet
NoAction
WalkAroundMode
exitLocks
hopLocks
invMap
statusMap
sectionUsersMap
userActorMap
allDevices
network
(
getFloorIdx
mc3d
,
ms2d
!!
getFloorIdx
mc3d
)
,
updView
=
\
m
v
->
v
,
updModel
=
\
m
v
->
m
}
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Editor.icl
View file @
47e4f146
...
...
@@ -200,7 +200,6 @@ where
,
renderImage
=
\((_,
act
),
((
inventoryMap
,
network
),
allDevices
))
(
ms2d
,
_)
_
->
//TODO above [] [] [margin (px 5.0, px zero) (editLayoutImage act allDevices network inventoryMap idx m2d) \\ m2d <- ms2d & idx <- [0..]] NoHost
above
[]
[]
Nothing
[]
[
margin
(
px
5.0
,
px
zero
)
(
editLayoutImage
act
allDevices
network
inventoryMap
idx
m2d
)
\\
m2d
<-
ms2d
&
idx
<-
[
0
..]]
NoHost
,
updView
=
\
m
v
->
fst
m
,
updModel
=
\(_,
data
)
newClSt
->
(
newClSt
,
data
)
}
...
...
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Images.icl
View file @
47e4f146
...
...
@@ -157,8 +157,8 @@ sectionImage disabledSections hilite mngmnt zoomed exitLocks hopLocks inventoryM
(
Host
host
)
where
mkStatusBadges
::
!
SectionStatus
!
Coord3D
!
RenderMode
!
Real
![
SectionStatus
]
->
Image
(
a
,
MapAction
SectionStatus
)
//TODO mkStatusBadges statusMap c3d mngmnt multiplier xs = beside (repeat AtMiddleY) [] ('DL'.reverseTR (
'DL'.strictF
oldl (mkStatusBadge statusMap c3d mngmnt multiplier) [] xs)) NoHost
mkStatusBadges
statusMap
c3d
mngmnt
multiplier
xs
=
beside
(
repeat
AtMiddleY
)
[]
Nothing
[]
('
DL
'.
reverseTR
(
'
DL
'.
strictF
oldl
(
mkStatusBadge
statusMap
c3d
mngmnt
multiplier
)
[]
xs
))
NoHost
//TODO mkStatusBadges statusMap c3d mngmnt multiplier xs = beside (repeat AtMiddleY) [] ('DL'.reverseTR (
f
oldl (mkStatusBadge statusMap c3d mngmnt multiplier) [] xs)) NoHost
mkStatusBadges
statusMap
c3d
mngmnt
multiplier
xs
=
beside
(
repeat
AtMiddleY
)
[]
Nothing
[]
('
DL
'.
reverseTR
(
f
oldl
(
mkStatusBadge
statusMap
c3d
mngmnt
multiplier
)
[]
xs
))
NoHost
doorFill
::
!
SectionExitLockMap
!
Coord3D
!
Dir
->
FillAttr
a
doorFill
exitLocks
c3d
dir
...
...
Examples/Applications/ShipAdventure/C2/Apps/ShipAdventure/Types.icl
View file @
47e4f146
...
...
@@ -437,7 +437,6 @@ where
{
initView
=
\((((((((((_,
ms2d
),
_),
_),
_),
_),
_),
_),
_),
_),
cl
)
->
(
ms2d
,
cl
)
,
renderImage
=
\((((((((((
disSects
,
_),
exitLocks
),
hopLocks
),
inventoryMap
),
statusMap
),
sectionUsersMap
),
userActorMap
),
network
),
allDevices
),
cl
)
(
ms2d`
,
cl`
)
->
maps2DImage
disSects
cl
mode
ms2d`
exitLocks
hopLocks
inventoryMap
statusMap
sectionUsersMap
userActorMap
allDevices
network
,
updView
=
\((((((((((_,
ms2d
),
_),
_),
_),
_),
_),
_),
_),
_),
cl
)
_
->
(
ms2d
,
cl
)
,
updModel
=
\((((((((((
disSects
,
_),
exitLocks
),
hopLocks
),
inventoryMap
),
statusMap
),
sectionUsersMap
),
userActorMap
),
network
),
allDevices
),
_)
(
ms2d`
,
cl`
)
->
((((((((((
disSects
,
ms2d`
),
exitLocks
),
hopLocks
),
inventoryMap
),
statusMap
),
sectionUsersMap
),
userActorMap
),
network
),
allDevices
),
cl`
)
}
...
...
@@ -455,7 +454,6 @@ where
{
initView
=
\((((((((
ms2d
,
_),
_),
_),
_),
_),
_),
_),
cl
)
->
(
ms2d
,
cl
)
,
renderImage
=
\((((((((
ms2d
,
exitLocks
),
hopLocks
),
inventoryMap
),
statusMap
),
actorMap
),
network
),
allDevices
),
cl
)
(
ms2d`
,
cl`
)
->
roomImage
c3d
exitLocks
hopLocks
inventoryMap
statusMap
actorMap
allDevices
network
True
(
fromJust
(
getSectionFromMap
c3d
ms2d`
))
(
ms2d
!!
floorIdx
)
cl`
,
updView
=
\((((((((
ms2d
,
_),
_),
_),
_),
_),
_),
_),
cl
)
_
->
(
ms2d
,
cl
)
,
updModel
=
\((((((((_,
exitLocks
),
hopLocks
),
inventoryMap
),
statusMap
),
actorMap
),
network
),
allDevices
),
_)
(
ms2d`
,
cl`
)
->
((((((((
ms2d`
,
exitLocks
),
hopLocks
),
inventoryMap
),
statusMap
),
actorMap
),
network
),
allDevices
),
cl`
)
}
...
...
Examples/Applications/ShipAdventure/C2/Framework/ContactPosition.icl
View file @
47e4f146
...
...
@@ -8,7 +8,7 @@ import qualified Text.Parsers.ZParsers.ParsersDerived as PD
import
qualified
Control
.
Applicative
as
CA
from
Control
.
Applicative
import
class
Alternative
,
class
Applicative
from
Text
.
Parsers
.
ZParsers
.
ParsersKernel
import
::
Parser
,
instance
Alternative
(
Parser
p
t
),
instance
Applicative
(
Parser
s
t
),
instance
Functor
(
Parser
s
t
)
from
Text
.
Parsers
.
ZParsers
.
ParsersKernel
import
::
Parser
,
instance
Alternative
(
Parser
p
t
),
instance
pure
(
Parser
s
t
),
instance
<*>
(
Parser
s
t
),
instance
Functor
(
Parser
s
t
)
import
C2
.
Framework
.
GeoRoutines
import
Math
.
Geometry
import
Data
.
Maybe
...
...
Examples/Applications/ShipAdventure/C2/Framework/Core.icl
View file @
47e4f146
...
...
@@ -21,8 +21,8 @@ ccMain :: (User -> [User -> Task Entity])
(
User
->
[(
String
,
User
[
Entity
]
->
Task
())])
->
Task
()
ccMain
regEntities
contBgTasks
alwaysOnTasks
tlist
=
forever
(
catchAll
((
enterChoiceWithShared
"Select user"
[]
users
>>=
doUserTask
)
<<@
ApplyLayout
(
beforeStep
frameCompact
)
)
=
forever
(
catchAll
((
enterChoiceWithShared
"Select user"
[]
users
<<@
ApplyLayout
frameCompact
>>=
doUserTask
))
(\
err
->
viewInformation
"Error"
[]
err
>>|
return
()))
where
doUserTask
me
=
set
me
currentUser
...
...
Examples/Applications/TheTaxMan/CivilAffairs/UoD.dcl
View file @
47e4f146
...
...
@@ -77,6 +77,5 @@ derive class iTask Citizen,
Address
instance
==
Citizen
,
Address
instance
<
(
Maybe
a
)
|
Ord
a
,
Citizen
,
instance
<
Citizen
,
Address
Examples/Applications/TheTaxMan/CivilAffairs/UoD.icl
View file @
47e4f146
...
...
@@ -21,7 +21,3 @@ instance == Address where == a1 a2 = a1 === a2
instance
==
Citizen
where
==
a1
a2
=
a1
===
a2
instance
<
Address
where
<
a1
a2
=
a1
.
Address
.
postcode
<
a2
.
Address
.
postcode
instance
<
Citizen
where
<
a1
a2
=
a1
.
Citizen
.
ssn
<
a2
.
Citizen
.
ssn
instance
<
(
Maybe
a
)
|
Ord
a
where
<
(
Just
a1
)
(
Just
a2
)
=
a1
<
a2
<
(
Just
a
)
_
=
True
<
_
(
Just
a
)
=
False
<
_
_
=
True
Examples/Games/Ligretto/Ligretto/UI.icl
View file @
47e4f146
...
...
@@ -16,7 +16,6 @@ ligrettoEditor :: !Color -> UpdateOption GameSt GameSt
ligrettoEditor
me
=
UpdateUsing
id
(
const
id
)
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
(
player_perspective
me
)
,
updView
=
const
id
,
updModel
=
const
id
})
...
...
@@ -24,7 +23,6 @@ accoladesEditor :: !Color -> UpdateOption GameSt GameSt
accoladesEditor
me
=
UpdateUsing
id
(
const
id
)
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
(
player_perspective
me
)
,
updView
=
const
id
,
updModel
=
const
id
})
...
...
Examples/Games/Trax/Trax/UI.icl
View file @
47e4f146
...
...
@@ -17,7 +17,6 @@ updateTraxEditor :: Bool -> UpdateOption TraxSt TraxSt
updateTraxEditor
turn
=
UpdateUsing
id
(
const
id
)
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
\_
->
toImage
PlayMode
turn
,
updView
=
const
id
,
updModel
=
flip
const
})
...
...
@@ -25,7 +24,6 @@ viewTraxEditor :: ViewOption TraxSt
viewTraxEditor
=
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
\_
->
toImage
ViewMode
False
,
updView
=
const
id
,
updModel
=
flip
const
})
...
...
Examples/Graphics/BasicImagesExamples/BasicImages.icl
View file @
47e4f146
...
...
@@ -24,7 +24,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
basic_images
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Box.icl
View file @
47e4f146
...
...
@@ -19,7 +19,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
box2
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Boxes.icl
View file @
47e4f146
...
...
@@ -16,7 +16,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
boxes
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Clean.icl
View file @
47e4f146
...
...
@@ -23,7 +23,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
clean
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Grids.icl
View file @
47e4f146
...
...
@@ -21,7 +21,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
grids
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Linears.icl
View file @
47e4f146
...
...
@@ -24,7 +24,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
linears
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Mask.icl
View file @
47e4f146
...
...
@@ -14,7 +14,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
image
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/OnClick.icl
View file @
47e4f146
...
...
@@ -23,7 +23,6 @@ Start world
[
UpdateUsing
id
(\_
v
=
v
)
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
count
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Overlays.icl
View file @
47e4f146
...
...
@@ -21,7 +21,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
overlays
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Polyline.icl
View file @
47e4f146
...
...
@@ -18,7 +18,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
polyline_in_host
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Rosetree.icl
View file @
47e4f146
...
...
@@ -22,7 +22,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
roses
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Rotates.icl
View file @
47e4f146
...
...
@@ -16,7 +16,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
rotates
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Examples/Graphics/BasicImagesExamples/Transformations.icl
View file @
47e4f146
...
...
@@ -21,7 +21,6 @@ Start world
[
ViewUsing
id
(
fromSVGEditor
{
initView
=
id
,
renderImage
=
const
transformed_images
,
updView
=
\
m
_
=
m
,
updModel
=
\_
v
=
v
})]
0
)
world
...
...
Libraries/iTasks.dcl
View file @
47e4f146
...
...
@@ -28,7 +28,6 @@ import
,
iTasks
.
WF
.
Combinators
.
Common
// Custom task GUI's
,
iTasks
.
UI
.
Tune
,
iTasks
.
UI
.
Editor
.
Controls
,
iTasks
.
UI
.
Editor
.
Containers
,
iTasks
.
UI
.
Editor
.
Modifiers
...
...
Libraries/iTasks/Extensions/Admin/TonicAdmin.icl
View file @
47e4f146
...
...
@@ -169,7 +169,6 @@ showBlueprintInstance rs bpi selDetail enabledSteps compact depth
editor
outputs`
=
fromSVGEditor
{
initView
=
id
,
renderImage
=
\_
->
mkTaskInstanceImage
rs
bpi
outputs`
enabledSteps
selDetail
compact
,
updView
=
\_
x
->
x
,
updModel
=
\
x
_
->
x
}
...
...
@@ -187,7 +186,6 @@ showStaticBlueprint rs bpref task compact depth
editor
=
fromSVGEditor
{
initView
=
id
,
renderImage
=
\_
->
mkStaticImage
rs
bpref
compact
,
updView
=
\_
x
->
x
,
updModel
=
\
x
_
->
x
}
...
...
Libraries/iTasks/Extensions/Admin/WorkflowAdmin.icl
View file @
47e4f146
...
...
@@ -120,8 +120,8 @@ loginAndManageWork welcome
viewInformation
(
"Guest access"
,
"Alternatively, you can continue anonymously as guest user"
)
[]
()
>>|
(
return
Nothing
)
]
<<@
ApplyLayout
(
setUIAttributes
(
directionAttr
Horizontal
)))
)
>>-
browse
)
<<@
ApplyLayout
(
beforeStep
layout
)
//Compact layout before login, full screen afterwards
)
<<@
ApplyLayout
layout
>>-
browse
)
//Compact layout before login, full screen afterwards
)
<<@
ApplyLayout
(
setUIAttributes
(
titleAttr
welcome
))
where
browse
(
Just
{
Credentials
|
username
,
password
})
...
...
Libraries/iTasks/Extensions/SVG/SVGEditor.dcl
View file @
47e4f146
...
...
@@ -8,7 +8,6 @@ import iTasks.UI.JS.Encoding
::
SVGEditor
m
v
=
{
initView
::
m
->
v
// Initialize a 'view' value that holds temporary data while editing
,
renderImage
::
m
v
*
TagSource
->
Image`
v
// Render an interactive image that
,
updView
::
m
v
->
v
// When the model is externally updated, the view needs to be updated too
,
updModel
::
m
v
->
m
// When the view is updated (using the image), the change needs to be merged back into the view
}
...
...
Libraries/iTasks/Extensions/SVG/SVGEditor.icl
View file @
47e4f146
...
...
@@ -7,8 +7,9 @@ from StdFunc import o
import
Data
.
List
,
Data
.
GenEq
,
Data
.
Func
import
Data
.
Error
import
Data
.
MapCollection
from
Data
.
Foldable
import
class
Foldable
(
foldr`
)
from
Data
.
Map
import
::
Map
,
instance
Functor
(
Map
k
)
from
Data
.
Set
import
::
Set
,
instance
==
(
Set
a
),
instance
<
(
Set
a
)
from
Data
.
Set
import
::
Set
,
instance
==
(
Set
a
),
instance
<
(
Set
a
)
,
instance
Foldable
Set
import
qualified
Data
.
Map
as
DM
import
qualified
Data
.
Set
as
DS
import
Text
...
...
@@ -229,7 +230,7 @@ where
,
(
"x"
,
"-10000"
)
,
(
"y"
,
"-10000"
)
]
#!
world
=
strictF
oldl
(\
world
args
->
snd
((
elem
`
setAttribute`
args
)
world
))
world
fontAttrs
#!
world
=
f
oldl
(\
world
args
->
snd
((
elem
`
setAttribute`
args
)
world
))
world
fontAttrs
#!
(
fd
,
world
)
=
calcFontDescent
elem
fontdef
.
fontysize
world
=
('
DM
'.
put
fontdef
fd
font_spans
,
world
)
...
...
@@ -265,8 +266,8 @@ where
,
(
"x"
,
"-10000"
)
,
(
"y"
,
"-10000"
)
]
#!
world
=
strictF
oldl
(\
world
args
->
snd
((
elem
`
setAttribute`
args
)
world
))
world
fontAttrs
#!
(
ws
,
world
)
=
'
DS
'.
fold
(
calcTextLength
elem
)
('
DM
'.
newMap
,
world
)
strs
#!
world
=
f
oldl
(\
world
args
->
snd
((
elem
`
setAttribute`
args
)
world
))
world
fontAttrs
#!
(
ws
,
world
)
=
foldr`
(
calcTextLength
elem
)
('
DM
'.
newMap
,
world
)
strs
=
('
DM
'.
alter
(
merge
ws
)
fontdef
text_spans
,
world
)
where
merge
::
!(
Map
String
TextSpan
)
!(
Maybe
(
Map
String
TextSpan
))
->
Maybe
(
Map
String
TextSpan
)
...
...
Libraries/iTasks/Internal/Task.icl
View file @
47e4f146
...
...
@@ -95,11 +95,11 @@ mkInstantTask :: (TaskId *IWorld -> (!MaybeError (Dynamic,String) a,!*IWorld)) -
mkInstantTask
iworldfun
=
Task
(
evalOnce
iworldfun
)
where
evalOnce
f
event
repOpts
(
TCInit
taskId
ts
)
iworld
=
case
f
taskId
iworld
of
(
Ok
a
,
iworld
)
=
(
ValueResult
(
Value
a
True
)
{
lastEvent
=
ts
,
removedTasks
=[],
refreshSensitive
=
False
}
(
rep
event
)
(
TCStable
taskId
ts
(
DeferredJSON
a
)),
iworld
)
(
Ok
a
,
iworld
)
=
(
ValueResult
(
Value
a
True
)
{
lastEvent
=
ts
,
attributes
='
DM
'.
newMap
,
removedTasks
=[]
}
(
rep
event
)
(
TCStable
taskId
ts
(
DeferredJSON
a
)),
iworld
)
(
Error
e
,
iworld
)
=
(
ExceptionResult
e
,
iworld
)
evalOnce
f
event
repOpts
state
=:(
TCStable
taskId
ts
enc
)
iworld
=
case
fromJSONOfDeferredJSON
enc
of
Just
a
=
(
ValueResult
(
Value
a
True
)
{
lastEvent
=
ts
,
removedTasks
=[],
refreshSensitive
=
False
}
(
rep
event
)
state
,
iworld
)
Just
a
=
(
ValueResult
(
Value
a
True
)
{
lastEvent
=
ts
,
attributes
='
DM
'.
newMap
,
removedTasks
=[]
}
(
rep
event
)
state
,
iworld
)
Nothing
=
(
ExceptionResult
(
exception
"Corrupt task result"
),
iworld
)
evalOnce
f
_
_
(
TCDestroy
_)
iworld
=
(
DestroyedResult
,
iworld
)
...
...
Libraries/iTasks/Internal/TaskEval.dcl
View file @
47e4f146
...
...
@@ -3,14 +3,15 @@ definition module iTasks.Internal.TaskEval
* This module provides functions for creation, evaluation and removal of task/workflow instances.
*/
from
iTasks
.
WF
.
Definition
import
::
Task
,
::
TaskResult
,
::
TaskException
,
::
TaskValue
,
::
Event
,
::
TaskId
,
::
InstanceNo
from
iTasks
.
WF
.
Definition
import
::
Task
,
::
TaskResult
,
::
TaskException
,
::
TaskValue
,
::
TaskAttributes
,
::
Event
,
::
TaskId
,
::
InstanceNo
from
iTasks
.
WF
.
Combinators
.
Core
import
::
TaskListItem
from
iTasks
.
Internal
.
IWorld
import
::
IWorld
from
iTasks
.
Internal
.
SDS
import
::
SDS
,
::
Shared
,
::
ReadOnlyShared
from
iTasks
.
Internal
.
Tonic
import
::
ExprId
from
iTasks
.
Internal
.
TaskState
import
::
DeferredJSON
from
Text
.
GenJSON
import
::
JSONNode
from
Data
.
Maybe
import
::
Maybe
from
Data
.
Maybe
import
::
Maybe
from
Data
.
Map
import
::
Map
from
Data
.
Error
import
::
MaybeErrorString
,
::
MaybeError
from
Data
.
CircularStack
import
::
CircularStack
...
...
@@ -38,9 +39,9 @@ defaultTonicOpts :: TonicOpts
//Additional information passed up from the tree when evaluating a task
::
TaskEvalInfo
=
{
lastEvent
::
!
TaskTime
//When was the last edit, action or focus event in this task
{
lastEvent
::
!
TaskTime
//When was the last event in this task
,
attributes
::
!
TaskAttributes
//Meta-data annotations on the task
,
removedTasks
::
![(
TaskId
,
TaskId
)]
//Which embedded parallel tasks were removed (listId,taskId)
,
refreshSensitive
::
!
Bool
//Can refresh events change the value or ui of this task (e.g. because shared data is read)
}
::
TaskTime
:==
Int
...
...
Libraries/iTasks/Internal/TaskState.dcl
View file @
47e4f146
...
...
@@ -59,18 +59,19 @@ derive JSONDecode TIMeta, TIReduct, TaskTree
|
UIException
!
String
//An unhandled exception occurred and the UI should only show the error message
::
TaskTree
=
TCInit
!
TaskId
!
TaskTime
//Initial state for all tasks
|
TCBasic
!
TaskId
!
TaskTime
!
DeferredJSON
!
Bool
//Encoded value and stable indicator
|
TCInteract
!
TaskId
!
TaskTime
!
DeferredJSON
!
DeferredJSON
!
EditState
!
Bool
|
TCStep
!
TaskId
!
TaskTime
!(
Either
(!
TaskTree
,
![
String
])
(!
DeferredJSON
,
!
Int
,
!
TaskTree
))
|
TCParallel
!
TaskId
!
TaskTime
![(!
TaskId
,!
TaskTree
)]
![
String
]
//Subtrees of embedded tasks and enabled actions
|
TCShared
!
TaskId
!
TaskTime
!
TaskTree
|
TCAttach
!
TaskId
!
TaskTime
!
AttachmentStatus
!
String
!
String
|
TCExposedShared
!
TaskId
!
TaskTime
!
String
!
TaskTree
// +URL //TODO: Remove
|
TCStable
!
TaskId
!
TaskTime
!
DeferredJSON
|
TCLayout
!(!
LUI
,!
LUIMoves
)
!
TaskTree
|
TCNop
|
TCDestroy
!
TaskTree
//Marks a task state as garbage that must be destroyed (TODO: replace by explicit event
=
TCInit
!
TaskId
!
TaskTime
//Initial state for all tasks
|
TCBasic
!
TaskId
!
TaskTime
!
DeferredJSON
!
Bool
//Encoded value and stable indicator
|
TCInteract
!
TaskId
!
TaskTime
!
DeferredJSON
!
DeferredJSON
!
EditState
!
Bool
|
TCStep
!
TaskId
!
TaskTime
!(
Either
(!
TaskTree
,
![
String
])
(!
DeferredJSON
,
!
Int
,
!
TaskTree
))
|
TCParallel
!
TaskId
!
TaskTime
![(!
TaskId
,!
TaskTree
)]
![
String
]
//Subtrees of embedded tasks and enabled actions
|
TCShared
!
TaskId
!
TaskTime
!
TaskTree
|
TCAttach
!
TaskId
!
TaskTime
!
AttachmentStatus
!
String
!
String
|
TCStable
!
TaskId
!
TaskTime
!
DeferredJSON
|
TCLayout
!(!
LUI
,!
LUIMoves
)
!
TaskTree
|
TCAttribute
!
TaskId
!
String
!
TaskTree
|
TCNop
|
TCDestroy
!
TaskTree
//Marks a task state as garbage that must be destroyed (TODO: replace by explicit event)
|
TCExposedShared
!
TaskId
!
TaskTime
!
String
!
TaskTree
// +URL //TODO: Remove
taskIdFromTaskTree
::
TaskTree
->
MaybeError
TaskException
TaskId
...
...
Libraries/iTasks/Internal/TaskState.icl
View file @
47e4f146
...
...
@@ -18,7 +18,6 @@ derive JSONDecode TIMeta, TIValue, TIReduct, TaskTree, ParallelTaskState, Parall
derive
JSONEncode
LUI
,
LUIChanges
,
LUIEffects
,
LUIEffectStage
,
LUINo
,
Set
derive
JSONDecode
LUI
,
LUIChanges
,
LUIEffects
,
LUIEffectStage
,
LUINo
,
Set
instance
toString
DeferredJSON
where
toString
(
DeferredJSON
x
)
=
toString
$
toJSON
x
toString
(
DeferredJSONNode
json
)
=
toString
json
...
...
@@ -45,16 +44,17 @@ gEq{|DeferredJSON|} x y = toJSON x === toJSON y
gText
{|
DeferredJSON
|}
f
djson
=
gText
{|*|}
f
$
toJSON
<$>
djson
taskIdFromTaskTree
::
TaskTree
->
MaybeError
TaskException
TaskId
taskIdFromTaskTree
(
TCInit
taskId
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCBasic
taskId
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCInteract
taskId
_
_
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCStep
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCParallel
taskId
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCShared
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCAttach
taskId
_
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCExposedShared
taskId
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCStable
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCLayout
_
tt
)
=
taskIdFromTaskTree
tt
taskIdFromTaskTree
(
TCNop
)
=
Error
(
exception
"Unable to obtain TaskId from TaskTree (TCNop)"
)
taskIdFromTaskTree
(
TCDestroy
tt
)
=
taskIdFromTaskTree
tt
taskIdFromTaskTree
(
TCInit
taskId
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCBasic
taskId
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCInteract
taskId
_
_
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCStep
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCParallel
taskId
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCShared
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCAttach
taskId
_
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCExposedShared
taskId
_
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCStable
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCLayout
_
tt
)
=
taskIdFromTaskTree
tt
taskIdFromTaskTree
(
TCAttribute
taskId
_
_)
=
Ok
taskId
taskIdFromTaskTree
(
TCNop
)
=
Error
(
exception
"Unable to obtain TaskId from TaskTree (TCNop)"
)
taskIdFromTaskTree
(
TCDestroy
tt
)
=
taskIdFromTaskTree
tt
Libraries/iTasks/Internal/Tonic.dcl
View file @
47e4f146
...
...
@@ -4,7 +4,7 @@ from iTasks.Internal.SDS import :: Shared, :: ReadWriteShared, :: RWShared
from
iTasks
.
Internal
.
IWorld
import
::
IWorld
from
iTasks
.
Internal
.
Task
import
::
TaskEvalOpts
,
::
TaskResult
from
iTasks
.
WF
.
Definition
import
::
Task
,
::
InstanceNo
,
class
iTask
from
iTasks
.
UI
.
Tune
import
class
tune
from
iTasks
.
WF
.
Combinators
.
Tune
import
class
tune
from
iTasks
.
SDS
.
Definition
import
::
SDS
import
iTasks
.
Internal
.
Tonic
.
AbsSyn
...
...
Libraries/iTasks/Internal/Tonic/Images.icl
View file @
47e4f146
...
...
@@ -269,7 +269,7 @@ tLam inh vars e tsrc
[]
->
[
tHorizConnArr
(
fillColorFromStatStab
(
r
.
syn_status
,
r
.
syn_stability
))
,
r
.
syn_img
]
vars
->
[
tHorizConn
(
fillColorFromStatStab
(
r
.
syn_status
,
r
.
syn_stability
))
,
tTextWithGreyBackground
ArialRegular10px
(
strictF
oldr
(\
x
xs
->
x
+++
" "
+++
xs
)
""
vars
)
,
tTextWithGreyBackground
ArialRegular10px
(
f
oldr
(\
x
xs
->
x
+++
" "
+++
xs
)
""
vars
)
,
tHorizConnArr
(
fillColorFromStatStab
(
r
.
syn_status
,
r
.
syn_stability
))
,
r
.
syn_img
]
#!
img
=
beside
(
repeat
AtMiddleY
)
[]
Nothing
[]
lineParts
NoHost
...
...
@@ -482,7 +482,7 @@ tLet inh pats expr [(txttag, uTxtTag) : tsrc]
_
#!
(
t
,
tsrc
)
=
tExpr2Image
inh
expr
tsrc
#!
(
patRhss
,
tsrc
)
=
strictTRMapSt
(
tExpr2Image
inh
)
(
map
snd
pats
)
tsrc
#!
binds
=
strictF
oldr
(\(
var
,
expr
)
acc
->
[
text
ArialRegular10px
(
ppTExpr
var
)
:
text
ArialRegular10px
" = "
:
expr
.
syn_img
:
acc
])
[]
(
strictTRZip2
(
strictTRMap
fst
pats
)
patRhss
)
#!
binds
=
f
oldr
(\(
var
,
expr
)
acc
->
[
text
ArialRegular10px
(
ppTExpr
var
)
:
text
ArialRegular10px
" = "
:
expr
.
syn_img
:
acc
])
[]
(
strictTRZip2
(
strictTRMap
fst
pats
)
patRhss
)
#!
letText
=
tag
uTxtTag
('
GS
'.
grid
(
Columns
3
)
(
RowMajor
,
LeftToRight
,
TopToBottom
)
[]
[]
[]
[]
binds
NoHost
)
#!
letWidth
=
imagexspan
txttag
+
px
8.0
#!
letHeight
=
imageyspan
txttag
+
px
8.0
...
...
@@ -928,7 +928,7 @@ tAssign inh lhsExpr assignedTask [(assignTaskTag, uAssignTaskTag) : (headerTag,
mkUser
(
TFApp
_
"UserWithRole"
[
r
:_]
_)
=
"Anyone with role "
+++
ppTExpr
r
mkUser
(
TFApp
_
"SystemUser"
_
_)
=
"System user"
mkUser
(
TFApp
_
"AnonymousUser"
_
_)
=
"Anonymous user"
mkUser
(
TFApp
_
"AuthenticatedUser"
[
uid
:
rs
:_]
_)
=
ppTExpr
uid
+++
" with roles "
+++
strictF
oldr
(\
x
xs
->
ppTExpr
x
+++
" "
+++
xs
)
""
(
tSafeExpr2List
rs
)
mkUser
(
TFApp
_
"AuthenticatedUser"
[
uid
:
rs
:_]
_)
=
ppTExpr
uid
+++
" with roles "
+++
f
oldr
(\
x
xs
->
ppTExpr
x
+++
" "
+++
xs
)
""
(
tSafeExpr2List
rs
)
mkUser
(
TFApp
_
usr
_
_)
=
usr
mkUser
(
TVar
_
ppe
_)
=
ppe
mkUser
(
TLit
(
TString
ppe
))
=
ppe
...
...
@@ -974,7 +974,7 @@ tSafeExpr2List e = [e]
tStepCont
::
![
UI
]
!(
InhMkImg
i
)
!
TExpr
!*
TagSource
->
*(!
SynMkImg
,
!*
TagSource
)
|
BlueprintLike
i
tStepCont
actions
inh
(
TFApp
_
"OnAction"
[
TFApp
_
"Action"
[
actionLit
:
_]
_
:
cont
:
_
]
_)
tsrc
=
mkStepCont
inh
(
Just
(
ppTExpr
actionLit
,
strictF
oldr
f
False
actions
))
cont
tsrc
=
mkStepCont
inh
(
Just
(
ppTExpr
actionLit
,
f
oldr
f
False
actions
))
cont
tsrc
where
f
ui
acc
=
(
replaceSubString
"
\"
"
""
(
an
ui
)
==
replaceSubString
"
\"
"
""
(
ppTExpr
actionLit
)
&&
enabled
ui
)
||
acc
where
...
...
@@ -1070,7 +1070,7 @@ stepIfStableUnstableHasValue inh mact filter [TLam pats e : _] [ref : tsrc]
#!
pats
=
filterLamVars
pats
#!
imgs2
=
if
(
length
pats
>
0
)
[
addAction
mact
(
tHorizConn
(
stepArrActivity
inh
syn_e
))
ref
,
tTextWithGreyBackground
ArialRegular10px
(
strictF
oldr
(\
x
xs
->
ppTExpr
x
+++
" "
+++
xs
)
""
pats
)]
,
tTextWithGreyBackground
ArialRegular10px
(
f
oldr
(\
x
xs
->
ppTExpr
x
+++
" "
+++
xs
)
""
pats
)]
[
addAction
mact
(
tShortHorizConn
(
stepArrActivity
inh
syn_e
))
ref
]
#!
imgs3
=
[
tHorizConnArr
(
stepArrActivity
inh
syn_e
)
,
syn_e
.
syn_img
...
...
@@ -1188,7 +1188,7 @@ tBranches inh mkBranch needAllDone inclVertConns exprs contextTag tsrc
|
otherwise
#!
firstTag
=
hd
ts
#!
lastTag
=
last
ts
#!
allYSpans
=
strictF
oldl
(\
acc
x
->
imageyspan
x
+
acc
)
(
px
0.0
)
ts
#!
allYSpans
=
f
oldl
(\
acc
x
->
imageyspan
x
+
acc
)
(
px
0.0
)
ts
#!
halfFirstY
=
imageyspan
firstTag
/.
2.0
#!
halfLastY
=
imageyspan
lastTag
/.
2.0
=
above
(
repeat
AtMiddleX
)
[]
Nothing
[]
...
...
@@ -1284,9 +1284,3 @@ strictTRZipWith3Acc :: !(a b c -> d) ![a] ![b] ![c] ![d] -> [d]
strictTRZipWith3Acc
f
[
a
:
as
]
[
b
:
bs
]
[
c
:
cs
]
acc
=
strictTRZipWith3Acc
f
as
bs
cs
[
f
a
b
c
:
acc
]
strictTRZipWith3Acc
_
_
_
_
acc
=
acc
strictFoldl
::
!(.
a
->
.(.
b
->
.
a
))
!.
a
![.
b
]
->
.
a