foldkit 0.100.0 → 0.100.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -35
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +6 -1
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +50 -49
- package/dist/test/apps/bubbling.d.ts.map +1 -1
- package/dist/test/apps/bubbling.js +7 -5
- package/dist/test/apps/counter.d.ts.map +1 -1
- package/dist/test/apps/counter.js +8 -6
- package/dist/test/apps/disabledButton.d.ts.map +1 -1
- package/dist/test/apps/disabledButton.js +32 -21
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +18 -16
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +21 -19
- package/dist/test/apps/keypress.d.ts.map +1 -1
- package/dist/test/apps/keypress.js +12 -10
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +38 -36
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +4 -2
- package/dist/test/apps/mountPanel.d.ts.map +1 -1
- package/dist/test/apps/mountPanel.js +29 -21
- package/dist/test/apps/multiRole.d.ts.map +1 -1
- package/dist/test/apps/multiRole.js +6 -4
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +15 -13
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +20 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -102,41 +102,43 @@ export const init: Runtime.ProgramInit<Model, Message> = () => [
|
|
|
102
102
|
|
|
103
103
|
// VIEW
|
|
104
104
|
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
105
|
+
export const view = (model: Model): Document => {
|
|
106
|
+
const h = html<Message>()
|
|
107
|
+
|
|
108
|
+
return {
|
|
109
|
+
title: `Counter: ${model.count}`,
|
|
110
|
+
body: h.div(
|
|
111
|
+
[
|
|
112
|
+
h.Class(
|
|
113
|
+
'min-h-screen bg-white flex flex-col items-center justify-center gap-6 p-6',
|
|
114
|
+
),
|
|
115
|
+
],
|
|
116
|
+
[
|
|
117
|
+
h.div(
|
|
118
|
+
[h.Class('text-6xl font-bold text-gray-800')],
|
|
119
|
+
[model.count.toString()],
|
|
120
|
+
),
|
|
121
|
+
h.div(
|
|
122
|
+
[h.Class('flex flex-wrap justify-center gap-4')],
|
|
123
|
+
[
|
|
124
|
+
h.button(
|
|
125
|
+
[h.OnClick(ClickedDecrement()), h.Class(buttonStyle)],
|
|
126
|
+
['-'],
|
|
127
|
+
),
|
|
128
|
+
h.button(
|
|
129
|
+
[h.OnClick(ClickedReset()), h.Class(buttonStyle)],
|
|
130
|
+
['Reset'],
|
|
131
|
+
),
|
|
132
|
+
h.button(
|
|
133
|
+
[h.OnClick(ClickedIncrement()), h.Class(buttonStyle)],
|
|
134
|
+
['+'],
|
|
135
|
+
),
|
|
136
|
+
],
|
|
137
|
+
),
|
|
138
|
+
],
|
|
139
|
+
),
|
|
140
|
+
}
|
|
141
|
+
}
|
|
140
142
|
|
|
141
143
|
// STYLE
|
|
142
144
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/devTools/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,MAAM,EAGN,OAAO,EAGP,MAAM,EAKN,MAAM,IAAI,CAAC,EAGX,eAAe,EAEhB,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAa9C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAQ3E,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/devTools/overlay.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,MAAM,EAGN,OAAO,EAGP,MAAM,EAKN,MAAM,IAAI,CAAC,EAGX,eAAe,EAEhB,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAa9C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAQ3E,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAA;;oFAiakC,CAAC;;;;;;;;;;;;;;AAhItD,cAAM,YAAa,SAAQ,iBAE1B;CAAG;;AAEJ,cAAM,iBAAkB,SAAQ,sBAGC;CAAG;AAEpC,eAAO,MAAM,UAAU;;iBAGsB,CAAA;AAE7C,eAAO,MAAM,YAAY;;iBAGwB,CAAA;AAWjD,eAAO,MAAM,MAAM;;;;wBAUlB,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;wBAIqB,CAAA;AAE9C,eAAO,MAAM,aAAa;;;;;;wBAYzB,CAAA;AAED,eAAO,MAAM,MAAM;;wBASlB,CAAA;AAED,eAAO,MAAM,KAAK;;wBASjB,CAAA;AAED,eAAO,MAAM,WAAW;;6BAYvB,CAAA;AAqsDD,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,UAAU,gBAAgB,EAC1B,MAAM,YAAY,EAClB,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,sCAmEhC,CAAA"}
|
package/dist/devTools/overlay.js
CHANGED
|
@@ -1001,7 +1001,12 @@ const makeView = (position, mode, shadow, maybeBanner) => {
|
|
|
1001
1001
|
]),
|
|
1002
1002
|
maybeAction: OptionExt.when(!model.isFollowingLatest, h.button([h.Class(actionButtonClass), h.OnClick(ClickedFollowLatest())], ['Follow Latest →'])),
|
|
1003
1003
|
})), M.exhaustive);
|
|
1004
|
-
|
|
1004
|
+
const maybeClearHistoryButton = OptionExt.when(!model.isPaused, clearHistoryButton);
|
|
1005
|
+
return h.header([h.Class(headerClass)], [
|
|
1006
|
+
status,
|
|
1007
|
+
...Option.toArray(maybeAction),
|
|
1008
|
+
...Option.toArray(maybeClearHistoryButton),
|
|
1009
|
+
]);
|
|
1005
1010
|
};
|
|
1006
1011
|
const initRowView = (isSelected, isPausedHere) => h.keyed('li')('init', [
|
|
1007
1012
|
h.Class(clsx(ROW_BASE, { selected: isSelected })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/devTools/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,OAAO,EACP,OAAO,EAEP,MAAM,EAIN,eAAe,EAEhB,MAAM,QAAQ,CAAA;AAIf,eAAO,MAAM,UAAU,KAAK,CAAA;AAM5B,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;CACvC,CAAC,CAAA;AAEF,eAAO,MAAM,SAAS,EAAE,UAGvB,CAAA;AAID,eAAO,MAAM,WAAW,GACtB,UAAU,OAAO,EACjB,SAAS,OAAO,KACf,UA6EF,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,CAAC,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,CAAC,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACvC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;CACjB,CAAC,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IACpC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtC,YAAY,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC1C,eAAe,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CACzC,CAAC,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IACrD,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC/C,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACvC,CAAC,CAAA;AAcF;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,UAAS,0BAA+B,KACvC,MAAM,CAAC,MAAM,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/devTools/store.ts"],"names":[],"mappings":"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"}
|
package/dist/devTools/store.js
CHANGED
|
@@ -97,28 +97,26 @@ export const createDevToolsStore = (bridge, options = {}) => Effect.gen(function
|
|
|
97
97
|
: state.startIndex;
|
|
98
98
|
return pipe(state.keyframes, HashMap.get(keyframeIndex), Option.map(keyframeModel => pipe(state.entries, Array.drop(keyframeIndex - state.startIndex), Array.take(index - keyframeIndex + 1), Array.reduce(keyframeModel, (model, entry) => bridge.replay(model, entry.message)))), Option.getOrThrow);
|
|
99
99
|
};
|
|
100
|
-
const addKeyframeIfNeeded = (
|
|
100
|
+
const addKeyframeIfNeeded = (nextAbsoluteIndex, modelAfterUpdate) => (keyframes) => nextAbsoluteIndex % keyframeInterval === 0
|
|
101
101
|
? HashMap.set(keyframes, nextAbsoluteIndex, modelAfterUpdate)
|
|
102
102
|
: keyframes;
|
|
103
103
|
const evictOldestSegment = (state) => {
|
|
104
104
|
const nextStartIndex = state.startIndex + keyframeInterval;
|
|
105
105
|
const isPausedAtRetainedIndex = state.pausedAtIndex >= nextStartIndex ||
|
|
106
106
|
state.pausedAtIndex === INIT_INDEX;
|
|
107
|
-
return {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
};
|
|
107
|
+
return evo(state, {
|
|
108
|
+
entries: Array.drop(keyframeInterval),
|
|
109
|
+
keyframes: HashMap.remove(state.startIndex),
|
|
110
|
+
startIndex: () => nextStartIndex,
|
|
111
|
+
isPaused: isPaused => isPaused && isPausedAtRetainedIndex,
|
|
112
|
+
});
|
|
114
113
|
};
|
|
115
|
-
const recordInit = (model, commands, mountStarts = []) => SubscriptionRef.update(stateRef, state => ({
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
maybeLatestModel: Option.some(model),
|
|
114
|
+
const recordInit = (model, commands, mountStarts = []) => SubscriptionRef.update(stateRef, state => evo(state, {
|
|
115
|
+
maybeInitModel: () => Option.some(model),
|
|
116
|
+
initCommands: () => commands,
|
|
117
|
+
initMountStarts: () => mountStarts,
|
|
118
|
+
keyframes: HashMap.set(0, model),
|
|
119
|
+
maybeLatestModel: () => Option.some(model),
|
|
122
120
|
}));
|
|
123
121
|
const recordMessage = (message, modelBeforeUpdate, modelAfterUpdate, commands, isModelChanged) => SubscriptionRef.update(stateRef, state => {
|
|
124
122
|
const absoluteIndex = state.startIndex + state.entries.length;
|
|
@@ -126,9 +124,8 @@ export const createDevToolsStore = (bridge, options = {}) => Effect.gen(function
|
|
|
126
124
|
? computeDiff(modelBeforeUpdate, modelAfterUpdate)
|
|
127
125
|
: emptyDiff;
|
|
128
126
|
const hasChangedFields = HashSet.size(diff.changedPaths) > 0;
|
|
129
|
-
const nextState = {
|
|
130
|
-
|
|
131
|
-
entries: Array.append(state.entries, {
|
|
127
|
+
const nextState = evo(state, {
|
|
128
|
+
entries: Array.append({
|
|
132
129
|
tag: message._tag,
|
|
133
130
|
message,
|
|
134
131
|
commands,
|
|
@@ -138,9 +135,9 @@ export const createDevToolsStore = (bridge, options = {}) => Effect.gen(function
|
|
|
138
135
|
isModelChanged: hasChangedFields,
|
|
139
136
|
diff,
|
|
140
137
|
}),
|
|
141
|
-
keyframes: addKeyframeIfNeeded(
|
|
142
|
-
maybeLatestModel: Option.some(modelAfterUpdate),
|
|
143
|
-
};
|
|
138
|
+
keyframes: addKeyframeIfNeeded(absoluteIndex + 1, modelAfterUpdate),
|
|
139
|
+
maybeLatestModel: () => Option.some(modelAfterUpdate),
|
|
140
|
+
});
|
|
144
141
|
return nextState.entries.length > maxEntries
|
|
145
142
|
? evictOldestSegment(nextState)
|
|
146
143
|
: nextState;
|
|
@@ -161,16 +158,13 @@ export const createDevToolsStore = (bridge, options = {}) => Effect.gen(function
|
|
|
161
158
|
return state;
|
|
162
159
|
}
|
|
163
160
|
return Array.match(state.entries, {
|
|
164
|
-
onEmpty: () => ({
|
|
165
|
-
|
|
166
|
-
initMountStarts: Array.appendAll(state.initMountStarts, mountStarts),
|
|
161
|
+
onEmpty: () => evo(state, {
|
|
162
|
+
initMountStarts: Array.appendAll(mountStarts),
|
|
167
163
|
}),
|
|
168
|
-
onNonEmpty: entries => ({
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
mountStarts: Array.appendAll(last.mountStarts, mountStarts),
|
|
173
|
-
mountEnds: Array.appendAll(last.mountEnds, mountEnds),
|
|
164
|
+
onNonEmpty: entries => evo(state, {
|
|
165
|
+
entries: () => Array.modifyLastNonEmpty(entries, last => evo(last, {
|
|
166
|
+
mountStarts: Array.appendAll(mountStarts),
|
|
167
|
+
mountEnds: Array.appendAll(mountEnds),
|
|
174
168
|
})),
|
|
175
169
|
}),
|
|
176
170
|
});
|
|
@@ -194,30 +188,37 @@ export const createDevToolsStore = (bridge, options = {}) => Effect.gen(function
|
|
|
194
188
|
const jumpTo = (index) => Effect.gen(function* () {
|
|
195
189
|
const state = yield* SubscriptionRef.get(stateRef);
|
|
196
190
|
yield* bridge.render(resolveModel(state, index));
|
|
197
|
-
yield* SubscriptionRef.set(stateRef, {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
});
|
|
191
|
+
yield* SubscriptionRef.set(stateRef, evo(state, {
|
|
192
|
+
isPaused: () => true,
|
|
193
|
+
pausedAtIndex: () => index,
|
|
194
|
+
}));
|
|
202
195
|
});
|
|
203
196
|
const resume = Effect.gen(function* () {
|
|
204
|
-
yield* SubscriptionRef.update(stateRef, state => ({
|
|
205
|
-
|
|
206
|
-
isPaused: false,
|
|
197
|
+
yield* SubscriptionRef.update(stateRef, state => evo(state, {
|
|
198
|
+
isPaused: () => false,
|
|
207
199
|
}));
|
|
208
200
|
yield* bridge.markRenderPending;
|
|
209
201
|
});
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
202
|
+
// NOTE: the paused snapshot is replayed off the entries array, so wiping
|
|
203
|
+
// entries while paused strands the runtime on a historical state with no
|
|
204
|
+
// path back to live. Refuse the write until resume.
|
|
205
|
+
const clear = SubscriptionRef.update(stateRef, state => {
|
|
206
|
+
if (state.isPaused) {
|
|
207
|
+
return state;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
return evo(state, {
|
|
211
|
+
entries: () => [],
|
|
212
|
+
startIndex: () => 0,
|
|
213
|
+
pausedAtIndex: () => 0,
|
|
214
|
+
keyframes: () => Option.match(state.maybeInitModel, {
|
|
215
|
+
onNone: () => HashMap.empty(),
|
|
216
|
+
onSome: model => HashMap.make([0, model]),
|
|
217
|
+
}),
|
|
218
|
+
maybeLatestModel: () => state.maybeInitModel,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
});
|
|
221
222
|
const getDiffAtIndex = (index) => Effect.gen(function* () {
|
|
222
223
|
if (index === INIT_INDEX) {
|
|
223
224
|
return emptyDiff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bubbling.d.ts","sourceRoot":"","sources":["../../../src/test/apps/bubbling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAOrC,QAAA,MAAM,OAAO,sLAAsD,CAAA;AACnE,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAUrC,CAAA;
|
|
1
|
+
{"version":3,"file":"bubbling.d.ts","sourceRoot":"","sources":["../../../src/test/apps/bubbling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAOrC,QAAA,MAAM,OAAO,sLAAsD,CAAA;AACnE,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAUrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAgBnC,CAAA"}
|
|
@@ -24,8 +24,10 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
24
24
|
],
|
|
25
25
|
}));
|
|
26
26
|
// VIEW
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
h.div([
|
|
30
|
-
|
|
31
|
-
])
|
|
27
|
+
export const view = (model) => {
|
|
28
|
+
const h = html();
|
|
29
|
+
return h.div([], [
|
|
30
|
+
h.div([h.Role('option'), h.OnClick(ClickedContainer())], [h.span([], [`clicks=${model.clicks}`])]),
|
|
31
|
+
h.div([h.Role('listitem'), h.OnDoubleClick(DoubleClickedContainer())], [h.span([], [`dbl=${model.doubleClicks}`])]),
|
|
32
|
+
]);
|
|
33
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,gBAAgB;;EAA0C,CAAA;AACvE,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,mBAAmB;;EAAgD,CAAA;AAChF,eAAO,MAAM,gBAAgB;;EAA6C,CAAA;AAE1E,eAAO,MAAM,OAAO;;;;;;IAUlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,UAAU;;;iBAIgC,CAAA;AAEvD,eAAO,MAAM,cAAc;;;;;iBAKyC,CAAA;AAIpE,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiCxD,CAAA;
|
|
1
|
+
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/test/apps/counter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,gBAAgB;;EAA0C,CAAA;AACvE,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,mBAAmB;;EAAgD,CAAA;AAChF,eAAO,MAAM,gBAAgB;;EAA6C,CAAA;AAE1E,eAAO,MAAM,OAAO;;;;;;IAUlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,UAAU;;;iBAIgC,CAAA;AAEvD,eAAO,MAAM,cAAc;;;;;iBAKyC,CAAA;AAIpE,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAiCxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAiBnC,CAAA"}
|
|
@@ -63,9 +63,11 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
63
63
|
FailedFetchCount: () => [model, []],
|
|
64
64
|
}));
|
|
65
65
|
// VIEW
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
h.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
])
|
|
66
|
+
export const view = (model) => {
|
|
67
|
+
const h = html();
|
|
68
|
+
return h.div([], [
|
|
69
|
+
h.span([h.Role('status')], [`count: ${model.count}`]),
|
|
70
|
+
h.button([h.OnClick(StartedThreeFetches()), h.Role('button')], ['Start three fetches']),
|
|
71
|
+
h.button([h.OnClick(StartedTwoFetchesById()), h.Role('button')], ['Start two fetches by id']),
|
|
72
|
+
]);
|
|
73
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabledButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/disabledButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAMrD,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,gBAAgB;;;;EAE3B,CAAA;AAEF,eAAO,MAAM,OAAO;;;;IAA4D,CAAA;AAChF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyBxD,CAAA;
|
|
1
|
+
{"version":3,"file":"disabledButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/disabledButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAMrD,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,gBAAgB;;;;EAE3B,CAAA;AAEF,eAAO,MAAM,OAAO;;;;IAA4D,CAAA;AAChF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyBxD,CAAA;AAgBH,sCAAsC;AACtC,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAUnC,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,IAe7C,CAAA;AAKD,eAAO,MAAM,kBAAkB,GAAI,OAAO,KAAK,KAAG,IAejD,CAAA"}
|
|
@@ -33,28 +33,39 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
33
33
|
},
|
|
34
34
|
}));
|
|
35
35
|
// VIEW
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
h.
|
|
39
|
-
|
|
40
|
-
]
|
|
36
|
+
const submitButton = (isEnabled) => {
|
|
37
|
+
const h = html();
|
|
38
|
+
return h.button([
|
|
39
|
+
h.Class('submit'),
|
|
40
|
+
...(isEnabled ? [h.OnClick(ClickedSubmit())] : [h.Disabled(true)]),
|
|
41
|
+
], ['Submit']);
|
|
42
|
+
};
|
|
41
43
|
/** Plain view — no dialog wrapper. */
|
|
42
|
-
export const view = (model) =>
|
|
43
|
-
h
|
|
44
|
-
|
|
45
|
-
])
|
|
44
|
+
export const view = (model) => {
|
|
45
|
+
const h = html();
|
|
46
|
+
return h.div([], [
|
|
47
|
+
h.button([h.OnClick(ClickedToggle())], ['Toggle']),
|
|
48
|
+
submitButton(model.isEnabled),
|
|
49
|
+
]);
|
|
50
|
+
};
|
|
46
51
|
/** View with submit button inside a dialog's panelContent. */
|
|
47
|
-
export const viewWithDialog = (model) =>
|
|
48
|
-
h
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
export const viewWithDialog = (model) => {
|
|
53
|
+
const h = html();
|
|
54
|
+
return h.div([], [
|
|
55
|
+
h.button([h.OnClick(ClickedToggle())], ['Toggle']),
|
|
56
|
+
Dialog.view({
|
|
57
|
+
model: model.dialog,
|
|
58
|
+
toParentMessage: (dialogMessage) => GotDialogMessage({ message: dialogMessage }),
|
|
59
|
+
panelContent: submitButton(model.isEnabled),
|
|
60
|
+
}),
|
|
61
|
+
]);
|
|
62
|
+
};
|
|
55
63
|
/** View using Dialog.lazy with panelContent passed dynamically. */
|
|
56
64
|
const lazyDialogView = Dialog.lazy({});
|
|
57
|
-
export const viewWithLazyDialog = (model) =>
|
|
58
|
-
h
|
|
59
|
-
|
|
60
|
-
])
|
|
65
|
+
export const viewWithLazyDialog = (model) => {
|
|
66
|
+
const h = html();
|
|
67
|
+
return h.div([], [
|
|
68
|
+
h.button([h.OnClick(ClickedToggle())], ['Toggle']),
|
|
69
|
+
lazyDialogView(model.dialog, (dialogMessage) => GotDialogMessage({ message: dialogMessage }), submitButton(model.isEnabled)),
|
|
70
|
+
]);
|
|
71
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/fileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CACnC,CAAC,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,aAAa;;EAA+C,CAAA;AAEzE,eAAO,MAAM,OAAO;;IAA2B,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;
|
|
1
|
+
{"version":3,"file":"fileUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/fileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CACnC,CAAC,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA;AAIxD,eAAO,MAAM,aAAa;;EAA+C,CAAA;AAEzE,eAAO,MAAM,OAAO;;IAA2B,CAAA;AAC/C,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA8BnC,CAAA"}
|
|
@@ -11,19 +11,21 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
11
11
|
ReceivedFiles: ({ files }) => [{ ...model, receivedFiles: files }, []],
|
|
12
12
|
}));
|
|
13
13
|
// VIEW
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
h.
|
|
17
|
-
h.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
h.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
])
|
|
14
|
+
export const view = (model) => {
|
|
15
|
+
const h = html();
|
|
16
|
+
return h.div([], [
|
|
17
|
+
h.input([
|
|
18
|
+
h.Key('file-input'),
|
|
19
|
+
h.AriaLabel('resume'),
|
|
20
|
+
h.Type('file'),
|
|
21
|
+
h.OnFileChange(files => ReceivedFiles({ files })),
|
|
22
|
+
]),
|
|
23
|
+
h.div([
|
|
24
|
+
h.Key('drop-zone'),
|
|
25
|
+
h.AriaLabel('attachments'),
|
|
26
|
+
h.OnDropFiles(files => ReceivedFiles({ files })),
|
|
27
|
+
], ['Drop files here']),
|
|
28
|
+
h.div([h.Key('received-count')], [`count=${String(model.receivedFiles.length)}`]),
|
|
29
|
+
h.div([h.Key('received-names')], [`names=${model.receivedFiles.map(file => file.name).join(',')}`]),
|
|
30
|
+
]);
|
|
31
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/test/apps/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AAEpE,eAAO,MAAM,OAAO;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAcrC,CAAA;
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/test/apps/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AAEpE,eAAO,MAAM,OAAO;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAcrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA8BnC,CAAA"}
|
|
@@ -45,22 +45,24 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
45
45
|
ChangedSelect: ({ value }) => [{ ...model, changed: value }, []],
|
|
46
46
|
}));
|
|
47
47
|
// VIEW
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
h.
|
|
51
|
-
h.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
h.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
h.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
])
|
|
48
|
+
export const view = (model) => {
|
|
49
|
+
const h = html();
|
|
50
|
+
return h.div([], [
|
|
51
|
+
h.button([
|
|
52
|
+
h.OnClick(ClickedButton()),
|
|
53
|
+
h.OnDoubleClick(DoubleClickedButton()),
|
|
54
|
+
h.OnMouseEnter(HoveredTarget()),
|
|
55
|
+
h.AriaLabel('action'),
|
|
56
|
+
], [`clicks=${model.clicks} dbl=${model.doubleClicks}`]),
|
|
57
|
+
h.input([
|
|
58
|
+
h.Role('textbox'),
|
|
59
|
+
h.AriaLabel('name'),
|
|
60
|
+
h.OnFocus(FocusedInput()),
|
|
61
|
+
h.OnBlur(BlurredInput()),
|
|
62
|
+
]),
|
|
63
|
+
h.select([h.AriaLabel('fruit'), h.OnChange(value => ChangedSelect({ value }))], [
|
|
64
|
+
h.option([h.Value('apple')], ['Apple']),
|
|
65
|
+
h.option([h.Value('banana')], ['Banana']),
|
|
66
|
+
]),
|
|
67
|
+
]);
|
|
68
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypress.d.ts","sourceRoot":"","sources":["../../../src/test/apps/keypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,UAAU;;EAAqC,CAAA;AAC5D,eAAO,MAAM,eAAe;;EAA0C,CAAA;AAEtE,eAAO,MAAM,OAAO;;;;IAAyC,CAAA;AAC7D,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAarC,CAAA;
|
|
1
|
+
{"version":3,"file":"keypress.d.ts","sourceRoot":"","sources":["../../../src/test/apps/keypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,UAAU;;EAAqC,CAAA;AAC5D,eAAO,MAAM,eAAe;;EAA0C,CAAA;AAEtE,eAAO,MAAM,OAAO;;;;IAAyC,CAAA;AAC7D,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAG1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAarC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAoBnC,CAAA"}
|
|
@@ -27,13 +27,15 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
27
27
|
],
|
|
28
28
|
}));
|
|
29
29
|
// VIEW
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
h.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
])
|
|
30
|
+
export const view = (model) => {
|
|
31
|
+
const h = html();
|
|
32
|
+
return h.div([
|
|
33
|
+
h.Id('key-app'),
|
|
34
|
+
h.Role('application'),
|
|
35
|
+
h.AriaLabel('Key press area'),
|
|
36
|
+
h.OnKeyDown((key, modifiers) => modifiers.shiftKey ? PressedShiftKey({ key }) : PressedKey({ key })),
|
|
37
|
+
], [
|
|
38
|
+
h.span([h.Class('last-key'), h.AriaLabel('Last key')], [model.lastKey]),
|
|
39
|
+
h.span([h.Class('shifted'), h.AriaLabel('Shift pressed')], [model.isShifted ? 'true' : 'false']),
|
|
40
|
+
]);
|
|
41
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/test/apps/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,YAAY;;EAAyC,CAAA;AAClE,eAAO,MAAM,eAAe;;EAA4C,CAAA;AACxE,eAAO,MAAM,cAAc,4EAAsB,CAAA;AACjD,eAAO,MAAM,qBAAqB;;EAEhC,CAAA;AACF,eAAO,MAAM,kBAAkB;;EAA+C,CAAA;AAC9E,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAE/C,eAAO,MAAM,OAAO;;;;;;;;+EAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;iBAIyC,CAAA;AAIlE,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyBxD,CAAA;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/test/apps/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;;;EAMhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,YAAY;;EAAyC,CAAA;AAClE,eAAO,MAAM,eAAe;;EAA4C,CAAA;AACxE,eAAO,MAAM,cAAc,4EAAsB,CAAA;AACjD,eAAO,MAAM,qBAAqB;;EAEhC,CAAA;AACF,eAAO,MAAM,kBAAkB;;EAA+C,CAAA;AAC9E,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAE/C,eAAO,MAAM,OAAO;;;;;;;;+EAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;iBAIyC,CAAA;AAIlE,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAyBxD,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAgFnC,CAAA"}
|
package/dist/test/apps/login.js
CHANGED
|
@@ -59,39 +59,41 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
59
59
|
],
|
|
60
60
|
}));
|
|
61
61
|
// VIEW
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
h.Class('
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
h.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
h.
|
|
80
|
-
|
|
81
|
-
h.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
h.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
])
|
|
62
|
+
export const view = (model) => {
|
|
63
|
+
const h = html();
|
|
64
|
+
return h.div([h.Id('app')], [
|
|
65
|
+
M.value(model.status).pipe(M.withReturnType(), M.when('Submitting', () => h.form([h.Class('login-form'), h.Disabled(true)], [h.button([h.Type('submit'), h.Disabled(true)], ['Signing in...'])])), M.when('LoggedIn', () => h.div([
|
|
66
|
+
h.Class('logged-in'),
|
|
67
|
+
h.Role('region'),
|
|
68
|
+
h.AriaLabel('User session'),
|
|
69
|
+
], [
|
|
70
|
+
h.span([h.Class('greeting'), h.Role('status')], [`Welcome, ${model.username}!`]),
|
|
71
|
+
h.button([
|
|
72
|
+
h.OnClick(ClickedLogout()),
|
|
73
|
+
h.Role('button'),
|
|
74
|
+
h.AriaExpanded(false),
|
|
75
|
+
], ['Log out']),
|
|
76
|
+
])), M.when('Error', () => h.div([], [
|
|
77
|
+
h.p([h.Class('error'), h.Role('alert')], [model.error]),
|
|
78
|
+
h.button([h.OnClick(SubmittedLogin()), h.Class('retry')], ['Retry']),
|
|
79
|
+
])), M.when('Idle', () => h.form([h.OnSubmit(SubmittedLogin()), h.Class('login-form')], [
|
|
80
|
+
h.label([h.For('email'), h.Class('sr-only')], ['Email']),
|
|
81
|
+
h.input([
|
|
82
|
+
h.Id('email'),
|
|
83
|
+
h.Type('email'),
|
|
84
|
+
h.Placeholder('Email'),
|
|
85
|
+
h.Value(model.email),
|
|
86
|
+
h.OnInput(value => UpdatedEmail({ value })),
|
|
87
|
+
]),
|
|
88
|
+
h.label([h.For('password'), h.Class('sr-only')], ['Password']),
|
|
89
|
+
h.input([
|
|
90
|
+
h.Id('password'),
|
|
91
|
+
h.Type('password'),
|
|
92
|
+
h.Placeholder('Password'),
|
|
93
|
+
h.Value(model.password),
|
|
94
|
+
h.OnInput(value => UpdatedPassword({ value })),
|
|
95
|
+
]),
|
|
96
|
+
h.button([h.Type('submit'), h.Class('primary'), h.Disabled(false)], ['Sign in']),
|
|
97
|
+
])), M.exhaustive),
|
|
98
|
+
]);
|
|
99
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logoutButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/logoutButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,4KAA4C,CAAA;AAChE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,UAAU,iGAA6B,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAI/C,eAAO,MAAM,YAAY,EAAE,KAA4B,CAAA;AAIvD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAShE,CAAA;
|
|
1
|
+
{"version":3,"file":"logoutButton.d.ts","sourceRoot":"","sources":["../../../src/test/apps/logoutButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM/C,eAAO,MAAM,KAAK;;EAAgC,CAAA;AAClD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,4KAA4C,CAAA;AAChE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,UAAU,iGAA6B,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAI/C,eAAO,MAAM,YAAY,EAAE,KAA4B,CAAA;AAIvD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAShE,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAOnC,CAAA"}
|
|
@@ -18,5 +18,7 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
18
18
|
CompletedAction: () => [model, [], Option.none()],
|
|
19
19
|
}));
|
|
20
20
|
// VIEW
|
|
21
|
-
const
|
|
22
|
-
|
|
21
|
+
export const view = (model) => {
|
|
22
|
+
const h = html();
|
|
23
|
+
return h.div([], [h.button([h.OnClick(ClickedLogout()), h.Role('button')], [model.label])]);
|
|
24
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mountPanel.d.ts","sourceRoot":"","sources":["../../../src/test/apps/mountPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGhE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAI7C,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AACpE,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,eAAO,MAAM,kBAAkB;;EAAgD,CAAA;AAC/E,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,UAAU;;EAAwC,CAAA;AAE/D,eAAO,MAAM,OAAO;;;;;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAWzC,eAAO,MAAM,YAAY;;;;;;EAI6B,CAAA;AAEtD,eAAO,MAAM,WAAW;;EAGuB,CAAA;AAE/C,eAAO,MAAM,UAAU;;;;;EAatB,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAcrC,CAAA;
|
|
1
|
+
{"version":3,"file":"mountPanel.d.ts","sourceRoot":"","sources":["../../../src/test/apps/mountPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGhE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAI7C,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,aAAa,2EAAqB,CAAA;AAC/C,eAAO,MAAM,aAAa;;EAA0C,CAAA;AACpE,eAAO,MAAM,oBAAoB,kFAA4B,CAAA;AAC7D,eAAO,MAAM,kBAAkB;;EAAgD,CAAA;AAC/E,eAAO,MAAM,gBAAgB,8EAAwB,CAAA;AACrD,eAAO,MAAM,UAAU;;EAAwC,CAAA;AAE/D,eAAO,MAAM,OAAO;;;;;;IAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAWzC,eAAO,MAAM,YAAY;;;;;;EAI6B,CAAA;AAEtD,eAAO,MAAM,WAAW;;EAGuB,CAAA;AAE/C,eAAO,MAAM,UAAU;;;;;EAatB,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAcrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA8BnC,CAAA;AAED;;4BAE4B;AAC5B,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,IAc3C,CAAA;AAED;;;2DAG2D;AAC3D,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,IAO/C,CAAA"}
|
|
@@ -57,32 +57,40 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
57
57
|
ScrolledTo: () => [model, []],
|
|
58
58
|
}));
|
|
59
59
|
// VIEW
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
h.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
h.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
export const view = (model) => {
|
|
61
|
+
const h = html();
|
|
62
|
+
return h.div([h.Class('panel-test')], [
|
|
63
|
+
h.button([h.Key('toggle'), h.OnClick(ClickedToggle()), h.OnMount(FocusButton())], [model.isOpen ? 'Close' : 'Open']),
|
|
64
|
+
...(model.isOpen
|
|
65
|
+
? [
|
|
66
|
+
h.div([h.Key('panel'), h.OnMount(MeasurePanel())], [
|
|
67
|
+
h.span([], [
|
|
68
|
+
Option.match(model.measuredWidth, {
|
|
69
|
+
onNone: () => 'unmeasured',
|
|
70
|
+
onSome: width => `width: ${width}`,
|
|
71
|
+
}),
|
|
72
|
+
]),
|
|
71
73
|
]),
|
|
72
|
-
]
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
]
|
|
75
|
+
: []),
|
|
76
|
+
]);
|
|
77
|
+
};
|
|
76
78
|
/** A view that always renders both the toggle button and the panel, exposing
|
|
77
79
|
* two MeasurePanel mounts simultaneously so we can exercise the (name,
|
|
78
80
|
* occurrence) tracking. */
|
|
79
|
-
export const twoPanelView = (model) =>
|
|
80
|
-
|
|
81
|
-
h.div([h.
|
|
82
|
-
|
|
83
|
-
])
|
|
81
|
+
export const twoPanelView = (model) => {
|
|
82
|
+
const h = html();
|
|
83
|
+
return h.div([h.Class('two-panels')], [
|
|
84
|
+
h.div([h.Key('panel-a'), h.OnMount(MeasurePanel())], [h.span([], ['A'])]),
|
|
85
|
+
h.div([h.Key('panel-b'), h.OnMount(MeasurePanel())], [h.span([], ['B'])]),
|
|
86
|
+
h.button([h.Key('inc'), h.OnClick(ClickedIncrement())], [`count: ${model.count}`]),
|
|
87
|
+
]);
|
|
88
|
+
};
|
|
84
89
|
/** A view that renders an arg-bearing Mount so Scene tests can exercise
|
|
85
90
|
* Instance-based mount matching (matcher's args structurally equal the
|
|
86
91
|
* pending Mount's args). The chosen `offset` flows through `ScrollList`'s
|
|
87
92
|
* args and is observable on the rendered Mount marker. */
|
|
88
|
-
export const scrollListView = (offset) =>
|
|
93
|
+
export const scrollListView = (offset) => {
|
|
94
|
+
const h = html();
|
|
95
|
+
return h.div([h.Class('scroll-list')], [h.div([h.Key('list'), h.OnMount(ScrollList({ offset }))], [])]);
|
|
96
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiRole.d.ts","sourceRoot":"","sources":["../../../src/test/apps/multiRole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;EAAiC,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,iGAA6B,CAAA;AACjD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAAqB,CAAA;AAIhD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;
|
|
1
|
+
{"version":3,"file":"multiRole.d.ts","sourceRoot":"","sources":["../../../src/test/apps/multiRole.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;EAAiC,CAAA;AACnD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,eAAe,6EAAuB,CAAA;AAEnD,eAAO,MAAM,OAAO,iGAA6B,CAAA;AACjD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY,EAAE,KAAqB,CAAA;AAIhD,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAMrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAYnC,CAAA"}
|
|
@@ -13,7 +13,9 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
13
13
|
ClickedFallback: () => [{ ...model, clicks: model.clicks + 1 }, []],
|
|
14
14
|
}));
|
|
15
15
|
// VIEW
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
h.div([
|
|
19
|
-
])
|
|
16
|
+
export const view = (model) => {
|
|
17
|
+
const h = html();
|
|
18
|
+
return h.div([], [
|
|
19
|
+
h.div([h.Role('doc-subtitle heading'), h.OnClick(ClickedFallback())], [`Fallback element clicks=${model.clicks}`]),
|
|
20
|
+
]);
|
|
21
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/test/apps/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAOrC,QAAA,MAAM,OAAO;;;;IAAmD,CAAA;AAChE,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAqBrC,CAAA;
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/test/apps/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAKrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAOrC,QAAA,MAAM,OAAO;;;;IAAmD,CAAA;AAChE,KAAK,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIlC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,SAAS,OAAO,KACf,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAqBrC,CAAA;AAIH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IA8BnC,CAAA"}
|
|
@@ -37,16 +37,18 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
37
37
|
],
|
|
38
38
|
}));
|
|
39
39
|
// VIEW
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
h.
|
|
43
|
-
h.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
h.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
])
|
|
40
|
+
export const view = (model) => {
|
|
41
|
+
const h = html();
|
|
42
|
+
return h.div([], [
|
|
43
|
+
h.button([
|
|
44
|
+
h.AriaLabel('pointer target'),
|
|
45
|
+
h.OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
|
|
46
|
+
h.OnPointerUp((_screenX, _screenY, pointerType, _timeStamp) => Option.some(ReleasedPointerUp({ pointerType }))),
|
|
47
|
+
], [`down=${model.pointerDownCount} up=${model.pointerUpCount}`]),
|
|
48
|
+
h.div([
|
|
49
|
+
h.AriaLabel('nested target'),
|
|
50
|
+
h.OnPointerDown(pointerType => Option.some(PressedPointerDown({ pointerType }))),
|
|
51
|
+
], [h.span([], [`type=${model.lastPointerType}`])]),
|
|
52
|
+
h.span([h.AriaLabel('no handler')], ['orphan']),
|
|
53
|
+
]);
|
|
54
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumeUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/resumeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAMrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,cAAc;;EAEzB,CAAA;AACF,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,oBAAoB;;EAE/B,CAAA;AACF,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AACvD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAE3D,eAAO,MAAM,OAAO;;;;oKAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;;;iBAaxB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;iBAU7B,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,KAAK,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YAmCrD,CAAA;
|
|
1
|
+
{"version":3,"file":"resumeUpload.d.ts","sourceRoot":"","sources":["../../../src/test/apps/resumeUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsB,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,qBAAqB,CAAA;AAMrD,eAAO,MAAM,KAAK;;;;EAIhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAC3D,eAAO,MAAM,cAAc;;EAEzB,CAAA;AACF,eAAO,MAAM,qBAAqB,mFAA6B,CAAA;AAC/D,eAAO,MAAM,oBAAoB;;EAE/B,CAAA;AACF,eAAO,MAAM,iBAAiB,+EAAyB,CAAA;AACvD,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAE3D,eAAO,MAAM,OAAO;;;;oKAOlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC,eAAO,MAAM,YAAY;;;;;iBAaxB,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;iBAU7B,CAAA;AAID,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAID,KAAK,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YAmCrD,CAAA;AAwBH,eAAO,MAAM,IAAI,GAAI,OAAO,KAAK,KAAG,IAqBnC,CAAA"}
|
|
@@ -73,18 +73,23 @@ export const update = (model, message) => M.value(message).pipe(M.withReturnType
|
|
|
73
73
|
],
|
|
74
74
|
}));
|
|
75
75
|
// VIEW
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
h.button([h.OnClick(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
76
|
+
const previewView = (model) => {
|
|
77
|
+
const h = html();
|
|
78
|
+
return Option.match(model.maybePreviewDataUrl, {
|
|
79
|
+
onSome: dataUrl => h.img([h.Src(dataUrl), h.Alt('Resume preview')]),
|
|
80
|
+
onNone: () => M.value(model.readStatus).pipe(M.withReturnType(), M.when('Reading', () => h.keyed('p')('reading', [h.Role('status')], ['Reading preview...'])), M.when('Failed', () => h.keyed('p')('failed', [h.Role('alert')], ['Could not read preview'])), M.when('Idle', () => h.empty), M.exhaustive),
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
export const view = (model) => {
|
|
84
|
+
const h = html();
|
|
85
|
+
return h.div([h.Class('resume-upload')], [
|
|
86
|
+
Option.match(model.maybeResume, {
|
|
87
|
+
onNone: () => h.button([h.OnClick(ClickedChooseResume())], ['Choose resume']),
|
|
88
|
+
onSome: file => h.section([h.AriaLabel('Selected resume')], [
|
|
89
|
+
h.p([h.Class('resume-name')], [File.name(file)]),
|
|
90
|
+
previewView(model),
|
|
91
|
+
h.button([h.OnClick(ClickedRemoveResume())], ['Remove']),
|
|
92
|
+
]),
|
|
93
|
+
}),
|
|
94
|
+
]);
|
|
95
|
+
};
|