Merge master

This commit is contained in:
Pieter Vander Vennet 2020-09-30 23:06:22 +02:00
commit bb4411d443
6 changed files with 20 additions and 9 deletions

View file

@ -23,7 +23,7 @@ export class State {
// The singleton of the global state
public static state: State;
public static vNumber = "0.0.9";
public static vNumber = "0.0.9a";
// The user journey states thresholds when a new feature gets unlocked
public static userJourney = {

View file

@ -13,9 +13,13 @@ export class FixedInputElement<T> extends InputElement<T> {
value: T,
comparator: ((t0: T, t1: T) => boolean ) = undefined) {
super(undefined);
this._comparator = comparator ?? ((t0, t1) => t0 == t1);
this._comparator = comparator ?? ((t0, t1) => t0 == t1);
this.value = new UIEventSource<T>(value);
this.rendering = typeof (rendering) === 'string' ? new FixedUiElement(rendering) : rendering;
const self = this;
this.onClick(() => {
self.IsSelected.setData(true)
})
}
GetValue(): UIEventSource<T> {
@ -32,7 +36,6 @@ export class FixedInputElement<T> extends InputElement<T> {
protected InnerUpdate(htmlElement: HTMLElement) {
super.InnerUpdate(htmlElement);
const self = this;
htmlElement.addEventListener("mouseenter", () => self.IsSelected.setData(true));
htmlElement.addEventListener("mouseout", () => self.IsSelected.setData(false))
}

View file

@ -35,7 +35,9 @@ export default class InputElementMap<T, X> extends InputElement<X> {
}), extraSources, x => {
return fromX(x);
});
}w
this._value.addCallback(console.log)
this.IsSelected.addCallback(s => console.log("Is selected?", s))
}
GetValue(): UIEventSource<X> {
return this._value;

View file

@ -38,6 +38,11 @@ export class RadioButton<T> extends InputElement<T> {
elements[i]?.onClick(() => {
self._selectedElementIndex.setData(i);
});
elements[i].IsSelected.addCallback(isSelected => {
if (isSelected) {
self._selectedElementIndex.setData(i);
}
})
}
}

View file

@ -228,7 +228,9 @@ export class TagRendering extends UIElement implements TagDependantUIElement {
elements.push(freeformElement);
}
if (options.multiAnswer) {
if (!options.multiAnswer) {
return new RadioButton(elements, false);
} else {
const possibleTags = elements.map(el => el.GetValue().data);
const checkBoxes = new CheckBoxes(elements);
@ -264,7 +266,7 @@ export class TagRendering extends UIElement implements TagDependantUIElement {
},
[freeformElement?.GetValue()]
);
freeformElement?.GetValue()?.addCallbackAndRun(value => {
const es = checkBoxes.GetValue();
const i = elements.length - 1;
@ -282,7 +284,6 @@ export class TagRendering extends UIElement implements TagDependantUIElement {
return inputEl;
}
return new RadioButton(elements, false);
}
@ -360,7 +361,7 @@ export class TagRendering extends UIElement implements TagDependantUIElement {
}
return ValidatedTextField.Mapped(pickString, toString, {
placeholder: this._freeform.placeholder,
placeholder: freeform.placeholder,
type: type,
isValid: (str) => (str.length <= 255),
textArea: isTextArea,

View file

@ -10,4 +10,4 @@ oh.GetValue().addCallback(data => console.log(data))
new VariableUiElement(oh.GetValue().map(ohs => {
return ohs.map((oh: OpeningHour) => oh.weekdayStart + " " + oh.startHour + ":" + oh.startMinutes + " --> " +
oh.weekdayEnd + " " + oh.endHour + ":" + oh.endMinutes).join(",")
})).AttachTo("extradiv");
})).AttachTo("extradiv");