@wix/himalaya-cli 0.1569.0 → 0.1570.0
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/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/l10n-strings.d.ts +3 -2
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/business-contact-service.d.ts +17 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/business-contact.d.ts +73 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/index.d.ts +3 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/invite-target.d.ts +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/invite.d.ts +148 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/screens.mjs +558 -84
- package/dist/cli.mjs +232 -27
- package/guides/getting-started.md +5 -0
- package/guides/himi-skill.md +5 -0
- package/guides/one-app-to-himi-app.md +145 -4
- package/guides/skill.md +5 -0
- package/guides/tier-5-add-a-screen.md +20 -0
- package/package.json +2 -2
- package/templates/beauty-salon/config.ts +7 -0
- package/templates/beauty-salon/dev/index.ts +213 -0
- package/templates/beauty-salon/himalaya.content.json +3 -0
- package/templates/beauty-salon/tier5-src/business-contact/index.ts +6 -0
- package/templates/branded-lite/config.ts +7 -0
- package/templates/branded-lite/dev/index.ts +246 -0
- package/templates/branded-lite/himalaya.content.json +3 -0
- package/templates/branded-lite/tier5-src/business-contact/index.ts +6 -0
- package/templates/branded-lite/tier5-src/himi-branded-lite-notifsettings/index.ts +39 -11
- package/templates/community-club/config.ts +7 -0
- package/templates/community-club/dev/index.ts +213 -0
- package/templates/community-club/himalaya.content.json +3 -0
- package/templates/community-club/tier5-src/business-contact/index.ts +6 -0
- package/templates/events-meetups/config.ts +7 -0
- package/templates/events-meetups/dev/index.ts +213 -0
- package/templates/events-meetups/himalaya.content.json +3 -0
- package/templates/events-meetups/tier5-src/business-contact/index.ts +6 -0
- package/templates/gym-fitness/config.ts +7 -0
- package/templates/gym-fitness/dev/index.ts +213 -0
- package/templates/gym-fitness/himalaya.content.json +3 -0
- package/templates/gym-fitness/tier5-src/business-contact/index.ts +6 -0
- package/templates/nonprofit-cause/config.ts +7 -0
- package/templates/nonprofit-cause/dev/index.ts +213 -0
- package/templates/nonprofit-cause/himalaya.content.json +3 -0
- package/templates/nonprofit-cause/tier5-src/business-contact/index.ts +6 -0
- package/templates/podcast-creator/config.ts +7 -0
- package/templates/podcast-creator/dev/index.ts +213 -0
- package/templates/podcast-creator/himalaya.content.json +3 -0
- package/templates/podcast-creator/tier5-src/business-contact/index.ts +6 -0
- package/templates/portfolio-creative/config.ts +7 -0
- package/templates/portfolio-creative/dev/index.ts +213 -0
- package/templates/portfolio-creative/himalaya.content.json +3 -0
- package/templates/portfolio-creative/tier5-src/business-contact/index.ts +6 -0
- package/templates/restaurant/config.ts +7 -0
- package/templates/restaurant/dev/index.ts +213 -0
- package/templates/restaurant/himalaya.content.json +3 -0
- package/templates/restaurant/tier5-src/business-contact/index.ts +6 -0
- package/templates/retail-store/config.ts +7 -0
- package/templates/retail-store/dev/index.ts +213 -0
- package/templates/retail-store/himalaya.content.json +3 -0
- package/templates/retail-store/tier5-src/business-contact/index.ts +6 -0
- package/templates/yoga-studio/config.ts +7 -0
- package/templates/yoga-studio/dev/index.ts +213 -0
- package/templates/yoga-studio/himalaya.content.json +3 -0
- package/templates/yoga-studio/tier5-src/business-contact/index.ts +6 -0
|
@@ -8117,6 +8117,252 @@ const SCREENS = runtimeSetting({
|
|
|
8117
8117
|
"bundleVersion": "0.0.1"
|
|
8118
8118
|
}
|
|
8119
8119
|
},
|
|
8120
|
+
"himi_business_contact": {
|
|
8121
|
+
"screenId": "himi_business_contact",
|
|
8122
|
+
"title": "Business contact",
|
|
8123
|
+
"renderer": "sdui_intent",
|
|
8124
|
+
"schemaVersion": 1,
|
|
8125
|
+
"cacheControl": {
|
|
8126
|
+
"maxAge": 0,
|
|
8127
|
+
"staleWhileRevalidate": 0
|
|
8128
|
+
},
|
|
8129
|
+
"payload": {
|
|
8130
|
+
"id": "himi_business_contact.root",
|
|
8131
|
+
"body": {
|
|
8132
|
+
"package": "himalaya",
|
|
8133
|
+
"type": "VStack",
|
|
8134
|
+
"props": {
|
|
8135
|
+
"spacing": 16,
|
|
8136
|
+
"alignment": "leading",
|
|
8137
|
+
"children": [
|
|
8138
|
+
{
|
|
8139
|
+
"id": "himi_business_contact.section",
|
|
8140
|
+
"body": {
|
|
8141
|
+
"package": "himalaya",
|
|
8142
|
+
"type": "VStack",
|
|
8143
|
+
"props": {
|
|
8144
|
+
"spacing": 12,
|
|
8145
|
+
"alignment": "leading",
|
|
8146
|
+
"children": [
|
|
8147
|
+
{
|
|
8148
|
+
"id": "himi_business_contact.section.title",
|
|
8149
|
+
"body": {
|
|
8150
|
+
"package": "himalaya",
|
|
8151
|
+
"type": "Text",
|
|
8152
|
+
"props": {
|
|
8153
|
+
"text": "Get in touch",
|
|
8154
|
+
"style": "title3",
|
|
8155
|
+
"collapseWhenEmpty": true
|
|
8156
|
+
}
|
|
8157
|
+
}
|
|
8158
|
+
},
|
|
8159
|
+
{
|
|
8160
|
+
"id": "himi_business_contact.section.message",
|
|
8161
|
+
"body": {
|
|
8162
|
+
"package": "himalaya",
|
|
8163
|
+
"type": "Button",
|
|
8164
|
+
"props": {
|
|
8165
|
+
"title": "Message",
|
|
8166
|
+
"style": "primary",
|
|
8167
|
+
"fullWidth": true,
|
|
8168
|
+
"action": {
|
|
8169
|
+
"actionId": "himi.open",
|
|
8170
|
+
"params": {
|
|
8171
|
+
"screenId": "himi_business_chat"
|
|
8172
|
+
}
|
|
8173
|
+
}
|
|
8174
|
+
}
|
|
8175
|
+
}
|
|
8176
|
+
},
|
|
8177
|
+
{
|
|
8178
|
+
"id": "himi_business_contact.section.directions_copy",
|
|
8179
|
+
"body": {
|
|
8180
|
+
"package": "himalaya",
|
|
8181
|
+
"type": "Text",
|
|
8182
|
+
"props": {
|
|
8183
|
+
"text": "Directions",
|
|
8184
|
+
"style": "body",
|
|
8185
|
+
"collapseWhenEmpty": true
|
|
8186
|
+
}
|
|
8187
|
+
},
|
|
8188
|
+
"modifiers": {
|
|
8189
|
+
"hidden": true
|
|
8190
|
+
}
|
|
8191
|
+
},
|
|
8192
|
+
{
|
|
8193
|
+
"id": "himi_business_contact.section.unavailable",
|
|
8194
|
+
"body": {
|
|
8195
|
+
"package": "himalaya",
|
|
8196
|
+
"type": "Text",
|
|
8197
|
+
"props": {
|
|
8198
|
+
"text": "Contact details unavailable",
|
|
8199
|
+
"style": "body",
|
|
8200
|
+
"collapseWhenEmpty": true
|
|
8201
|
+
}
|
|
8202
|
+
},
|
|
8203
|
+
"modifiers": {
|
|
8204
|
+
"hidden": true
|
|
8205
|
+
}
|
|
8206
|
+
},
|
|
8207
|
+
{
|
|
8208
|
+
"id": "himi_business_contact.section.member_count",
|
|
8209
|
+
"body": {
|
|
8210
|
+
"package": "himalaya",
|
|
8211
|
+
"type": "FragmentSlot",
|
|
8212
|
+
"props": {
|
|
8213
|
+
"casePath": "$service:businessContact.memberCountCase",
|
|
8214
|
+
"defaultCase": "unavailable",
|
|
8215
|
+
"cases": [
|
|
8216
|
+
{
|
|
8217
|
+
"id": "one",
|
|
8218
|
+
"content": {
|
|
8219
|
+
"id": "himi_business_contact.section.members_one",
|
|
8220
|
+
"body": {
|
|
8221
|
+
"package": "himalaya",
|
|
8222
|
+
"type": "HStack",
|
|
8223
|
+
"props": {
|
|
8224
|
+
"spacing": 4,
|
|
8225
|
+
"alignment": "center",
|
|
8226
|
+
"children": [
|
|
8227
|
+
{
|
|
8228
|
+
"id": "himi_business_contact.section.count_one",
|
|
8229
|
+
"body": {
|
|
8230
|
+
"package": "himalaya",
|
|
8231
|
+
"type": "Text",
|
|
8232
|
+
"props": {
|
|
8233
|
+
"text": "$service:businessContact.memberCount",
|
|
8234
|
+
"style": "footnote",
|
|
8235
|
+
"collapseWhenEmpty": true
|
|
8236
|
+
}
|
|
8237
|
+
}
|
|
8238
|
+
},
|
|
8239
|
+
{
|
|
8240
|
+
"id": "himi_business_contact.section.unit_one",
|
|
8241
|
+
"body": {
|
|
8242
|
+
"package": "himalaya",
|
|
8243
|
+
"type": "Text",
|
|
8244
|
+
"props": {
|
|
8245
|
+
"text": "member",
|
|
8246
|
+
"style": "footnote",
|
|
8247
|
+
"collapseWhenEmpty": true
|
|
8248
|
+
}
|
|
8249
|
+
}
|
|
8250
|
+
}
|
|
8251
|
+
]
|
|
8252
|
+
}
|
|
8253
|
+
}
|
|
8254
|
+
}
|
|
8255
|
+
},
|
|
8256
|
+
{
|
|
8257
|
+
"id": "other",
|
|
8258
|
+
"content": {
|
|
8259
|
+
"id": "himi_business_contact.section.members_other",
|
|
8260
|
+
"body": {
|
|
8261
|
+
"package": "himalaya",
|
|
8262
|
+
"type": "HStack",
|
|
8263
|
+
"props": {
|
|
8264
|
+
"spacing": 4,
|
|
8265
|
+
"alignment": "center",
|
|
8266
|
+
"children": [
|
|
8267
|
+
{
|
|
8268
|
+
"id": "himi_business_contact.section.count_other",
|
|
8269
|
+
"body": {
|
|
8270
|
+
"package": "himalaya",
|
|
8271
|
+
"type": "Text",
|
|
8272
|
+
"props": {
|
|
8273
|
+
"text": "$service:businessContact.memberCount",
|
|
8274
|
+
"style": "footnote",
|
|
8275
|
+
"collapseWhenEmpty": true
|
|
8276
|
+
}
|
|
8277
|
+
}
|
|
8278
|
+
},
|
|
8279
|
+
{
|
|
8280
|
+
"id": "himi_business_contact.section.unit_other",
|
|
8281
|
+
"body": {
|
|
8282
|
+
"package": "himalaya",
|
|
8283
|
+
"type": "Text",
|
|
8284
|
+
"props": {
|
|
8285
|
+
"text": "members",
|
|
8286
|
+
"style": "footnote",
|
|
8287
|
+
"collapseWhenEmpty": true
|
|
8288
|
+
}
|
|
8289
|
+
}
|
|
8290
|
+
}
|
|
8291
|
+
]
|
|
8292
|
+
}
|
|
8293
|
+
}
|
|
8294
|
+
}
|
|
8295
|
+
},
|
|
8296
|
+
{
|
|
8297
|
+
"id": "unavailable",
|
|
8298
|
+
"content": {
|
|
8299
|
+
"id": "himi_business_contact.section.members_unavailable",
|
|
8300
|
+
"body": {
|
|
8301
|
+
"package": "himalaya",
|
|
8302
|
+
"type": "Text",
|
|
8303
|
+
"props": {
|
|
8304
|
+
"text": "Member count unavailable",
|
|
8305
|
+
"style": "footnote",
|
|
8306
|
+
"collapseWhenEmpty": true
|
|
8307
|
+
}
|
|
8308
|
+
}
|
|
8309
|
+
}
|
|
8310
|
+
}
|
|
8311
|
+
]
|
|
8312
|
+
}
|
|
8313
|
+
},
|
|
8314
|
+
"modifiers": {
|
|
8315
|
+
"hidden": true
|
|
8316
|
+
}
|
|
8317
|
+
},
|
|
8318
|
+
{
|
|
8319
|
+
"id": "himi_business_contact.section.feedback",
|
|
8320
|
+
"body": {
|
|
8321
|
+
"package": "himalaya",
|
|
8322
|
+
"type": "Text",
|
|
8323
|
+
"props": {
|
|
8324
|
+
"text": "$service:businessContact.message",
|
|
8325
|
+
"style": "footnote",
|
|
8326
|
+
"collapseWhenEmpty": true
|
|
8327
|
+
}
|
|
8328
|
+
}
|
|
8329
|
+
}
|
|
8330
|
+
]
|
|
8331
|
+
}
|
|
8332
|
+
}
|
|
8333
|
+
}
|
|
8334
|
+
]
|
|
8335
|
+
}
|
|
8336
|
+
},
|
|
8337
|
+
"modifiers": {
|
|
8338
|
+
"background": {
|
|
8339
|
+
"token": "surfacePrimary"
|
|
8340
|
+
},
|
|
8341
|
+
"padding": {
|
|
8342
|
+
"leading": 20,
|
|
8343
|
+
"trailing": 20,
|
|
8344
|
+
"top": 18,
|
|
8345
|
+
"bottom": 28
|
|
8346
|
+
},
|
|
8347
|
+
"onAppear": {
|
|
8348
|
+
"actionId": "tier5.businessContact.load",
|
|
8349
|
+
"args": {
|
|
8350
|
+
"showMemberCount": false
|
|
8351
|
+
}
|
|
8352
|
+
}
|
|
8353
|
+
}
|
|
8354
|
+
},
|
|
8355
|
+
"logicBundle": {
|
|
8356
|
+
"url": "http://localhost:8190/v1/bundles/business-contact?integrity=",
|
|
8357
|
+
"integrity": "",
|
|
8358
|
+
"contentType": "application/javascript+ts-bundle",
|
|
8359
|
+
"declaredCapabilities": [
|
|
8360
|
+
"open_url"
|
|
8361
|
+
],
|
|
8362
|
+
"minBinaryVersion": "0.1.0",
|
|
8363
|
+
"bundleVersion": "0.0.1"
|
|
8364
|
+
}
|
|
8365
|
+
},
|
|
8120
8366
|
"himi_appearance": {
|
|
8121
8367
|
"screenId": "himi_appearance",
|
|
8122
8368
|
"renderer": "sdui_intent",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createBusinessContactService } from "@himalaya/screens";
|
|
2
|
+
|
|
3
|
+
// Contact values and the optional public total are build-time source evidence.
|
|
4
|
+
// No owner API, device location, or cross-site source URL is read by this worker.
|
|
5
|
+
const svc = createBusinessContactService();
|
|
6
|
+
export { svc };
|
|
@@ -9,6 +9,7 @@ import { withOnlineWrites } from "../_shared/online-actions.js";
|
|
|
9
9
|
import { defineService as registerService } from "@himalaya/state";
|
|
10
10
|
import { withEmptyFlags } from "../_shared/empty-flags.js";
|
|
11
11
|
import { stashCopy } from "../_shared/himi-copy.js";
|
|
12
|
+
import { memberAccess, assertMemberAccess, type MemberAccess } from "../_shared/member-access.js";
|
|
12
13
|
import { LOADING, loaded, loadFailed, type LoadCopy, type LoadFlags } from "../_shared/branded-load-state.js";
|
|
13
14
|
import {
|
|
14
15
|
getNotificationTopics,
|
|
@@ -33,6 +34,7 @@ interface Row { id: string; name: string; subtitle: string; note: string; on: bo
|
|
|
33
34
|
/** Inverse of `locked` (hiddenWhen hides on TRUE) and the plain On/Off a locked row shows. */
|
|
34
35
|
notLocked: boolean; stateLabel: string }
|
|
35
36
|
interface S extends LoadFlags {
|
|
37
|
+
preferencesMember: MemberAccess | null;
|
|
36
38
|
topics: Row[]; emptyText: string; actionMessage: string;
|
|
37
39
|
isMock: boolean; notMock: boolean; /** #2849 — hiddenWhen() hides on TRUE, so these are inverted: the empty-state banner
|
|
38
40
|
* shows only when the site really has none, and the unavailable one only when the
|
|
@@ -94,32 +96,55 @@ const COPY: LoadCopy<Row> = {
|
|
|
94
96
|
};
|
|
95
97
|
|
|
96
98
|
const defineService = withOnlineWrites(registerService, ["toggle"], { messageFields: ["actionMessage"] });
|
|
99
|
+
const INITIAL = { ...LOADING, topics: [] as Row[], emptyText: "", actionMessage: "", preferencesMember: null };
|
|
100
|
+
const signInRequired = () => new Error("Unauthenticated: sign in to manage notifications");
|
|
101
|
+
let loadVersion = 0;
|
|
97
102
|
const svc = defineService<S, {
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
prepare: (s: S) => S;
|
|
104
|
+
load: (s: S, arg?: unknown) => Promise<S | undefined>;
|
|
105
|
+
toggle: (s: S, p?: { id?: string; value?: unknown }) => Promise<S | undefined>;
|
|
100
106
|
}>("himiBrandedNotifSettings", withEmptyFlags({
|
|
101
|
-
state:
|
|
107
|
+
state: INITIAL,
|
|
102
108
|
actions: {
|
|
103
|
-
|
|
109
|
+
prepare: (s) => ({ ...s, ...INITIAL }),
|
|
110
|
+
load: async (s, arg): Promise<S | undefined> => {
|
|
104
111
|
stashCopy(arg);
|
|
112
|
+
const version = ++loadVersion;
|
|
113
|
+
await svc.prepare();
|
|
105
114
|
try {
|
|
115
|
+
const member = await memberAccess();
|
|
116
|
+
if (!member.email) throw signInRequired();
|
|
106
117
|
const [topicsRes, prefsRes] = await Promise.all([
|
|
107
118
|
getNotificationTopics(),
|
|
108
|
-
getMyNotificationPreferences()
|
|
119
|
+
getMyNotificationPreferences(),
|
|
109
120
|
]);
|
|
121
|
+
await assertMemberAccess(member);
|
|
110
122
|
const prefs = readPreferences(prefsRes);
|
|
111
123
|
const topics = readTopics(topicsRes).map((t) => norm(t, prefs));
|
|
112
|
-
return { ...s, ...loaded("topics", topics, COPY), actionMessage: "" };
|
|
113
|
-
} catch
|
|
114
|
-
|
|
124
|
+
return version === loadVersion ? { ...s, ...loaded("topics", topics, COPY), preferencesMember: member, actionMessage: "" } : undefined;
|
|
125
|
+
} catch {
|
|
126
|
+
const member = await memberAccess();
|
|
127
|
+
// An authenticated denial is not repaired by an endless sign-in loop.
|
|
128
|
+
const failure = member.email ? new Error(COPY.error) : signInRequired();
|
|
129
|
+
return version === loadVersion ? { ...s, ...loadFailed("topics", failure, COPY), preferencesMember: null, actionMessage: "" } : undefined;
|
|
115
130
|
}
|
|
116
131
|
},
|
|
117
132
|
// Flip one topic's On/Off. Optimistic (updates the row immediately); the real
|
|
118
133
|
// upsert is best-effort and a no-op on sample rows.
|
|
119
|
-
toggle: async (s, p) => {
|
|
134
|
+
toggle: async (s, p): Promise<S | undefined> => {
|
|
120
135
|
const id = p?.id;
|
|
121
136
|
const target = s.topics.find((r) => r.id === id);
|
|
122
|
-
if (!id || !target || target.locked) return
|
|
137
|
+
if (s.busy || !id || !target || target.locked) return undefined;
|
|
138
|
+
if (!s.isMock) {
|
|
139
|
+
try {
|
|
140
|
+
if (!s.preferencesMember) return undefined;
|
|
141
|
+
await assertMemberAccess(s.preferencesMember);
|
|
142
|
+
if (svc.getState().preferencesMember !== s.preferencesMember) return undefined;
|
|
143
|
+
} catch {
|
|
144
|
+
await svc.load();
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
123
148
|
let nextOn = true;
|
|
124
149
|
const topics = s.topics.map((r) => {
|
|
125
150
|
if (r.id !== id) return r;
|
|
@@ -136,10 +161,13 @@ const svc = defineService<S, {
|
|
|
136
161
|
{ topicId: id, channel: CHANNEL, stateData: { state: muteStatusFor(nextOn) } },
|
|
137
162
|
]);
|
|
138
163
|
} catch { /* keep the optimistic state */ }
|
|
164
|
+
try { await assertMemberAccess(s.preferencesMember!); }
|
|
165
|
+
catch { await svc.load(); return undefined; }
|
|
139
166
|
}
|
|
140
|
-
return { ...
|
|
167
|
+
return svc.getState().preferencesMember === s.preferencesMember ? { ...svc.getState(), topics } : undefined;
|
|
141
168
|
},
|
|
142
169
|
},
|
|
143
170
|
}, { topics: "noTopics" }));
|
|
171
|
+
svc.prepare();
|
|
144
172
|
svc.load();
|
|
145
173
|
export { svc };
|
|
@@ -81,6 +81,13 @@ export default defineApp({
|
|
|
81
81
|
"parentScreenId": "himi_account",
|
|
82
82
|
"tabId": "profile"
|
|
83
83
|
},
|
|
84
|
+
{
|
|
85
|
+
"screenId": "himi_business_contact",
|
|
86
|
+
"isPublic": true,
|
|
87
|
+
"paramKeys": [],
|
|
88
|
+
"parentScreenId": "himi_account",
|
|
89
|
+
"tabId": "profile"
|
|
90
|
+
},
|
|
84
91
|
{
|
|
85
92
|
"screenId": "himi_appearance",
|
|
86
93
|
"isPublic": true,
|
|
@@ -5948,6 +5948,219 @@ const SCREENS = runtimeSetting({
|
|
|
5948
5948
|
"bundleVersion": "0.0.1"
|
|
5949
5949
|
}
|
|
5950
5950
|
},
|
|
5951
|
+
"himi_business_contact": {
|
|
5952
|
+
"screenId": "himi_business_contact",
|
|
5953
|
+
"title": "Business contact",
|
|
5954
|
+
"renderer": "sdui_intent",
|
|
5955
|
+
"schemaVersion": 1,
|
|
5956
|
+
"cacheControl": {
|
|
5957
|
+
"maxAge": 0,
|
|
5958
|
+
"staleWhileRevalidate": 0
|
|
5959
|
+
},
|
|
5960
|
+
"payload": {
|
|
5961
|
+
"id": "himi_business_contact.root",
|
|
5962
|
+
"body": {
|
|
5963
|
+
"package": "himalaya",
|
|
5964
|
+
"type": "VStack",
|
|
5965
|
+
"props": {
|
|
5966
|
+
"spacing": 16,
|
|
5967
|
+
"alignment": "leading",
|
|
5968
|
+
"children": [
|
|
5969
|
+
{
|
|
5970
|
+
"id": "himi_business_contact.section",
|
|
5971
|
+
"body": {
|
|
5972
|
+
"package": "himalaya",
|
|
5973
|
+
"type": "VStack",
|
|
5974
|
+
"props": {
|
|
5975
|
+
"spacing": 12,
|
|
5976
|
+
"alignment": "leading",
|
|
5977
|
+
"children": [
|
|
5978
|
+
{
|
|
5979
|
+
"id": "himi_business_contact.section.directions_copy",
|
|
5980
|
+
"body": {
|
|
5981
|
+
"package": "himalaya",
|
|
5982
|
+
"type": "Text",
|
|
5983
|
+
"props": {
|
|
5984
|
+
"text": "Directions",
|
|
5985
|
+
"style": "body",
|
|
5986
|
+
"collapseWhenEmpty": true
|
|
5987
|
+
}
|
|
5988
|
+
},
|
|
5989
|
+
"modifiers": {
|
|
5990
|
+
"hidden": true
|
|
5991
|
+
}
|
|
5992
|
+
},
|
|
5993
|
+
{
|
|
5994
|
+
"id": "himi_business_contact.section.unavailable",
|
|
5995
|
+
"body": {
|
|
5996
|
+
"package": "himalaya",
|
|
5997
|
+
"type": "Text",
|
|
5998
|
+
"props": {
|
|
5999
|
+
"text": "Contact details unavailable",
|
|
6000
|
+
"style": "body",
|
|
6001
|
+
"collapseWhenEmpty": true
|
|
6002
|
+
}
|
|
6003
|
+
}
|
|
6004
|
+
},
|
|
6005
|
+
{
|
|
6006
|
+
"id": "himi_business_contact.section.member_count",
|
|
6007
|
+
"body": {
|
|
6008
|
+
"package": "himalaya",
|
|
6009
|
+
"type": "FragmentSlot",
|
|
6010
|
+
"props": {
|
|
6011
|
+
"casePath": "$service:businessContact.memberCountCase",
|
|
6012
|
+
"defaultCase": "unavailable",
|
|
6013
|
+
"cases": [
|
|
6014
|
+
{
|
|
6015
|
+
"id": "one",
|
|
6016
|
+
"content": {
|
|
6017
|
+
"id": "himi_business_contact.section.members_one",
|
|
6018
|
+
"body": {
|
|
6019
|
+
"package": "himalaya",
|
|
6020
|
+
"type": "HStack",
|
|
6021
|
+
"props": {
|
|
6022
|
+
"spacing": 4,
|
|
6023
|
+
"alignment": "center",
|
|
6024
|
+
"children": [
|
|
6025
|
+
{
|
|
6026
|
+
"id": "himi_business_contact.section.count_one",
|
|
6027
|
+
"body": {
|
|
6028
|
+
"package": "himalaya",
|
|
6029
|
+
"type": "Text",
|
|
6030
|
+
"props": {
|
|
6031
|
+
"text": "$service:businessContact.memberCount",
|
|
6032
|
+
"style": "footnote",
|
|
6033
|
+
"collapseWhenEmpty": true
|
|
6034
|
+
}
|
|
6035
|
+
}
|
|
6036
|
+
},
|
|
6037
|
+
{
|
|
6038
|
+
"id": "himi_business_contact.section.unit_one",
|
|
6039
|
+
"body": {
|
|
6040
|
+
"package": "himalaya",
|
|
6041
|
+
"type": "Text",
|
|
6042
|
+
"props": {
|
|
6043
|
+
"text": "member",
|
|
6044
|
+
"style": "footnote",
|
|
6045
|
+
"collapseWhenEmpty": true
|
|
6046
|
+
}
|
|
6047
|
+
}
|
|
6048
|
+
}
|
|
6049
|
+
]
|
|
6050
|
+
}
|
|
6051
|
+
}
|
|
6052
|
+
}
|
|
6053
|
+
},
|
|
6054
|
+
{
|
|
6055
|
+
"id": "other",
|
|
6056
|
+
"content": {
|
|
6057
|
+
"id": "himi_business_contact.section.members_other",
|
|
6058
|
+
"body": {
|
|
6059
|
+
"package": "himalaya",
|
|
6060
|
+
"type": "HStack",
|
|
6061
|
+
"props": {
|
|
6062
|
+
"spacing": 4,
|
|
6063
|
+
"alignment": "center",
|
|
6064
|
+
"children": [
|
|
6065
|
+
{
|
|
6066
|
+
"id": "himi_business_contact.section.count_other",
|
|
6067
|
+
"body": {
|
|
6068
|
+
"package": "himalaya",
|
|
6069
|
+
"type": "Text",
|
|
6070
|
+
"props": {
|
|
6071
|
+
"text": "$service:businessContact.memberCount",
|
|
6072
|
+
"style": "footnote",
|
|
6073
|
+
"collapseWhenEmpty": true
|
|
6074
|
+
}
|
|
6075
|
+
}
|
|
6076
|
+
},
|
|
6077
|
+
{
|
|
6078
|
+
"id": "himi_business_contact.section.unit_other",
|
|
6079
|
+
"body": {
|
|
6080
|
+
"package": "himalaya",
|
|
6081
|
+
"type": "Text",
|
|
6082
|
+
"props": {
|
|
6083
|
+
"text": "members",
|
|
6084
|
+
"style": "footnote",
|
|
6085
|
+
"collapseWhenEmpty": true
|
|
6086
|
+
}
|
|
6087
|
+
}
|
|
6088
|
+
}
|
|
6089
|
+
]
|
|
6090
|
+
}
|
|
6091
|
+
}
|
|
6092
|
+
}
|
|
6093
|
+
},
|
|
6094
|
+
{
|
|
6095
|
+
"id": "unavailable",
|
|
6096
|
+
"content": {
|
|
6097
|
+
"id": "himi_business_contact.section.members_unavailable",
|
|
6098
|
+
"body": {
|
|
6099
|
+
"package": "himalaya",
|
|
6100
|
+
"type": "Text",
|
|
6101
|
+
"props": {
|
|
6102
|
+
"text": "Member count unavailable",
|
|
6103
|
+
"style": "footnote",
|
|
6104
|
+
"collapseWhenEmpty": true
|
|
6105
|
+
}
|
|
6106
|
+
}
|
|
6107
|
+
}
|
|
6108
|
+
}
|
|
6109
|
+
]
|
|
6110
|
+
}
|
|
6111
|
+
},
|
|
6112
|
+
"modifiers": {
|
|
6113
|
+
"hidden": true
|
|
6114
|
+
}
|
|
6115
|
+
},
|
|
6116
|
+
{
|
|
6117
|
+
"id": "himi_business_contact.section.feedback",
|
|
6118
|
+
"body": {
|
|
6119
|
+
"package": "himalaya",
|
|
6120
|
+
"type": "Text",
|
|
6121
|
+
"props": {
|
|
6122
|
+
"text": "$service:businessContact.message",
|
|
6123
|
+
"style": "footnote",
|
|
6124
|
+
"collapseWhenEmpty": true
|
|
6125
|
+
}
|
|
6126
|
+
}
|
|
6127
|
+
}
|
|
6128
|
+
]
|
|
6129
|
+
}
|
|
6130
|
+
}
|
|
6131
|
+
}
|
|
6132
|
+
]
|
|
6133
|
+
}
|
|
6134
|
+
},
|
|
6135
|
+
"modifiers": {
|
|
6136
|
+
"background": {
|
|
6137
|
+
"token": "surfacePrimary"
|
|
6138
|
+
},
|
|
6139
|
+
"padding": {
|
|
6140
|
+
"leading": 20,
|
|
6141
|
+
"trailing": 20,
|
|
6142
|
+
"top": 18,
|
|
6143
|
+
"bottom": 28
|
|
6144
|
+
},
|
|
6145
|
+
"onAppear": {
|
|
6146
|
+
"actionId": "tier5.businessContact.load",
|
|
6147
|
+
"args": {
|
|
6148
|
+
"showMemberCount": false
|
|
6149
|
+
}
|
|
6150
|
+
}
|
|
6151
|
+
}
|
|
6152
|
+
},
|
|
6153
|
+
"logicBundle": {
|
|
6154
|
+
"url": "http://localhost:8190/v1/bundles/business-contact?integrity=",
|
|
6155
|
+
"integrity": "",
|
|
6156
|
+
"contentType": "application/javascript+ts-bundle",
|
|
6157
|
+
"declaredCapabilities": [
|
|
6158
|
+
"open_url"
|
|
6159
|
+
],
|
|
6160
|
+
"minBinaryVersion": "0.1.0",
|
|
6161
|
+
"bundleVersion": "0.0.1"
|
|
6162
|
+
}
|
|
6163
|
+
},
|
|
5951
6164
|
"himi_appearance": {
|
|
5952
6165
|
"screenId": "himi_appearance",
|
|
5953
6166
|
"renderer": "sdui_intent",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createBusinessContactService } from "@himalaya/screens";
|
|
2
|
+
|
|
3
|
+
// Contact values and the optional public total are build-time source evidence.
|
|
4
|
+
// No owner API, device location, or cross-site source URL is read by this worker.
|
|
5
|
+
const svc = createBusinessContactService();
|
|
6
|
+
export { svc };
|
|
@@ -81,6 +81,13 @@ export default defineApp({
|
|
|
81
81
|
"parentScreenId": "himi_account",
|
|
82
82
|
"tabId": "profile"
|
|
83
83
|
},
|
|
84
|
+
{
|
|
85
|
+
"screenId": "himi_business_contact",
|
|
86
|
+
"isPublic": true,
|
|
87
|
+
"paramKeys": [],
|
|
88
|
+
"parentScreenId": "himi_account",
|
|
89
|
+
"tabId": "profile"
|
|
90
|
+
},
|
|
84
91
|
{
|
|
85
92
|
"screenId": "himi_appearance",
|
|
86
93
|
"isPublic": true,
|