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 // The singleton of the global state
public static state: 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 // The user journey states thresholds when a new feature gets unlocked
public static userJourney = { public static userJourney = {

View file

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

View file

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

View file

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

View file

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