@wix/himalaya-cli 0.1482.0 → 0.1484.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/auth.mjs +4 -1
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/screens.mjs +4 -1
- package/dist/cli.mjs +71549 -71143
- package/dist/preview-assets.generated.bin +0 -0
- package/guides/qa-builds.md +22 -0
- package/package.json +2 -2
- package/templates/beauty-salon/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/beauty-salon/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/beauty-salon-owner/dev/index.ts +58 -19
- package/templates/beauty-salon-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/beauty-salon-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/branded-lite/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/branded-lite/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/community-club/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/community-club/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/community-club-owner/dev/index.ts +58 -19
- package/templates/community-club-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/community-club-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/community-club-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/community-club-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/events-meetups/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/events-meetups/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/events-meetups-owner/dev/index.ts +46 -16
- package/templates/events-meetups-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/events-meetups-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/gym-fitness/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/gym-fitness/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/gym-fitness-owner/dev/index.ts +62 -20
- package/templates/gym-fitness-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/gym-fitness-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/nonprofit-cause/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/nonprofit-cause/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/nonprofit-cause-owner/dev/index.ts +50 -17
- package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/owner-lite/dev/index.ts +62 -20
- package/templates/owner-lite/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/owner-lite/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/owner-lite/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/owner-lite/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/podcast-creator/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/podcast-creator/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/podcast-creator-owner/dev/index.ts +58 -19
- package/templates/podcast-creator-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/podcast-creator-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/portfolio-creative/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/portfolio-creative/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/portfolio-creative-owner/dev/index.ts +58 -19
- package/templates/portfolio-creative-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/portfolio-creative-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/restaurant/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/restaurant/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/restaurant-owner/dev/index.ts +62 -20
- package/templates/restaurant-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/restaurant-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/retail-store/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/retail-store/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/retail-store-owner/dev/index.ts +54 -18
- package/templates/retail-store-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/retail-store-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
- package/templates/yoga-studio/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/yoga-studio/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/yoga-studio-owner/dev/index.ts +50 -17
- package/templates/yoga-studio-owner/tier5-src/_shared/collection-query.ts +13 -4
- package/templates/yoga-studio-owner/tier5-src/_shared/collection-service.ts +2 -1
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-manage/index.ts +5 -3
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-manage/logic.ts +30 -0
|
@@ -49603,7 +49603,10 @@ const SCREENS = runtimeSetting({
|
|
|
49603
49603
|
"action": {
|
|
49604
49604
|
"actionId": "himi.open",
|
|
49605
49605
|
"params": {
|
|
49606
|
-
"screenId": "himi_owner_lite_sites"
|
|
49606
|
+
"screenId": "himi_owner_lite_sites",
|
|
49607
|
+
"title": "Your studios",
|
|
49608
|
+
"subtitle": "Choose a studio to run",
|
|
49609
|
+
"search": "button"
|
|
49607
49610
|
}
|
|
49608
49611
|
}
|
|
49609
49612
|
}
|
|
@@ -50774,7 +50777,10 @@ const SCREENS = runtimeSetting({
|
|
|
50774
50777
|
"actionId": "himi.open",
|
|
50775
50778
|
"params": {
|
|
50776
50779
|
"screenId": "himi_owner_lite_appointments",
|
|
50777
|
-
"collectionFilter": "all"
|
|
50780
|
+
"collectionFilter": "all",
|
|
50781
|
+
"title": "Students booked in",
|
|
50782
|
+
"subtitle": "Who’s on the mat, in which class, and when.",
|
|
50783
|
+
"search": "button"
|
|
50778
50784
|
}
|
|
50779
50785
|
},
|
|
50780
50786
|
"pressFeedback": "scale",
|
|
@@ -50843,7 +50849,10 @@ const SCREENS = runtimeSetting({
|
|
|
50843
50849
|
"actionId": "himi.open",
|
|
50844
50850
|
"params": {
|
|
50845
50851
|
"screenId": "himi_owner_lite_events",
|
|
50846
|
-
"collectionFilter": "value:Upcoming"
|
|
50852
|
+
"collectionFilter": "value:Upcoming",
|
|
50853
|
+
"title": "Workshops",
|
|
50854
|
+
"subtitle": "Workshops, retreats and teacher-training weekends.",
|
|
50855
|
+
"search": "button"
|
|
50847
50856
|
}
|
|
50848
50857
|
},
|
|
50849
50858
|
"pressFeedback": "scale",
|
|
@@ -50924,7 +50933,10 @@ const SCREENS = runtimeSetting({
|
|
|
50924
50933
|
"actionId": "himi.open",
|
|
50925
50934
|
"params": {
|
|
50926
50935
|
"screenId": "himi_owner_lite_posts",
|
|
50927
|
-
"collectionFilter": "all"
|
|
50936
|
+
"collectionFilter": "all",
|
|
50937
|
+
"title": "Journal",
|
|
50938
|
+
"subtitle": "Practice notes and studio news — drafts and published.",
|
|
50939
|
+
"search": "button"
|
|
50928
50940
|
}
|
|
50929
50941
|
},
|
|
50930
50942
|
"pressFeedback": "scale",
|
|
@@ -50993,7 +51005,10 @@ const SCREENS = runtimeSetting({
|
|
|
50993
51005
|
"actionId": "himi.open",
|
|
50994
51006
|
"params": {
|
|
50995
51007
|
"screenId": "himi_owner_lite_sites",
|
|
50996
|
-
"collectionFilter": "all"
|
|
51008
|
+
"collectionFilter": "all",
|
|
51009
|
+
"title": "Your studios",
|
|
51010
|
+
"subtitle": "Choose a studio to run",
|
|
51011
|
+
"search": "button"
|
|
50997
51012
|
}
|
|
50998
51013
|
},
|
|
50999
51014
|
"pressFeedback": "scale",
|
|
@@ -51087,7 +51102,9 @@ const SCREENS = runtimeSetting({
|
|
|
51087
51102
|
"action": {
|
|
51088
51103
|
"actionId": "himi.open",
|
|
51089
51104
|
"params": {
|
|
51090
|
-
"screenId": "himi_owner_lite_brief"
|
|
51105
|
+
"screenId": "himi_owner_lite_brief",
|
|
51106
|
+
"title": "Today at the studio",
|
|
51107
|
+
"subtitle": "Quiet classes, full classes and workshops still to fill."
|
|
51091
51108
|
}
|
|
51092
51109
|
}
|
|
51093
51110
|
}
|
|
@@ -51442,7 +51459,8 @@ const SCREENS = runtimeSetting({
|
|
|
51442
51459
|
"action": {
|
|
51443
51460
|
"actionId": "himi.open",
|
|
51444
51461
|
"params": {
|
|
51445
|
-
"screenId": "himi_owner_lite_manage"
|
|
51462
|
+
"screenId": "himi_owner_lite_manage",
|
|
51463
|
+
"search": "drawer"
|
|
51446
51464
|
}
|
|
51447
51465
|
}
|
|
51448
51466
|
}
|
|
@@ -52469,7 +52487,10 @@ const SCREENS = runtimeSetting({
|
|
|
52469
52487
|
"onTap": {
|
|
52470
52488
|
"actionId": "himi.open",
|
|
52471
52489
|
"params": {
|
|
52472
|
-
"screenId": "himi_owner_lite_search"
|
|
52490
|
+
"screenId": "himi_owner_lite_search",
|
|
52491
|
+
"title": "Search records",
|
|
52492
|
+
"subtitle": "Across your business areas",
|
|
52493
|
+
"search": "drawer"
|
|
52473
52494
|
}
|
|
52474
52495
|
},
|
|
52475
52496
|
"pressFeedback": "scale",
|
|
@@ -52669,7 +52690,9 @@ const SCREENS = runtimeSetting({
|
|
|
52669
52690
|
"onTap": {
|
|
52670
52691
|
"actionId": "himi.open",
|
|
52671
52692
|
"params": {
|
|
52672
|
-
"screenId": "himi_owner_lite_analytics"
|
|
52693
|
+
"screenId": "himi_owner_lite_analytics",
|
|
52694
|
+
"title": "Analytics",
|
|
52695
|
+
"subtitle": "How your site is doing"
|
|
52673
52696
|
}
|
|
52674
52697
|
},
|
|
52675
52698
|
"pressFeedback": "scale",
|
|
@@ -52693,7 +52716,7 @@ const SCREENS = runtimeSetting({
|
|
|
52693
52716
|
"onAppear": {
|
|
52694
52717
|
"actionId": "tier5.himiOwnerLiteManage.load",
|
|
52695
52718
|
"params": {
|
|
52696
|
-
"areas": "[{\"id\":\"bookings\",\"title\":\"Classes\",\"subtitle\":\"Services and your schedule\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_services\",\"icon\":\"calendar\",\"metricKey\":\"services\",\"countLabel\":\"services\",\"handoffLabel\":\"Open in Wix: Classes\"},{\"id\":\"himi_owner_lite_appointments\",\"title\":\"Students booked in\",\"subtitle\":\"Your upcoming appointments\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_appointments\",\"icon\":\"clock\",\"metricKey\":\"appointments\",\"countLabel\":\"appointments\",\"handoffLabel\":\"Open in Wix: Students booked in\"},{\"id\":\"events\",\"title\":\"Workshops\",\"subtitle\":\"Events and attendance\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_events\",\"icon\":\"calendar\",\"metricKey\":\"events\",\"countLabel\":\"events\",\"handoffLabel\":\"Open in Wix: Workshops\"},{\"id\":\"blog\",\"title\":\"Journal\",\"subtitle\":\"Stories and publishing\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_posts\",\"icon\":\"newspaper\",\"metricKey\":\"posts\",\"countLabel\":\"posts\",\"createScreenId\":\"himi_owner_lite_post_new\",\"createLabel\":\"Write post\",\"handoffLabel\":\"Open in Wix: Journal\"},{\"id\":\"coupons\",\"title\":\"Coupons\",\"subtitle\":\"Offers, codes and usage\",\"groupId\":\"commerce\",\"group\":\"Commerce\",\"screenId\":\"himi_owner_lite_module_coupons\",\"icon\":\"tag\",\"metricKey\":\"module:coupons\",\"countLabel\":\"coupons\",\"handoffLabel\":\"Open in Wix: Coupons\"},{\"id\":\"invoices\",\"title\":\"Invoices\",\"subtitle\":\"Customers, balances and payment status\",\"groupId\":\"commerce\",\"group\":\"Commerce\",\"screenId\":\"himi_owner_lite_module_invoices\",\"icon\":\"document\",\"metricKey\":\"module:invoices\",\"countLabel\":\"invoices\",\"handoffLabel\":\"Open in Wix: Invoices\"},{\"id\":\"giftCards\",\"title\":\"Gift cards\",\"subtitle\":\"Balances, recipients and expiration\",\"groupId\":\"commerce\",\"group\":\"Commerce\",\"screenId\":\"himi_owner_lite_module_giftCards\",\"icon\":\"ticket\",\"metricKey\":\"module:giftCards\",\"countLabel\":\"gift cards\",\"handoffLabel\":\"Open in Wix: Gift cards\"},{\"id\":\"contacts\",\"title\":\"Contacts\",\"subtitle\":\"Your customer relationships\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_contacts\",\"icon\":\"person\",\"metricKey\":\"module:contacts\",\"countLabel\":\"contacts\",\"handoffLabel\":\"Open in Wix: Contacts\"},{\"id\":\"members\",\"title\":\"Members\",\"subtitle\":\"Membership access and profiles\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_members\",\"icon\":\"person\",\"metricKey\":\"module:members\",\"countLabel\":\"members\",\"handoffLabel\":\"Open in Wix: Members\"},{\"id\":\"groups\",\"title\":\"Groups\",\"subtitle\":\"Communities and conversations\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_groups\",\"icon\":\"person\",\"metricKey\":\"module:groups\",\"countLabel\":\"groups\",\"handoffLabel\":\"Open in Wix: Groups\"},{\"id\":\"reviews\",\"title\":\"Reviews\",\"subtitle\":\"Published and pending customer feedback\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_reviews\",\"icon\":\"star\",\"metricKey\":\"module:reviews\",\"countLabel\":\"reviews\",\"handoffLabel\":\"Open in Wix: Reviews\"},{\"id\":\"plans\",\"title\":\"Plans\",\"subtitle\":\"Pricing, benefits and visibility\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_plans\",\"icon\":\"bookmark\",\"metricKey\":\"module:plans\",\"countLabel\":\"plans\",\"handoffLabel\":\"Open in Wix: Plans\"},{\"id\":\"subscriptions\",\"title\":\"Subscriptions\",\"subtitle\":\"Member plans and subscription status\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_subscriptions\",\"icon\":\"bookmark\",\"metricKey\":\"module:subscriptions\",\"countLabel\":\"subscriptions\",\"handoffLabel\":\"Open in Wix: Subscriptions\"},{\"id\":\"programs\",\"title\":\"Programs\",\"subtitle\":\"Learning experiences and participation\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_programs\",\"icon\":\"play\",\"metricKey\":\"module:programs\",\"countLabel\":\"programs\",\"handoffLabel\":\"Open in Wix: Programs\"},{\"id\":\"badges\",\"title\":\"Badges\",\"subtitle\":\"Recognition, access and member badges\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_badges\",\"icon\":\"star\",\"metricKey\":\"module:badges\",\"countLabel\":\"badges\",\"handoffLabel\":\"Open in Wix: Badges\"},{\"id\":\"reservations\",\"title\":\"Reservations\",\"subtitle\":\"Guests, tables and arrival times\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_module_reservations\",\"icon\":\"calendar\",\"metricKey\":\"module:reservations\",\"countLabel\":\"reservations\",\"handoffLabel\":\"Open in Wix: Reservations\"},{\"id\":\"forms\",\"title\":\"Forms\",\"subtitle\":\"Forms and their configuration\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_module_forms\",\"icon\":\"document\",\"metricKey\":\"module:forms\",\"countLabel\":\"forms\",\"handoffLabel\":\"Open in Wix: Forms\"},{\"id\":\"portfolio\",\"title\":\"Portfolio\",\"subtitle\":\"Projects, stories and galleries\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_module_portfolio\",\"icon\":\"image\",\"metricKey\":\"module:portfolio\",\"countLabel\":\"portfolio\",\"handoffLabel\":\"Open in Wix: Portfolio\"},{\"id\":\"donationCampaigns\",\"title\":\"Donation campaigns\",\"subtitle\":\"Campaign goals, status and fundraising\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_module_donationCampaigns\",\"icon\":\"heart\",\"metricKey\":\"module:donationCampaigns\",\"countLabel\":\"donation campaigns\",\"handoffLabel\":\"Open in Wix: Donation campaigns\"}]",
|
|
52719
|
+
"areas": "[{\"id\":\"bookings\",\"title\":\"Classes\",\"subtitle\":\"Services and your schedule\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_services\",\"icon\":\"calendar\",\"metricKey\":\"services\",\"countLabel\":\"services\",\"handoffLabel\":\"Open in Wix: Classes\",\"navigation\":{\"title\":\"Classes\",\"subtitle\":\"Every class on the timetable, its style and who teaches it.\",\"search\":\"button\"}},{\"id\":\"himi_owner_lite_appointments\",\"title\":\"Students booked in\",\"subtitle\":\"Your upcoming appointments\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_appointments\",\"icon\":\"clock\",\"metricKey\":\"appointments\",\"countLabel\":\"appointments\",\"handoffLabel\":\"Open in Wix: Students booked in\",\"navigation\":{\"title\":\"Students booked in\",\"subtitle\":\"Who’s on the mat, in which class, and when.\",\"search\":\"button\"}},{\"id\":\"events\",\"title\":\"Workshops\",\"subtitle\":\"Events and attendance\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_events\",\"icon\":\"calendar\",\"metricKey\":\"events\",\"countLabel\":\"events\",\"handoffLabel\":\"Open in Wix: Workshops\",\"navigation\":{\"title\":\"Workshops\",\"subtitle\":\"Workshops, retreats and teacher-training weekends.\",\"search\":\"button\"}},{\"id\":\"blog\",\"title\":\"Journal\",\"subtitle\":\"Stories and publishing\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_posts\",\"icon\":\"newspaper\",\"metricKey\":\"posts\",\"countLabel\":\"posts\",\"createScreenId\":\"himi_owner_lite_post_new\",\"createLabel\":\"Write post\",\"handoffLabel\":\"Open in Wix: Journal\",\"navigation\":{\"title\":\"Journal\",\"subtitle\":\"Practice notes and studio news — drafts and published.\",\"search\":\"button\"}},{\"id\":\"coupons\",\"title\":\"Coupons\",\"subtitle\":\"Offers, codes and usage\",\"groupId\":\"commerce\",\"group\":\"Commerce\",\"screenId\":\"himi_owner_lite_module_coupons\",\"icon\":\"tag\",\"metricKey\":\"module:coupons\",\"countLabel\":\"coupons\",\"handoffLabel\":\"Open in Wix: Coupons\",\"navigation\":{\"title\":\"Coupons\",\"subtitle\":\"Offers, codes and usage\",\"search\":\"button\"}},{\"id\":\"invoices\",\"title\":\"Invoices\",\"subtitle\":\"Customers, balances and payment status\",\"groupId\":\"commerce\",\"group\":\"Commerce\",\"screenId\":\"himi_owner_lite_module_invoices\",\"icon\":\"document\",\"metricKey\":\"module:invoices\",\"countLabel\":\"invoices\",\"handoffLabel\":\"Open in Wix: Invoices\",\"navigation\":{\"title\":\"Invoices\",\"subtitle\":\"Customers, balances and payment status\",\"search\":\"button\"}},{\"id\":\"giftCards\",\"title\":\"Gift cards\",\"subtitle\":\"Balances, recipients and expiration\",\"groupId\":\"commerce\",\"group\":\"Commerce\",\"screenId\":\"himi_owner_lite_module_giftCards\",\"icon\":\"ticket\",\"metricKey\":\"module:giftCards\",\"countLabel\":\"gift cards\",\"handoffLabel\":\"Open in Wix: Gift cards\",\"navigation\":{\"title\":\"Gift cards\",\"subtitle\":\"Balances, recipients and expiration\",\"search\":\"button\"}},{\"id\":\"contacts\",\"title\":\"Contacts\",\"subtitle\":\"Your customer relationships\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_contacts\",\"icon\":\"person\",\"metricKey\":\"module:contacts\",\"countLabel\":\"contacts\",\"handoffLabel\":\"Open in Wix: Contacts\",\"navigation\":{\"title\":\"Contacts\",\"subtitle\":\"Your customer relationships\",\"search\":\"button\"}},{\"id\":\"members\",\"title\":\"Members\",\"subtitle\":\"Membership access and profiles\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_members\",\"icon\":\"person\",\"metricKey\":\"module:members\",\"countLabel\":\"members\",\"handoffLabel\":\"Open in Wix: Members\",\"navigation\":{\"title\":\"Members\",\"subtitle\":\"Membership access and profiles\",\"search\":\"button\"}},{\"id\":\"groups\",\"title\":\"Groups\",\"subtitle\":\"Communities and conversations\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_groups\",\"icon\":\"person\",\"metricKey\":\"module:groups\",\"countLabel\":\"groups\",\"handoffLabel\":\"Open in Wix: Groups\",\"navigation\":{\"title\":\"Groups\",\"subtitle\":\"Communities and conversations\",\"search\":\"button\"}},{\"id\":\"reviews\",\"title\":\"Reviews\",\"subtitle\":\"Published and pending customer feedback\",\"groupId\":\"people-and-community\",\"group\":\"People and community\",\"screenId\":\"himi_owner_lite_module_reviews\",\"icon\":\"star\",\"metricKey\":\"module:reviews\",\"countLabel\":\"reviews\",\"handoffLabel\":\"Open in Wix: Reviews\",\"navigation\":{\"title\":\"Reviews\",\"subtitle\":\"Published and pending customer feedback\",\"search\":\"button\"}},{\"id\":\"plans\",\"title\":\"Plans\",\"subtitle\":\"Pricing, benefits and visibility\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_plans\",\"icon\":\"bookmark\",\"metricKey\":\"module:plans\",\"countLabel\":\"plans\",\"handoffLabel\":\"Open in Wix: Plans\",\"navigation\":{\"title\":\"Plans\",\"subtitle\":\"Pricing, benefits and visibility\",\"search\":\"button\"}},{\"id\":\"subscriptions\",\"title\":\"Subscriptions\",\"subtitle\":\"Member plans and subscription status\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_subscriptions\",\"icon\":\"bookmark\",\"metricKey\":\"module:subscriptions\",\"countLabel\":\"subscriptions\",\"handoffLabel\":\"Open in Wix: Subscriptions\",\"navigation\":{\"title\":\"Subscriptions\",\"subtitle\":\"Member plans and subscription status\",\"search\":\"button\"}},{\"id\":\"programs\",\"title\":\"Programs\",\"subtitle\":\"Learning experiences and participation\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_programs\",\"icon\":\"play\",\"metricKey\":\"module:programs\",\"countLabel\":\"programs\",\"handoffLabel\":\"Open in Wix: Programs\",\"navigation\":{\"title\":\"Programs\",\"subtitle\":\"Learning experiences and participation\",\"search\":\"button\"}},{\"id\":\"badges\",\"title\":\"Badges\",\"subtitle\":\"Recognition, access and member badges\",\"groupId\":\"membership-and-learning\",\"group\":\"Membership and learning\",\"screenId\":\"himi_owner_lite_module_badges\",\"icon\":\"star\",\"metricKey\":\"module:badges\",\"countLabel\":\"badges\",\"handoffLabel\":\"Open in Wix: Badges\",\"navigation\":{\"title\":\"Badges\",\"subtitle\":\"Recognition, access and member badges\",\"search\":\"button\"}},{\"id\":\"reservations\",\"title\":\"Reservations\",\"subtitle\":\"Guests, tables and arrival times\",\"groupId\":\"scheduling\",\"group\":\"Scheduling\",\"screenId\":\"himi_owner_lite_module_reservations\",\"icon\":\"calendar\",\"metricKey\":\"module:reservations\",\"countLabel\":\"reservations\",\"handoffLabel\":\"Open in Wix: Reservations\",\"navigation\":{\"title\":\"Reservations\",\"subtitle\":\"Guests, tables and arrival times\",\"search\":\"button\"}},{\"id\":\"forms\",\"title\":\"Forms\",\"subtitle\":\"Forms and their configuration\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_module_forms\",\"icon\":\"document\",\"metricKey\":\"module:forms\",\"countLabel\":\"forms\",\"handoffLabel\":\"Open in Wix: Forms\",\"navigation\":{\"title\":\"Forms\",\"subtitle\":\"Forms and their configuration\",\"search\":\"button\"}},{\"id\":\"portfolio\",\"title\":\"Portfolio\",\"subtitle\":\"Projects, stories and galleries\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_module_portfolio\",\"icon\":\"image\",\"metricKey\":\"module:portfolio\",\"countLabel\":\"portfolio\",\"handoffLabel\":\"Open in Wix: Portfolio\",\"navigation\":{\"title\":\"Portfolio\",\"subtitle\":\"Projects, stories and galleries\",\"search\":\"button\"}},{\"id\":\"donationCampaigns\",\"title\":\"Donation campaigns\",\"subtitle\":\"Campaign goals, status and fundraising\",\"groupId\":\"content\",\"group\":\"Content\",\"screenId\":\"himi_owner_lite_module_donationCampaigns\",\"icon\":\"heart\",\"metricKey\":\"module:donationCampaigns\",\"countLabel\":\"donation campaigns\",\"handoffLabel\":\"Open in Wix: Donation campaigns\",\"navigation\":{\"title\":\"Donation campaigns\",\"subtitle\":\"Campaign goals, status and fundraising\",\"search\":\"button\"}}]",
|
|
52697
52720
|
"copy": "{\"ownerManage.blogLabel\":\"Journal\",\"ownerManage.bookingsLabel\":\"Classes\",\"ownerManage.eventsLabel\":\"Workshops\",\"ownerManage.title\":\"Studio\"}",
|
|
52698
52721
|
"businessName": "__HIMI_APP_NAME__"
|
|
52699
52722
|
}
|
|
@@ -55207,7 +55230,9 @@ const SCREENS = runtimeSetting({
|
|
|
55207
55230
|
"onTap": {
|
|
55208
55231
|
"actionId": "himi.open",
|
|
55209
55232
|
"params": {
|
|
55210
|
-
"screenId": "himi_owner_lite_analytics_report"
|
|
55233
|
+
"screenId": "himi_owner_lite_analytics_report",
|
|
55234
|
+
"title": "Build a report",
|
|
55235
|
+
"subtitle": "Any subject area your site tracks"
|
|
55211
55236
|
}
|
|
55212
55237
|
},
|
|
55213
55238
|
"pressFeedback": "highlight"
|
|
@@ -56363,7 +56388,8 @@ const SCREENS = runtimeSetting({
|
|
|
56363
56388
|
"action": {
|
|
56364
56389
|
"actionId": "himi.open",
|
|
56365
56390
|
"params": {
|
|
56366
|
-
"screenId": "himi_owner_lite_manage"
|
|
56391
|
+
"screenId": "himi_owner_lite_manage",
|
|
56392
|
+
"search": "drawer"
|
|
56367
56393
|
}
|
|
56368
56394
|
}
|
|
56369
56395
|
}
|
|
@@ -57000,7 +57026,8 @@ const SCREENS = runtimeSetting({
|
|
|
57000
57026
|
"action": {
|
|
57001
57027
|
"actionId": "himi.open",
|
|
57002
57028
|
"params": {
|
|
57003
|
-
"screenId": "himi_owner_lite_manage"
|
|
57029
|
+
"screenId": "himi_owner_lite_manage",
|
|
57030
|
+
"search": "drawer"
|
|
57004
57031
|
}
|
|
57005
57032
|
}
|
|
57006
57033
|
}
|
|
@@ -62197,7 +62224,9 @@ const SCREENS = runtimeSetting({
|
|
|
62197
62224
|
"onTap": {
|
|
62198
62225
|
"actionId": "himi.open",
|
|
62199
62226
|
"params": {
|
|
62200
|
-
"screenId": "himi_owner_lite_aria_history"
|
|
62227
|
+
"screenId": "himi_owner_lite_aria_history",
|
|
62228
|
+
"title": "Conversations",
|
|
62229
|
+
"subtitle": "Pick up where you left off."
|
|
62201
62230
|
}
|
|
62202
62231
|
},
|
|
62203
62232
|
"accessibilityLabel": "History",
|
|
@@ -63504,7 +63533,8 @@ const SCREENS = runtimeSetting({
|
|
|
63504
63533
|
"actionId": "himi.open",
|
|
63505
63534
|
"params": {
|
|
63506
63535
|
"screenId": "himi_owner_lite_aria",
|
|
63507
|
-
"conversationId": "$item.id"
|
|
63536
|
+
"conversationId": "$item.id",
|
|
63537
|
+
"title": "Aria"
|
|
63508
63538
|
}
|
|
63509
63539
|
}
|
|
63510
63540
|
}
|
|
@@ -63642,7 +63672,9 @@ const SCREENS = runtimeSetting({
|
|
|
63642
63672
|
"action": {
|
|
63643
63673
|
"actionId": "himi.open",
|
|
63644
63674
|
"params": {
|
|
63645
|
-
"screenId": "himi_owner_lite_overview"
|
|
63675
|
+
"screenId": "himi_owner_lite_overview",
|
|
63676
|
+
"title": "Across your businesses",
|
|
63677
|
+
"subtitle": "What needs you, everywhere at once"
|
|
63646
63678
|
}
|
|
63647
63679
|
}
|
|
63648
63680
|
}
|
|
@@ -80209,7 +80241,8 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
|
|
|
80209
80241
|
"action": {
|
|
80210
80242
|
"actionId": "himi.open",
|
|
80211
80243
|
"params": {
|
|
80212
|
-
"screenId": "himi_owner_lite_manage"
|
|
80244
|
+
"screenId": "himi_owner_lite_manage",
|
|
80245
|
+
"search": "drawer"
|
|
80213
80246
|
}
|
|
80214
80247
|
}
|
|
80215
80248
|
}
|
|
@@ -84,14 +84,17 @@ export function createCollectionQuery<Row>(source: CollectionQuerySource<Row>, p
|
|
|
84
84
|
}
|
|
85
85
|
return result;
|
|
86
86
|
};
|
|
87
|
-
|
|
87
|
+
/** [keepRows]: a search typed over the rows on screen leaves them there until its answer arrives (status stays
|
|
88
|
+
* `loading`, and nothing pages under the old answer), so the list is not blanked on each keystroke. */
|
|
89
|
+
const fetch = async (append: boolean, keepRows = false): Promise<void> => {
|
|
88
90
|
if (disposed || (append && (state.loadingMore || state.status === 'loading' || !state.nextCursor))) return;
|
|
89
91
|
const revision = append ? generation : ++generation;
|
|
90
92
|
const cursor = append ? state.nextCursor : '';
|
|
91
93
|
const criteria = copyQuery(state.criteria);
|
|
92
94
|
if (!append) loadedPages = 0;
|
|
93
95
|
state = { ...state, status: append ? 'ready' : 'loading', loadingMore: append, pageError: false, error: '',
|
|
94
|
-
...(append ? {} :
|
|
96
|
+
...(append ? {} : keepRows ? { nextCursor: '', complete: false, provisional: false }
|
|
97
|
+
: { items: [], nextCursor: '', total: undefined, metadata: undefined, complete: false, provisional: false }) };
|
|
95
98
|
emit();
|
|
96
99
|
try {
|
|
97
100
|
if (!append && source.cached) {
|
|
@@ -117,7 +120,9 @@ export function createCollectionQuery<Row>(source: CollectionQuerySource<Row>, p
|
|
|
117
120
|
clearedByError = clear || /HTTP 40[13]\b/.test(String(error));
|
|
118
121
|
if (clearedByError) lastShown = undefined;
|
|
119
122
|
if (clear) loadedPages = 0;
|
|
120
|
-
|
|
123
|
+
// The rows a typed search kept on screen while it ran were never its answer: a failed one shows none of them.
|
|
124
|
+
const drop = clear || keepRows;
|
|
125
|
+
state = { ...state, ...(drop ? { items: [], nextCursor: '', total: undefined, metadata: undefined } : {}),
|
|
121
126
|
status: append && !clear ? 'ready' : 'error', loadingMore: false, pageError: append && !clear, complete: false,
|
|
122
127
|
provisional: false, error: source.errorMessage?.(error) ?? '' };
|
|
123
128
|
}
|
|
@@ -134,9 +139,13 @@ export function createCollectionQuery<Row>(source: CollectionQuerySource<Row>, p
|
|
|
134
139
|
const count = restorePages && same ? Math.max(loadedPages, restoringPages, 1) : 1;
|
|
135
140
|
const showing = lastShown && sameCriteria(lastShown.state.criteria, next) ? lastShown : undefined;
|
|
136
141
|
restoringPages = count;
|
|
142
|
+
// Only the search text changed: the user is typing over the rows on screen, also while the last keystroke's
|
|
143
|
+
// search is still out.
|
|
144
|
+
const typing = !same && (state.status === 'ready' || state.status === 'loading')
|
|
145
|
+
&& sameCriteria({ ...state.criteria, query: '' }, { ...next, query: '' });
|
|
137
146
|
state = { ...state, criteria: next };
|
|
138
147
|
if (revalidate && showing) { revalidating = generation + 1; clearedByError = false; }
|
|
139
|
-
const pending = fetch(false);
|
|
148
|
+
const pending = fetch(false, typing);
|
|
140
149
|
const revision = generation;
|
|
141
150
|
await pending;
|
|
142
151
|
// Re-appearance revalidates every previously opened page using fresh
|
|
@@ -194,7 +194,8 @@ export function decorateCollection(name: string, def: { state: State; actions?:
|
|
|
194
194
|
noSignIn: !signInRequired,
|
|
195
195
|
errorTitle: signInRequired ? copyParam('collection.signInTitle', 'Sign in to see this') : copyParam('collection.loadErrorTitle', 'This collection could not load'),
|
|
196
196
|
errorMessage,
|
|
197
|
-
|
|
197
|
+
// A skeleton only with nothing to show: a search re-running over the rows on screen keeps them.
|
|
198
|
+
noLoading: !loading || rows.length > 0,
|
|
198
199
|
// De-dup against a domain that paints its OWN empty block (screen-kit emptyBlock is
|
|
199
200
|
// gated on the domain's top-level `noEmpty`): only one empty state ever shows.
|
|
200
201
|
noEmptySource: !sourceEmpty || s.noEmpty === false,
|
|
@@ -17,7 +17,7 @@ import { OWNER_MODULES, ownerModuleId } from '../_shared/owner-modules.js';
|
|
|
17
17
|
import { localPreferences } from '../_shared/local-preferences.js';
|
|
18
18
|
import { stashCopy, copyParam, copyTemplate } from '../_shared/himi-copy.js';
|
|
19
19
|
import { fallbackNameFrom, selectedSiteName } from '../_shared/owner-selected-site.js';
|
|
20
|
-
import { DASHBOARD_PATHS, deriveManage, parseAreas, recentAreas, metricFailure, rememberArea, withMetrics, type ManageArea, type Metric, type MetricFailure } from './logic.js';
|
|
20
|
+
import { DASHBOARD_PATHS, deriveManage, navigationArgs, parseAreas, recentAreas, metricFailure, rememberArea, withMetrics, type ManageArea, type Metric, type MetricFailure } from './logic.js';
|
|
21
21
|
|
|
22
22
|
interface State {
|
|
23
23
|
/** The business the header names: the one picked on Sites, else the descriptor's
|
|
@@ -339,13 +339,15 @@ const svc = defineService<State, {
|
|
|
339
339
|
const area = findArea(state, arg);
|
|
340
340
|
if (!area) return state;
|
|
341
341
|
const next = remember(state, area);
|
|
342
|
-
|
|
342
|
+
const args = navigationArgs(area.navigation);
|
|
343
|
+
return navigate(next, { screenId: area.screenId, ...(args ? { args } : {}) }) as State;
|
|
343
344
|
},
|
|
344
345
|
create: (state, arg) => {
|
|
345
346
|
const area = findArea(state, arg);
|
|
346
347
|
if (!area?.createScreenId) return state;
|
|
347
348
|
const next = remember(state, area);
|
|
348
|
-
|
|
349
|
+
const args = navigationArgs(area.createNavigation);
|
|
350
|
+
return navigate(next, { screenId: area.createScreenId, ...(args ? { args } : {}) }) as State;
|
|
349
351
|
},
|
|
350
352
|
handoff: async (state, arg) => {
|
|
351
353
|
const area = findArea(state, arg);
|
|
@@ -52,6 +52,34 @@ export interface ManageArea {
|
|
|
52
52
|
hideHandoff?: boolean;
|
|
53
53
|
/** The accessible name of this area's "Open in Wix", which carries the area ("Open in Wix: Store"). */
|
|
54
54
|
handoffLabel?: string;
|
|
55
|
+
/** The navigation its page declares (`hostTitle`, `topBar.searchable`), for the host's bar the moment it opens it. */
|
|
56
|
+
navigation?: ManageNavigation;
|
|
57
|
+
/** The same for its create screen. */
|
|
58
|
+
createNavigation?: ManageNavigation;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** A page's navigation as the build declares it: its title and subtitle, and where its search goes (none without one). */
|
|
62
|
+
export interface ManageNavigation {
|
|
63
|
+
title?: string;
|
|
64
|
+
subtitle?: string;
|
|
65
|
+
search?: "drawer" | "button";
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function parseNavigation(value: unknown): ManageNavigation | undefined {
|
|
69
|
+
if (!value || typeof value !== "object") return undefined;
|
|
70
|
+
const raw = value as Record<string, unknown>;
|
|
71
|
+
const title = clean(raw.title);
|
|
72
|
+
const subtitle = title ? clean(raw.subtitle) : "";
|
|
73
|
+
const search = raw.search === "drawer" || raw.search === "button" ? raw.search : undefined;
|
|
74
|
+
if (!title && !search) return undefined;
|
|
75
|
+
return { ...(title ? { title } : {}), ...(subtitle ? { subtitle } : {}), ...(search ? { search } : {}) };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** The open action's arguments that carry [navigation] to the host: strings only, as `_nav.args` takes them. */
|
|
79
|
+
export function navigationArgs(navigation: ManageNavigation | undefined): Record<string, string> | undefined {
|
|
80
|
+
if (!navigation) return undefined;
|
|
81
|
+
return { ...(navigation.title ? { title: navigation.title } : {}), ...(navigation.subtitle ? { subtitle: navigation.subtitle } : {}),
|
|
82
|
+
...(navigation.search ? { search: navigation.search } : {}) };
|
|
55
83
|
}
|
|
56
84
|
|
|
57
85
|
export interface ManageSection {
|
|
@@ -98,6 +126,8 @@ export function parseAreas(value: unknown): ManageArea[] {
|
|
|
98
126
|
hideCreate: !(createScreenId && createLabel),
|
|
99
127
|
hideHandoff: !DASHBOARD_PATHS[area.id],
|
|
100
128
|
handoffLabel: clean(raw.handoffLabel) || `Open in Wix: ${area.title}`,
|
|
129
|
+
...(parseNavigation(raw.navigation) ? { navigation: parseNavigation(raw.navigation) } : {}),
|
|
130
|
+
...(createScreenId && createLabel && parseNavigation(raw.createNavigation) ? { createNavigation: parseNavigation(raw.createNavigation) } : {}),
|
|
101
131
|
metricText: "—",
|
|
102
132
|
statusText: "",
|
|
103
133
|
unavailable: false,
|