Skip to content

Commit c932c48

Browse files
author
brucou
committed
added license
1 parent fb7ca52 commit c932c48

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2015 Andre Medeiros, Tylor Steinberger
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

notes/slots.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
mergeDOMbySlots (parentDomSink, childrenDomSinks, settings) {
2+
// @type {Array<String>} slots
3+
const {slots} = settings;
4+
5+
// deal with null sinks etc.
6+
$.combineLatest(flatten(parentDomSink, childrenDomSinks))
7+
.map(vNodeTreeArray => {
8+
// reorder according to slots (use ramda sort)
9+
return sortBy (vTree => getSlotIndex(getSlot(vTree), slots), vTreeArray)
10+
})
11+
.map(div) // unless only one
12+
}
13+
14+
15+
put the slots in the settings of the child component
16+
17+
# Example
18+
```
19+
m({}, {}, [
20+
Navigation({slots : ['', 'navigation-section']}, [Header, [
21+
SomeContent,
22+
InSlot({slot : ''navigation-section'}, [NavigationSection()],
23+
InSlot({slot : ''navigation-section'}, [NavigationSection()],
24+
OtherContent
25+
]])
26+
])
27+
```
28+
29+
# InSlot
30+
`InSlot` set the `vNode.data.slot` property to `settings.slot`
31+
`InSlot` should not pass its settings!, at least not its slot settings
32+
33+
# getSlot :: vTree -> String
34+
`return vNodeTree.data.slot`
35+
or someting like that, must return undefined is no slot set up
36+
37+
# getSlotIndex :: String -> Slots -> Number
38+
- `Slots :: Array<String>`
39+
40+
function getSlotIndex(slotToFind, slots){
41+
return findIndex(equals(slotToFind || undefined), slots)
42+
}
43+

src/TODO.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@
2222
// TODO DOC: update doc (types componentTree) for Switch, Route, ForEach, List
2323
// TODO : tabbed component? + demo?
2424
// TODO : remove most runTestScenario, see how to publish it separately (...monorepo...)
25+
// TODO : for all components, decide if I pass the settings of the combinator downstream!!
26+
// - for instance, sinkNames is good to pass downstream, but slot would not be

0 commit comments

Comments
 (0)