Toggle navigation
Toggle navigation
This project
Loading...
Sign in
arcs
/
arcs.js
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
3
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Jean-Yves Didier
2021-12-14 00:04:18 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b57e28c9a858347b45a5475419dea7055d4d8c5d
b57e28c9
1 parent
0cd1496a
added generic uimapper
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
0 deletions
components/uimapper.js
components/uimapper.js
0 → 100644
View file @
b57e28c
import
ARCS
from
'../build/arcs.js'
;
let
UIMapper
;
UIMapper
=
ARCS
.
Component
.
create
(
function
(
obj
)
{
let
self
=
this
;
// returns a map function
const
mapFunction
=
function
(
param
,
field
)
{
let
fields
=
field
.
split
(
'.'
);
let
params
=
param
.
split
(
'.'
);
return
function
()
{
let
eltField
=
document
.
getElementById
(
fields
[
0
]);
for
(
let
i
=
1
;
i
<
fields
.
length
-
1
;
i
++
)
{
eltField
=
eltField
[
fields
[
i
]];
}
let
value
=
arguments
[
params
[
0
]];
for
(
let
i
=
1
;
i
<
params
.
length
;
i
++
)
{
value
=
value
[
params
[
i
]];
}
eltField
[
fields
[
fields
.
length
-
1
]]
=
value
;
}
};
for
(
let
p
in
obj
)
{
let
slotName
=
p
.
name
;
let
slotFunction
=
function
(
pobj
)
{
return
function
()
{
pobj
.
mapping
.
map
(
elt
=>
{
mapFunction
(
elt
.
param
,
elt
.
field
).
apply
(
null
,
arguments
);
});
};
}
if
(
self
.
slots
.
indexOf
(
slotName
)
<
0
)
{
self
.
slots
.
push
(
slotName
);
self
[
slotName
]
=
slotFunction
(
p
);
}
};
},
[],
[]
);
export
default
{
UIMapper
:
UIMapper
};
Please
register
or
login
to post a comment