@wix/himalaya-cli 0.1026.0 → 0.1027.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/builder.d.ts +9 -0
- package/dist/cli.mjs +1052 -653
- package/dist/preview-assets.generated.bin +0 -0
- package/guides/app-config.md +6 -0
- package/guides/headless-loop.md +3 -1
- package/package.json +2 -2
- package/templates/beauty-salon/dev/index.ts +331 -199
- package/templates/beauty-salon/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/beauty-salon/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/beauty-salon-owner/dev/index.ts +857 -458
- package/templates/beauty-salon-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/beauty-salon-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/branded-lite/dev/index.ts +1539 -623
- package/templates/branded-lite/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/branded-lite/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/community-club/dev/index.ts +237 -142
- package/templates/community-club/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/community-club/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/community-club-owner/dev/index.ts +857 -458
- package/templates/community-club-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/community-club-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/events-meetups/dev/index.ts +202 -129
- package/templates/events-meetups/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/events-meetups/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/events-meetups-owner/dev/index.ts +815 -458
- package/templates/events-meetups-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/events-meetups-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/gym-fitness/dev/index.ts +461 -212
- package/templates/gym-fitness/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/gym-fitness/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/gym-fitness-owner/dev/index.ts +758 -338
- package/templates/gym-fitness-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/gym-fitness-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/himi-chat/dev/index.ts +26 -1
- package/templates/nonprofit-cause/dev/index.ts +246 -153
- package/templates/nonprofit-cause/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/nonprofit-cause/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/nonprofit-cause-owner/dev/index.ts +716 -338
- package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/owner-lite/dev/index.ts +758 -338
- package/templates/owner-lite/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/owner-lite/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/podcast-creator/dev/index.ts +255 -164
- package/templates/podcast-creator/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/podcast-creator/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/podcast-creator-owner/dev/index.ts +857 -458
- package/templates/podcast-creator-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/podcast-creator-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/portfolio-creative/dev/index.ts +287 -175
- package/templates/portfolio-creative/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/portfolio-creative/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/portfolio-creative-owner/dev/index.ts +857 -458
- package/templates/portfolio-creative-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/portfolio-creative-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/restaurant/dev/index.ts +200 -126
- package/templates/restaurant/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/restaurant/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/restaurant-owner/dev/index.ts +758 -338
- package/templates/restaurant-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/restaurant-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/retail-store/dev/index.ts +113 -138
- package/templates/retail-store/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/retail-store/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/retail-store-owner/dev/index.ts +716 -338
- package/templates/retail-store-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/retail-store-owner/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/surface-showcase/dev/index.ts +27 -0
- package/templates/yoga-studio/dev/index.ts +427 -198
- package/templates/yoga-studio/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/yoga-studio/tier5-src/_shared/collection-service.ts +28 -3
- package/templates/yoga-studio-owner/dev/index.ts +716 -338
- package/templates/yoga-studio-owner/tier5-src/_shared/collection-contract.ts +18 -8
- package/templates/yoga-studio-owner/tier5-src/_shared/collection-service.ts +28 -3
|
@@ -8,6 +8,9 @@ export interface CollectionConfig {
|
|
|
8
8
|
image?: string;
|
|
9
9
|
filter?: string;
|
|
10
10
|
filterValues?: string[];
|
|
11
|
+
/** A state key holding `{ label }` rows (e.g. a worker's full category list) whose
|
|
12
|
+
* labels are filter choices even when no loaded row carries them yet. */
|
|
13
|
+
filterValuesFrom?: string;
|
|
11
14
|
searchPlaceholder?: string;
|
|
12
15
|
sortLabels?: { default: string; az: string; za: string };
|
|
13
16
|
metadata?: string[];
|
|
@@ -20,15 +23,22 @@ export interface CollectionConfig {
|
|
|
20
23
|
reviewSelectedAction?: string;
|
|
21
24
|
/** Optional comfortable grid media height for immersive visual catalogs. */
|
|
22
25
|
gridImageHeight?: number;
|
|
26
|
+
/** The card's primary verb, shown as a visible button beside the overflow.
|
|
27
|
+
* `screenId` opens that screen with the row id; without it the verb reuses the
|
|
28
|
+
* row's own tap action (the detail screen that owns the verb). */
|
|
29
|
+
primaryVerb?: { label: string; screenId?: string };
|
|
23
30
|
}
|
|
31
|
+
/** At or below this many records, with no query/filter narrowing them and no further
|
|
32
|
+
* page, the list/grid toggle, Refine, chips, search and count are noise. */
|
|
33
|
+
export const COLLECTION_CHROME_MIN_ITEMS = 4;
|
|
24
34
|
export const COLLECTIONS: Record<string, CollectionConfig> = {
|
|
25
35
|
himiStoreShop: { rows: 'results', title: 'name', subtitle: 'subtitle', image: 'image', view: 'grid', backendQuery: true },
|
|
26
|
-
himiBookingServices: { rows: 'results', title: 'name', subtitle: 'subtitle', image: 'image', filter: 'category', view: 'grid', backendQuery: true, searchPlaceholder: 'Service name starts with…' },
|
|
36
|
+
himiBookingServices: { rows: 'results', title: 'name', subtitle: 'subtitle', image: 'image', filter: 'category', view: 'grid', backendQuery: true, searchPlaceholder: 'Service name starts with…', primaryVerb: { label: 'Book', screenId: 'himi_time' } },
|
|
27
37
|
himiBookingBookings: { rows: 'rows', title: 'title', subtitle: 'subtitle', metadata: ['status'], view: 'list', backendQuery: true,
|
|
28
38
|
defaultFilter: 'value:Upcoming', searchPlaceholder: 'Exact booking ID', filterValues: ['Upcoming', 'Past', 'Cancelled'],
|
|
29
39
|
sortLabels: { default: 'Soonest', az: 'Oldest', za: 'Latest' } },
|
|
30
|
-
himiEvents: { rows: 'results', title: 'title', subtitle: 'dateLine', image: 'image', view: 'grid', backendQuery: true, searchPlaceholder: 'Exact event title', filterValues: ['Upcoming', 'Past'], sortLabels: { default: 'Date', az: 'Title A–Z', za: 'Title Z–A' } },
|
|
31
|
-
himiBlogFeed: { rows: 'posts', title: 'title', subtitle: 'excerpt', image: 'image', view: 'grid' },
|
|
40
|
+
himiEvents: { rows: 'results', title: 'title', subtitle: 'dateLine', image: 'image', view: 'grid', backendQuery: true, searchPlaceholder: 'Exact event title', filterValues: ['Upcoming', 'Past'], sortLabels: { default: 'Date', az: 'Title A–Z', za: 'Title Z–A' }, primaryVerb: { label: 'Register' } },
|
|
41
|
+
himiBlogFeed: { rows: 'posts', title: 'title', subtitle: 'excerpt', image: 'image', filter: 'category', filterValuesFrom: 'categories', view: 'grid' },
|
|
32
42
|
himiOwnerLiteProducts: { rows: 'products', title: 'name', subtitle: 'price', image: 'image', view: 'grid', backendQuery: true },
|
|
33
43
|
himiOwnerModules: { instanceInput: 'module', rows: 'rows', title: 'title', subtitle: 'subtitle', image: 'image', filter: 'statusLabel', view: 'list', paged: true, reviewAction: 'prepareRecord', reviewSelectedAction: 'prepareSelected' },
|
|
34
44
|
himiOwnerLiteServices: { rows: 'services', title: 'name', subtitle: 'subtitle', view: 'list', backendQuery: true, searchPlaceholder: 'Service name starts with…' },
|
|
@@ -45,14 +55,14 @@ export const COLLECTIONS: Record<string, CollectionConfig> = {
|
|
|
45
55
|
sortLabels: { default: 'Newest', az: 'Oldest', za: 'Order # ↓' } },
|
|
46
56
|
himiBrandedPlans: { rows: 'rows', title: 'name', subtitle: 'description', metadata: ['priceLine', 'periodLine', 'trialBadge', 'perk1', 'perk2', 'perk3'], view: 'grid' },
|
|
47
57
|
himiBrandedPrograms: { rows: 'rows', title: 'name', subtitle: 'description', image: 'image', view: 'grid' },
|
|
48
|
-
himiBrandedCoupons: { rows: 'coupons', title: 'name', subtitle: 'subtitle', view: 'list' },
|
|
58
|
+
himiBrandedCoupons: { rows: 'coupons', title: 'name', subtitle: 'subtitle', view: 'list', primaryVerb: { label: 'Get code' } },
|
|
49
59
|
himiBrandedNotifications: { rows: 'items', title: 'name', subtitle: 'subtitle', image: 'photo', metadata: ['unreadDot'], view: 'list' },
|
|
50
|
-
himiBrandedLoyalty: { rows: 'rewards', title: 'name', subtitle: 'description', view: 'grid' },
|
|
60
|
+
himiBrandedLoyalty: { rows: 'rewards', title: 'name', subtitle: 'description', view: 'grid', primaryVerb: { label: 'Redeem' } },
|
|
51
61
|
himiBrandedReviews: { rows: 'reviews', title: 'title', subtitle: 'body', metadata: ['author', 'stars'], view: 'list' },
|
|
52
62
|
himiBrandedPortfolio: { rows: 'projects', title: 'title', subtitle: 'subtitle', image: 'image', view: 'grid', gridImageHeight: 180 },
|
|
53
63
|
himiBrandedInvoices: { rows: 'invoices', title: 'title', subtitle: 'subtitle', view: 'list' },
|
|
54
64
|
himiBrandedBadges: { rows: 'badges', title: 'name', subtitle: 'description', view: 'grid' },
|
|
55
|
-
himiBrandedDonations: { rows: 'campaigns', title: 'name', subtitle: 'description', view: 'grid' },
|
|
65
|
+
himiBrandedDonations: { rows: 'campaigns', title: 'name', subtitle: 'description', view: 'grid', primaryVerb: { label: 'Donate' } },
|
|
56
66
|
himiBrandedGiftCards: { rows: 'cards', title: 'name', subtitle: 'description', view: 'grid' },
|
|
57
67
|
himiBrandedVideos: { rows: 'channels', title: 'title', subtitle: 'description', view: 'grid' },
|
|
58
68
|
himiBrandedPodcasts: { rows: 'episodes', title: 'title', subtitle: 'subtitle', image: 'image', metadata: ['progressLabel'], view: 'list' },
|
|
@@ -114,7 +124,7 @@ export function collectionTitle(row: CollectionRow, config: CollectionConfig): s
|
|
|
114
124
|
return scalar(row[config.title]) || scalar(row.title) || scalar(row.name) || scalar(row.display) || scalar(row.label);
|
|
115
125
|
}
|
|
116
126
|
/** Does not mutate domain rows, paging, or domain-derived state. */
|
|
117
|
-
export function projectCollection(source: CollectionRow[], config: CollectionConfig, prefs: CollectionPreferences, backendQuery = false) {
|
|
127
|
+
export function projectCollection(source: CollectionRow[], config: CollectionConfig, prefs: CollectionPreferences, backendQuery = false, knownFilters: string[] = []) {
|
|
118
128
|
const query = prefs.query.trim().toLocaleLowerCase();
|
|
119
129
|
const unique = new Set<string>();
|
|
120
130
|
// Menu sections describe their following items; they are not actionable
|
|
@@ -130,7 +140,7 @@ export function projectCollection(source: CollectionRow[], config: CollectionCon
|
|
|
130
140
|
if (unique.has(id)) return false;
|
|
131
141
|
unique.add(id); return true;
|
|
132
142
|
});
|
|
133
|
-
const filters = config.filterValues ?? [...new Set(rows.map(row => config.filter ? scalar(row[config.filter]) : '').filter(Boolean))].sort();
|
|
143
|
+
const filters = config.filterValues ?? [...new Set([...knownFilters, ...rows.map(row => config.filter ? scalar(row[config.filter]) : '')].filter(Boolean))].sort();
|
|
134
144
|
const visible = rows.filter(row => {
|
|
135
145
|
if (backendQuery) return true;
|
|
136
146
|
if (prefs.filter === 'saved' && !prefs.savedIds.includes(collectionId(row))) return false;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineService as register, type ServiceDefinition } from '@himalaya/state';
|
|
2
|
-
import { COLLECTIONS, normalizeCollection, projectCollection, collectionId, type CollectionRow } from './collection-contract.js';
|
|
2
|
+
import { COLLECTIONS, COLLECTION_CHROME_MIN_ITEMS, initialCollection, normalizeCollection, projectCollection, collectionId, type CollectionRow } from './collection-contract.js';
|
|
3
3
|
import { localPreferences, type PreferenceRuntime } from './local-preferences.js';
|
|
4
4
|
import { copyParam, stashCopy } from './himi-copy.js';
|
|
5
5
|
import { createCollectionQuery, type CollectionQuerySource, type CollectionQueryState } from './collection-query.js';
|
|
@@ -54,6 +54,14 @@ export function decorateCollection(name: string, def: { state: State; actions?:
|
|
|
54
54
|
/** Navigation can open a collection in a useful, reviewable context. Keep
|
|
55
55
|
* this input additive and constrained to the same criteria the collection UI
|
|
56
56
|
* can select; arbitrary route values must never become backend filters. */
|
|
57
|
+
/** Labels of the worker-listed filter choices (`filterValuesFrom`), minus the "All" row. */
|
|
58
|
+
const listedFilters = (state: State): string[] => config.filterValuesFrom && Array.isArray(state[config.filterValuesFrom])
|
|
59
|
+
? (state[config.filterValuesFrom] as unknown[]).flatMap(row => {
|
|
60
|
+
const r = row && typeof row === 'object' ? row as Record<string, unknown> : {};
|
|
61
|
+
return typeof r.label === 'string' && r.id !== '' ? [r.label] : [];
|
|
62
|
+
})
|
|
63
|
+
: [];
|
|
64
|
+
let pendingFilter = '';
|
|
57
65
|
const applyNavigationCriteria = (arg: unknown, state: State): boolean => {
|
|
58
66
|
const input = object(arg);
|
|
59
67
|
let changed = false;
|
|
@@ -70,9 +78,14 @@ export function decorateCollection(name: string, def: { state: State; actions?:
|
|
|
70
78
|
const configured = config.filterValues ?? [];
|
|
71
79
|
const rows = Array.isArray(state[config.rows]) ? state[config.rows] as CollectionRow[] : [];
|
|
72
80
|
const derived = config.filter ? rows.map(row => String(row[config.filter!] ?? '')).filter(Boolean) : [];
|
|
81
|
+
const known = listedFilters(state);
|
|
73
82
|
const allowed = filter === 'all' || filter === 'saved' ||
|
|
74
|
-
(filter.startsWith('value:') && [...configured, ...derived].includes(filter.slice(6)));
|
|
83
|
+
(filter.startsWith('value:') && [...configured, ...derived, ...known].includes(filter.slice(6)));
|
|
75
84
|
if (allowed) { prefs.filter = filter; changed = true; }
|
|
85
|
+
// A worker-listed choice (e.g. a blog category) may not have loaded yet at boot:
|
|
86
|
+
// hold it and settle it against the list once the list arrives, instead of
|
|
87
|
+
// discarding a valid deep link before load().
|
|
88
|
+
else if (filter.startsWith('value:') && config.filterValuesFrom && known.length === 0) pendingFilter = filter;
|
|
76
89
|
}
|
|
77
90
|
if (changed) {
|
|
78
91
|
prefs.selectedIds = [];
|
|
@@ -90,7 +103,12 @@ export function decorateCollection(name: string, def: { state: State; actions?:
|
|
|
90
103
|
const derive = (s: State): State => {
|
|
91
104
|
syncSaved();
|
|
92
105
|
const rows = Array.isArray(s[config.rows]) ? (s[config.rows] as CollectionRow[]).filter(x => x && typeof x === 'object') : [];
|
|
93
|
-
const
|
|
106
|
+
const known = listedFilters(s);
|
|
107
|
+
if (pendingFilter && known.length) {
|
|
108
|
+
if (known.includes(pendingFilter.slice(6))) { prefs.filter = pendingFilter; persisted.write(prefs); }
|
|
109
|
+
pendingFilter = '';
|
|
110
|
+
}
|
|
111
|
+
const projected = projectCollection(rows, config, prefs, !!backend && config.backendQuery === true, known);
|
|
94
112
|
projected.items.forEach(row => { row.collectionSelectLabel = row.collectionSelected ? copyParam('collection.selected', 'Selected') : copyParam('collection.select', 'Select'); });
|
|
95
113
|
if (previewId && !rows.some(row => collectionId(row) === previewId)) previewId = '';
|
|
96
114
|
const filterChoices = [{ id: 'all', label: copyParam('collection.all', 'All') }, { id: 'saved', label: copyParam('collection.saved', 'Saved') },
|
|
@@ -106,7 +124,14 @@ export function decorateCollection(name: string, def: { state: State; actions?:
|
|
|
106
124
|
const queryError = typeof backendState?.error === 'string' ? backendState.error.trim() : '';
|
|
107
125
|
const errorMessage = queryError || domainError || copyParam('collection.loadError', 'This collection could not load. Try again.');
|
|
108
126
|
const canRetry = !!backend || typeof def.actions?.refresh === 'function' || typeof def.actions?.load === 'function' || typeof def.actions?.collectionRetry === 'function';
|
|
127
|
+
// A default view is what the screen opens on; anything else is the member's own
|
|
128
|
+
// narrowing, which keeps the chrome (and the Clear that undoes it) on screen.
|
|
129
|
+
// "All" and the collection's own default (e.g. Upcoming) are both un-narrowed: Clear
|
|
130
|
+
// resets to "All", so showing it on either would offer a reset that changes nothing.
|
|
131
|
+
const narrowed = !!prefs.query.trim() || (prefs.filter !== 'all' && prefs.filter !== initialCollection(config).filter);
|
|
132
|
+
const hideChrome = !narrowed && !s.nextCursor && projected.loaded < COLLECTION_CHROME_MIN_ITEMS;
|
|
109
133
|
return { ...s, collection: { ...prefs, ...projected,
|
|
134
|
+
hideChrome, noActiveCriteria: !narrowed,
|
|
110
135
|
viewName, viewMessage, saveMessage, noSavedViews: prefs.savedViews.length === 0,
|
|
111
136
|
cursor: s.pageError === true || s.loadingMore === true ? '' : s.nextCursor,
|
|
112
137
|
noMore: !s.nextCursor || s.pageError === true || s.loadingMore === true,
|
|
@@ -4900,11 +4900,10 @@ const SCREENS = runtimeSetting({
|
|
|
4900
4900
|
"id": "himi_feed.search",
|
|
4901
4901
|
"body": {
|
|
4902
4902
|
"package": "himalaya",
|
|
4903
|
-
"type": "
|
|
4903
|
+
"type": "SearchField",
|
|
4904
4904
|
"props": {
|
|
4905
4905
|
"placeholder": "Search posts",
|
|
4906
|
-
"
|
|
4907
|
-
"submitLabel": "search",
|
|
4906
|
+
"debounceMs": 200,
|
|
4908
4907
|
"onChange": {
|
|
4909
4908
|
"actionId": "tier5.himiBrandedFeed.filter"
|
|
4910
4909
|
}
|
|
@@ -5840,6 +5839,9 @@ const SCREENS = runtimeSetting({
|
|
|
5840
5839
|
},
|
|
5841
5840
|
"value": "$service:himiEvents.collection.query"
|
|
5842
5841
|
}
|
|
5842
|
+
},
|
|
5843
|
+
"modifiers": {
|
|
5844
|
+
"hiddenPath": "$service:himiEvents.collection.hideChrome"
|
|
5843
5845
|
}
|
|
5844
5846
|
},
|
|
5845
5847
|
{
|
|
@@ -6096,6 +6098,7 @@ const SCREENS = runtimeSetting({
|
|
|
6096
6098
|
}
|
|
6097
6099
|
},
|
|
6098
6100
|
"modifiers": {
|
|
6101
|
+
"hiddenPath": "$service:himiEvents.collection.hideChrome",
|
|
6099
6102
|
"padding": {
|
|
6100
6103
|
"bottom": 12
|
|
6101
6104
|
}
|
|
@@ -6133,37 +6136,55 @@ const SCREENS = runtimeSetting({
|
|
|
6133
6136
|
"actionId": "tier5.himiEvents.collectionFilter"
|
|
6134
6137
|
}
|
|
6135
6138
|
}
|
|
6139
|
+
},
|
|
6140
|
+
"modifiers": {
|
|
6141
|
+
"weight": 1
|
|
6136
6142
|
}
|
|
6137
6143
|
},
|
|
6138
6144
|
{
|
|
6139
|
-
"id": "",
|
|
6145
|
+
"id": "himi_events.list.collection.clear",
|
|
6140
6146
|
"body": {
|
|
6141
6147
|
"package": "himalaya",
|
|
6142
|
-
"type": "
|
|
6143
|
-
"props": {}
|
|
6144
|
-
}
|
|
6145
|
-
},
|
|
6146
|
-
{
|
|
6147
|
-
"id": "",
|
|
6148
|
-
"body": {
|
|
6149
|
-
"package": "himalaya",
|
|
6150
|
-
"type": "Text",
|
|
6148
|
+
"type": "Button",
|
|
6151
6149
|
"props": {
|
|
6152
|
-
"
|
|
6153
|
-
"style": "
|
|
6154
|
-
"
|
|
6150
|
+
"title": "Clear",
|
|
6151
|
+
"style": "plain",
|
|
6152
|
+
"fullWidth": false,
|
|
6153
|
+
"action": {
|
|
6154
|
+
"actionId": "tier5.himiEvents.collectionClear"
|
|
6155
|
+
}
|
|
6155
6156
|
}
|
|
6157
|
+
},
|
|
6158
|
+
"modifiers": {
|
|
6159
|
+
"hiddenPath": "$service:himiEvents.collection.noActiveCriteria"
|
|
6156
6160
|
}
|
|
6157
6161
|
}
|
|
6158
6162
|
]
|
|
6159
6163
|
}
|
|
6160
6164
|
},
|
|
6161
6165
|
"modifiers": {
|
|
6166
|
+
"hiddenPath": "$service:himiEvents.collection.hideChrome",
|
|
6162
6167
|
"padding": {
|
|
6163
6168
|
"bottom": 12
|
|
6164
6169
|
}
|
|
6165
6170
|
}
|
|
6166
6171
|
},
|
|
6172
|
+
{
|
|
6173
|
+
"id": "himi_events.list.collection.summary",
|
|
6174
|
+
"body": {
|
|
6175
|
+
"package": "himalaya",
|
|
6176
|
+
"type": "Text",
|
|
6177
|
+
"props": {
|
|
6178
|
+
"text": "$service:himiEvents.collection.summary",
|
|
6179
|
+
"style": "caption",
|
|
6180
|
+
"color": "textSecondary",
|
|
6181
|
+
"maxLines": 1
|
|
6182
|
+
}
|
|
6183
|
+
},
|
|
6184
|
+
"modifiers": {
|
|
6185
|
+
"hiddenPath": "$service:himiEvents.collection.hideChrome"
|
|
6186
|
+
}
|
|
6187
|
+
},
|
|
6167
6188
|
{
|
|
6168
6189
|
"id": "",
|
|
6169
6190
|
"body": {
|
|
@@ -6460,6 +6481,25 @@ const SCREENS = runtimeSetting({
|
|
|
6460
6481
|
"hiddenPath": "$service:himiEvents.collection.noSelection"
|
|
6461
6482
|
}
|
|
6462
6483
|
},
|
|
6484
|
+
{
|
|
6485
|
+
"id": "himi_events.list.collection.list.$item.collectionId/primary",
|
|
6486
|
+
"body": {
|
|
6487
|
+
"package": "himalaya",
|
|
6488
|
+
"type": "Button",
|
|
6489
|
+
"props": {
|
|
6490
|
+
"title": "Register",
|
|
6491
|
+
"style": "secondary",
|
|
6492
|
+
"fullWidth": false,
|
|
6493
|
+
"action": {
|
|
6494
|
+
"actionId": "himi.open",
|
|
6495
|
+
"params": {
|
|
6496
|
+
"screenId": "$item.detailScreenId",
|
|
6497
|
+
"id": "$item.id"
|
|
6498
|
+
}
|
|
6499
|
+
}
|
|
6500
|
+
}
|
|
6501
|
+
}
|
|
6502
|
+
},
|
|
6463
6503
|
{
|
|
6464
6504
|
"id": "himi_events.list.collection.list.$item.collectionId/actions",
|
|
6465
6505
|
"body": {
|
|
@@ -6789,6 +6829,25 @@ const SCREENS = runtimeSetting({
|
|
|
6789
6829
|
"hiddenPath": "$service:himiEvents.collection.noSelection"
|
|
6790
6830
|
}
|
|
6791
6831
|
},
|
|
6832
|
+
{
|
|
6833
|
+
"id": "himi_events.list.collection.grid.$item.collectionId/primary",
|
|
6834
|
+
"body": {
|
|
6835
|
+
"package": "himalaya",
|
|
6836
|
+
"type": "Button",
|
|
6837
|
+
"props": {
|
|
6838
|
+
"title": "Register",
|
|
6839
|
+
"style": "secondary",
|
|
6840
|
+
"fullWidth": false,
|
|
6841
|
+
"action": {
|
|
6842
|
+
"actionId": "himi.open",
|
|
6843
|
+
"params": {
|
|
6844
|
+
"screenId": "$item.detailScreenId",
|
|
6845
|
+
"id": "$item.id"
|
|
6846
|
+
}
|
|
6847
|
+
}
|
|
6848
|
+
}
|
|
6849
|
+
}
|
|
6850
|
+
},
|
|
6792
6851
|
{
|
|
6793
6852
|
"id": "",
|
|
6794
6853
|
"body": {
|
|
@@ -7111,6 +7170,25 @@ const SCREENS = runtimeSetting({
|
|
|
7111
7170
|
"hiddenPath": "$service:himiEvents.collection.noSelection"
|
|
7112
7171
|
}
|
|
7113
7172
|
},
|
|
7173
|
+
{
|
|
7174
|
+
"id": "himi_events.list.collection.compact-list.$item.collectionId/primary",
|
|
7175
|
+
"body": {
|
|
7176
|
+
"package": "himalaya",
|
|
7177
|
+
"type": "Button",
|
|
7178
|
+
"props": {
|
|
7179
|
+
"title": "Register",
|
|
7180
|
+
"style": "secondary",
|
|
7181
|
+
"fullWidth": false,
|
|
7182
|
+
"action": {
|
|
7183
|
+
"actionId": "himi.open",
|
|
7184
|
+
"params": {
|
|
7185
|
+
"screenId": "$item.detailScreenId",
|
|
7186
|
+
"id": "$item.id"
|
|
7187
|
+
}
|
|
7188
|
+
}
|
|
7189
|
+
}
|
|
7190
|
+
}
|
|
7191
|
+
},
|
|
7114
7192
|
{
|
|
7115
7193
|
"id": "himi_events.list.collection.compact-list.$item.collectionId/actions",
|
|
7116
7194
|
"body": {
|
|
@@ -7440,6 +7518,25 @@ const SCREENS = runtimeSetting({
|
|
|
7440
7518
|
"hiddenPath": "$service:himiEvents.collection.noSelection"
|
|
7441
7519
|
}
|
|
7442
7520
|
},
|
|
7521
|
+
{
|
|
7522
|
+
"id": "himi_events.list.collection.compact-grid.$item.collectionId/primary",
|
|
7523
|
+
"body": {
|
|
7524
|
+
"package": "himalaya",
|
|
7525
|
+
"type": "Button",
|
|
7526
|
+
"props": {
|
|
7527
|
+
"title": "Register",
|
|
7528
|
+
"style": "secondary",
|
|
7529
|
+
"fullWidth": false,
|
|
7530
|
+
"action": {
|
|
7531
|
+
"actionId": "himi.open",
|
|
7532
|
+
"params": {
|
|
7533
|
+
"screenId": "$item.detailScreenId",
|
|
7534
|
+
"id": "$item.id"
|
|
7535
|
+
}
|
|
7536
|
+
}
|
|
7537
|
+
}
|
|
7538
|
+
}
|
|
7539
|
+
},
|
|
7443
7540
|
{
|
|
7444
7541
|
"id": "",
|
|
7445
7542
|
"body": {
|
|
@@ -8126,6 +8223,25 @@ const SCREENS = runtimeSetting({
|
|
|
8126
8223
|
"hiddenPath": "$service:himiEvents.collection.noSelection"
|
|
8127
8224
|
}
|
|
8128
8225
|
},
|
|
8226
|
+
{
|
|
8227
|
+
"id": "himi_events.list.collection.preview.$item.collectionId/primary",
|
|
8228
|
+
"body": {
|
|
8229
|
+
"package": "himalaya",
|
|
8230
|
+
"type": "Button",
|
|
8231
|
+
"props": {
|
|
8232
|
+
"title": "Register",
|
|
8233
|
+
"style": "secondary",
|
|
8234
|
+
"fullWidth": false,
|
|
8235
|
+
"action": {
|
|
8236
|
+
"actionId": "himi.open",
|
|
8237
|
+
"params": {
|
|
8238
|
+
"screenId": "$item.detailScreenId",
|
|
8239
|
+
"id": "$item.id"
|
|
8240
|
+
}
|
|
8241
|
+
}
|
|
8242
|
+
}
|
|
8243
|
+
}
|
|
8244
|
+
},
|
|
8129
8245
|
{
|
|
8130
8246
|
"id": "",
|
|
8131
8247
|
"body": {
|
|
@@ -9027,59 +9143,9 @@ const SCREENS = runtimeSetting({
|
|
|
9027
9143
|
},
|
|
9028
9144
|
"value": "$service:himiBlogFeed.collection.query"
|
|
9029
9145
|
}
|
|
9030
|
-
}
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
"id": "himi_blog.categories",
|
|
9034
|
-
"body": {
|
|
9035
|
-
"package": "himalaya",
|
|
9036
|
-
"type": "Grid",
|
|
9037
|
-
"props": {
|
|
9038
|
-
"columns": 2,
|
|
9039
|
-
"spacing": 8,
|
|
9040
|
-
"itemsPath": "$service:himiBlogFeed.categories",
|
|
9041
|
-
"items": [
|
|
9042
|
-
{
|
|
9043
|
-
"id": "",
|
|
9044
|
-
"body": {
|
|
9045
|
-
"package": "himalaya",
|
|
9046
|
-
"type": "Text",
|
|
9047
|
-
"props": {
|
|
9048
|
-
"text": "$item.label",
|
|
9049
|
-
"style": "footnote",
|
|
9050
|
-
"color": "textPrimary",
|
|
9051
|
-
"maxLines": 1
|
|
9052
|
-
}
|
|
9053
|
-
},
|
|
9054
|
-
"modifiers": {
|
|
9055
|
-
"background": {
|
|
9056
|
-
"token": "accentSurface"
|
|
9057
|
-
},
|
|
9058
|
-
"border": {
|
|
9059
|
-
"width": 1,
|
|
9060
|
-
"color": {
|
|
9061
|
-
"token": "border"
|
|
9062
|
-
}
|
|
9063
|
-
},
|
|
9064
|
-
"cornerRadius": 8,
|
|
9065
|
-
"padding": {
|
|
9066
|
-
"leading": 12,
|
|
9067
|
-
"trailing": 12,
|
|
9068
|
-
"top": 9,
|
|
9069
|
-
"bottom": 9
|
|
9070
|
-
},
|
|
9071
|
-
"onTap": {
|
|
9072
|
-
"actionId": "tier5.himiBlogFeed.selectCategory",
|
|
9073
|
-
"params": {
|
|
9074
|
-
"categoryId": "$item.id"
|
|
9075
|
-
}
|
|
9076
|
-
},
|
|
9077
|
-
"pressFeedback": "scale",
|
|
9078
|
-
"haptic": "light"
|
|
9079
|
-
}
|
|
9080
|
-
}
|
|
9081
|
-
]
|
|
9082
|
-
}
|
|
9146
|
+
},
|
|
9147
|
+
"modifiers": {
|
|
9148
|
+
"hiddenPath": "$service:himiBlogFeed.collection.hideChrome"
|
|
9083
9149
|
}
|
|
9084
9150
|
},
|
|
9085
9151
|
{
|
|
@@ -9274,40 +9340,6 @@ const SCREENS = runtimeSetting({
|
|
|
9274
9340
|
"spacing": 12,
|
|
9275
9341
|
"alignment": "leading",
|
|
9276
9342
|
"children": [
|
|
9277
|
-
{
|
|
9278
|
-
"id": "",
|
|
9279
|
-
"body": {
|
|
9280
|
-
"package": "himalaya",
|
|
9281
|
-
"type": "HStack",
|
|
9282
|
-
"props": {
|
|
9283
|
-
"spacing": 8,
|
|
9284
|
-
"children": [
|
|
9285
|
-
{
|
|
9286
|
-
"id": "",
|
|
9287
|
-
"body": {
|
|
9288
|
-
"package": "himalaya",
|
|
9289
|
-
"type": "Spacer",
|
|
9290
|
-
"props": {}
|
|
9291
|
-
}
|
|
9292
|
-
},
|
|
9293
|
-
{
|
|
9294
|
-
"id": "himi_blog.clear",
|
|
9295
|
-
"body": {
|
|
9296
|
-
"package": "himalaya",
|
|
9297
|
-
"type": "Button",
|
|
9298
|
-
"props": {
|
|
9299
|
-
"title": "Clear",
|
|
9300
|
-
"style": "secondary",
|
|
9301
|
-
"action": {
|
|
9302
|
-
"actionId": "tier5.himiBlogFeed.clearFilters"
|
|
9303
|
-
}
|
|
9304
|
-
}
|
|
9305
|
-
}
|
|
9306
|
-
}
|
|
9307
|
-
]
|
|
9308
|
-
}
|
|
9309
|
-
}
|
|
9310
|
-
},
|
|
9311
9343
|
{
|
|
9312
9344
|
"id": "himi_blog.list.collection.toolbar",
|
|
9313
9345
|
"body": {
|
|
@@ -9370,6 +9402,7 @@ const SCREENS = runtimeSetting({
|
|
|
9370
9402
|
}
|
|
9371
9403
|
},
|
|
9372
9404
|
"modifiers": {
|
|
9405
|
+
"hiddenPath": "$service:himiBlogFeed.collection.hideChrome",
|
|
9373
9406
|
"padding": {
|
|
9374
9407
|
"bottom": 12
|
|
9375
9408
|
}
|
|
@@ -9407,37 +9440,55 @@ const SCREENS = runtimeSetting({
|
|
|
9407
9440
|
"actionId": "tier5.himiBlogFeed.collectionFilter"
|
|
9408
9441
|
}
|
|
9409
9442
|
}
|
|
9443
|
+
},
|
|
9444
|
+
"modifiers": {
|
|
9445
|
+
"weight": 1
|
|
9410
9446
|
}
|
|
9411
9447
|
},
|
|
9412
9448
|
{
|
|
9413
|
-
"id": "",
|
|
9414
|
-
"body": {
|
|
9415
|
-
"package": "himalaya",
|
|
9416
|
-
"type": "Spacer",
|
|
9417
|
-
"props": {}
|
|
9418
|
-
}
|
|
9419
|
-
},
|
|
9420
|
-
{
|
|
9421
|
-
"id": "",
|
|
9449
|
+
"id": "himi_blog.list.collection.clear",
|
|
9422
9450
|
"body": {
|
|
9423
9451
|
"package": "himalaya",
|
|
9424
|
-
"type": "
|
|
9452
|
+
"type": "Button",
|
|
9425
9453
|
"props": {
|
|
9426
|
-
"
|
|
9427
|
-
"style": "
|
|
9428
|
-
"
|
|
9454
|
+
"title": "Clear",
|
|
9455
|
+
"style": "plain",
|
|
9456
|
+
"fullWidth": false,
|
|
9457
|
+
"action": {
|
|
9458
|
+
"actionId": "tier5.himiBlogFeed.collectionClear"
|
|
9459
|
+
}
|
|
9429
9460
|
}
|
|
9461
|
+
},
|
|
9462
|
+
"modifiers": {
|
|
9463
|
+
"hiddenPath": "$service:himiBlogFeed.collection.noActiveCriteria"
|
|
9430
9464
|
}
|
|
9431
9465
|
}
|
|
9432
9466
|
]
|
|
9433
9467
|
}
|
|
9434
9468
|
},
|
|
9435
9469
|
"modifiers": {
|
|
9470
|
+
"hiddenPath": "$service:himiBlogFeed.collection.hideChrome",
|
|
9436
9471
|
"padding": {
|
|
9437
9472
|
"bottom": 12
|
|
9438
9473
|
}
|
|
9439
9474
|
}
|
|
9440
9475
|
},
|
|
9476
|
+
{
|
|
9477
|
+
"id": "himi_blog.list.collection.summary",
|
|
9478
|
+
"body": {
|
|
9479
|
+
"package": "himalaya",
|
|
9480
|
+
"type": "Text",
|
|
9481
|
+
"props": {
|
|
9482
|
+
"text": "$service:himiBlogFeed.collection.summary",
|
|
9483
|
+
"style": "caption",
|
|
9484
|
+
"color": "textSecondary",
|
|
9485
|
+
"maxLines": 1
|
|
9486
|
+
}
|
|
9487
|
+
},
|
|
9488
|
+
"modifiers": {
|
|
9489
|
+
"hiddenPath": "$service:himiBlogFeed.collection.hideChrome"
|
|
9490
|
+
}
|
|
9491
|
+
},
|
|
9441
9492
|
{
|
|
9442
9493
|
"id": "",
|
|
9443
9494
|
"body": {
|
|
@@ -12194,6 +12245,9 @@ const SCREENS = runtimeSetting({
|
|
|
12194
12245
|
},
|
|
12195
12246
|
"value": "$service:himiBrandedGroups.collection.query"
|
|
12196
12247
|
}
|
|
12248
|
+
},
|
|
12249
|
+
"modifiers": {
|
|
12250
|
+
"hiddenPath": "$service:himiBrandedGroups.collection.hideChrome"
|
|
12197
12251
|
}
|
|
12198
12252
|
},
|
|
12199
12253
|
{
|
|
@@ -12371,6 +12425,7 @@ const SCREENS = runtimeSetting({
|
|
|
12371
12425
|
}
|
|
12372
12426
|
},
|
|
12373
12427
|
"modifiers": {
|
|
12428
|
+
"hiddenPath": "$service:himiBrandedGroups.collection.hideChrome",
|
|
12374
12429
|
"padding": {
|
|
12375
12430
|
"bottom": 12
|
|
12376
12431
|
}
|
|
@@ -12408,37 +12463,55 @@ const SCREENS = runtimeSetting({
|
|
|
12408
12463
|
"actionId": "tier5.himiBrandedGroups.collectionFilter"
|
|
12409
12464
|
}
|
|
12410
12465
|
}
|
|
12466
|
+
},
|
|
12467
|
+
"modifiers": {
|
|
12468
|
+
"weight": 1
|
|
12411
12469
|
}
|
|
12412
12470
|
},
|
|
12413
12471
|
{
|
|
12414
|
-
"id": "",
|
|
12415
|
-
"body": {
|
|
12416
|
-
"package": "himalaya",
|
|
12417
|
-
"type": "Spacer",
|
|
12418
|
-
"props": {}
|
|
12419
|
-
}
|
|
12420
|
-
},
|
|
12421
|
-
{
|
|
12422
|
-
"id": "",
|
|
12472
|
+
"id": "himi_groups.rows.collection.clear",
|
|
12423
12473
|
"body": {
|
|
12424
12474
|
"package": "himalaya",
|
|
12425
|
-
"type": "
|
|
12475
|
+
"type": "Button",
|
|
12426
12476
|
"props": {
|
|
12427
|
-
"
|
|
12428
|
-
"style": "
|
|
12429
|
-
"
|
|
12477
|
+
"title": "Clear",
|
|
12478
|
+
"style": "plain",
|
|
12479
|
+
"fullWidth": false,
|
|
12480
|
+
"action": {
|
|
12481
|
+
"actionId": "tier5.himiBrandedGroups.collectionClear"
|
|
12482
|
+
}
|
|
12430
12483
|
}
|
|
12484
|
+
},
|
|
12485
|
+
"modifiers": {
|
|
12486
|
+
"hiddenPath": "$service:himiBrandedGroups.collection.noActiveCriteria"
|
|
12431
12487
|
}
|
|
12432
12488
|
}
|
|
12433
12489
|
]
|
|
12434
12490
|
}
|
|
12435
12491
|
},
|
|
12436
12492
|
"modifiers": {
|
|
12493
|
+
"hiddenPath": "$service:himiBrandedGroups.collection.hideChrome",
|
|
12437
12494
|
"padding": {
|
|
12438
12495
|
"bottom": 12
|
|
12439
12496
|
}
|
|
12440
12497
|
}
|
|
12441
12498
|
},
|
|
12499
|
+
{
|
|
12500
|
+
"id": "himi_groups.rows.collection.summary",
|
|
12501
|
+
"body": {
|
|
12502
|
+
"package": "himalaya",
|
|
12503
|
+
"type": "Text",
|
|
12504
|
+
"props": {
|
|
12505
|
+
"text": "$service:himiBrandedGroups.collection.summary",
|
|
12506
|
+
"style": "caption",
|
|
12507
|
+
"color": "textSecondary",
|
|
12508
|
+
"maxLines": 1
|
|
12509
|
+
}
|
|
12510
|
+
},
|
|
12511
|
+
"modifiers": {
|
|
12512
|
+
"hiddenPath": "$service:himiBrandedGroups.collection.hideChrome"
|
|
12513
|
+
}
|
|
12514
|
+
},
|
|
12442
12515
|
{
|
|
12443
12516
|
"id": "",
|
|
12444
12517
|
"body": {
|