<script>
import { openBrowser, openComponent } from "doc/PX2018/project_2/utils.js"
</script>
<link rel="stylesheet" type="text/css" href="doc/PX2018/project_2/utils.css">

# Tasks

### Small
- [x] no default loop
- [x] the green loop bar jumps after inserts???
- [x] Property: Tooltip - value shown on hover (e.g. fetch result text)
- [x] configure widget type via ::config
- [x] Implement selection highlighting in vivide tree view

### Middle
- [x] async extract and descent (actually await can be called on statements to return them)
- [x] async transform function results in a broken loop when configuring descents (seems to be fixed by some of the other changes)
- [ ] Remove loop button + Remove script button
    - [x] Remove loop button
    - [ ] Remove script button
- [x] Fix box-plot and list
- [x] Advanced tooltip not relying on title property

### Hard
- [ ] combine inputs

# Question

- Which config should be chosen?

# Example

lively.findDependedModules('https://lively-kernel.org/lively4/lively4-thulur/src/client/lively.js')

["https://lively-kernel.org/lively4/lively4-thulur/src/components/widgets/lively-notification-list.js", "https://lively-kernel.org/lively4/lively4-thulur/src/components/widgets/lively-notification.js", "https://lively-kernel.org/lively4/lively4-thulur/src/components/halo/lively-halo-item.js", "https://lively-kernel.org/lively4/lively4-thulur/s…halo/lively-halo-vivide-inport-connection-item.js", "https://lively-kernel.org/lively4/lively4-thulur/s…alo/lively-halo-vivide-outport-connection-item.js", "https://lively-kernel.org/lively4/lively4-thulur/src/components/halo/lively-halo-drag-item.js", "https://lively-kernel.org/lively4/lively4-thulur/s…components/halo/lively-halo-vivide-inport-item.js", "https://lively-kernel.org/lively4/lively4-thulur/s…omponents/halo/lively-halo-vivide-combine-item.js", "https://lively-kernel.org/lively4/lively4-thulur/s…omponents/halo/lively-halo-vivide-outport-item.js"]

## Transform (should be async)

``` javascript
import { config } from 'src/client/vivide/utils.js';

(async (input, output) => {
  for (let item of input) {
    let response = await fetch(item);
    //output.push(response);
    response.text().then(text => output.push(text));
  }
})::config({
  
})
```

## Transform (is async)

``` javascript
import { config } from 'src/client/vivide/utils.js';

((input, output) => {
  for (let item of input) {
    //let response = await fetch(item);
    //output.push(response);
    fetch(item).then(response => response.text().then(text => output.push(text)));
  }
})::config({
  
})
```
