@pisell/private-materials 6.3.3 → 6.3.4
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +7 -7
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +7 -7
- package/es/businessModel/SalesModel/index.d.ts +1 -0
- package/es/components/Sales/Summary/utils.d.ts +1 -1
- package/es/components/appointmentBooking/components/Content/index.js +1 -1
- package/es/components/appointmentBooking/components/Content/index.less +3 -3
- package/es/components/appointmentBooking/components/Footer/index.d.ts +1 -0
- package/es/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
- package/es/components/appointmentBooking/components/Services/index.js +2 -2
- package/es/components/appointmentBooking/index.js +8 -2
- package/es/components/booking/components/TabProduct/index.d.ts +1 -0
- package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
- package/es/components/booking/forms/table/index.d.ts +1 -0
- package/es/components/booking/info/addServiceVariant/index.d.ts +1 -0
- package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
- package/es/components/booking/info/dateRange/index.d.ts +1 -0
- package/es/components/booking/info/hooks/useInfoHolder.d.ts +1 -0
- package/es/components/booking/info/index.d.ts +1 -0
- package/es/components/booking/info/service/Lists.d.ts +1 -0
- package/es/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
- package/es/components/booking/info/service/like/index.d.ts +1 -0
- package/es/components/booking/info/service2/Lists.d.ts +1 -0
- package/es/components/booking/info2/service/addTimeModal/index.js +0 -1
- package/es/components/booking/materiels/holder/index.d.ts +1 -0
- package/es/components/booking/materiels/startTime/index.d.ts +1 -0
- package/es/components/eftpos/deviceList/index.d.ts +1 -0
- package/es/components/eftpos/form/index.d.ts +1 -0
- package/es/components/eftpos/group/index.d.ts +1 -0
- package/es/components/eftpos/hooks.d.ts +1 -0
- package/es/components/eftpos/icon/apiKey.d.ts +1 -0
- package/es/components/eftpos/icon/device.d.ts +1 -0
- package/es/components/eftpos/receipt/index.d.ts +1 -0
- package/es/components/eftpos/surcharge/index.d.ts +1 -0
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
- package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
- package/es/components/eftposPay/component/step/index.d.ts +1 -0
- package/es/components/eftposPay/component/step/step.d.ts +1 -0
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +1 -1
- package/es/components/eftposPay/store/index.d.ts +2 -2
- package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
- package/es/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
- package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
- package/es/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
- package/es/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
- package/es/components/eventBooking/index.js +8 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
- package/es/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
- package/es/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
- package/es/components/productExtension/fields/Actor/index.d.ts +1 -0
- package/es/components/productExtension/fields/Forms/index.d.ts +1 -0
- package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
- package/es/components/schedules/components/CurrentDay/index.d.ts +1 -0
- package/es/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
- package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
- package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
- package/es/components/schedules/products/index.d.ts +1 -0
- package/es/components/schedules/resources/relationProduct/index.d.ts +1 -0
- package/es/components/shoppingCart/components/Cart/Product.d.ts +1 -0
- package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
- package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
- package/es/components/ticketBooking/components/addServiceVariant/addService.js +2 -2
- package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
- package/es/components/workSpaceList/components/Modal/index.d.ts +1 -0
- package/es/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
- package/es/hooks/useWindowSize.js +8 -1
- package/es/plus/productSelect/CategoryTabs/CategorySkeleton.d.ts +10 -0
- package/es/plus/productSelect/CategoryTabs/CategorySkeleton.js +29 -0
- package/es/plus/productSelect/CategoryTabs/CategorySkeleton.less +30 -0
- package/es/plus/productSelect/CategoryTabs/index.d.ts +18 -0
- package/es/plus/productSelect/CategoryTabs/index.js +171 -0
- package/es/plus/productSelect/ProductCard/ProductCardSkeleton.d.ts +10 -0
- package/es/plus/productSelect/ProductCard/ProductCardSkeleton.js +37 -0
- package/es/plus/productSelect/ProductCard/ProductCardSkeleton.less +81 -0
- package/es/plus/productSelect/ProductCard/index.d.ts +45 -0
- package/es/plus/productSelect/ProductCard/index.js +170 -0
- package/es/plus/productSelect/ProductCard/index.less +270 -0
- package/es/plus/productSelect/ProductList/gridComponents.d.ts +44 -0
- package/es/plus/productSelect/ProductList/gridComponents.js +149 -0
- package/es/plus/productSelect/ProductList/index.d.ts +22 -0
- package/es/plus/productSelect/ProductList/index.js +72 -0
- package/es/plus/productSelect/ProductList/index.less +0 -0
- package/es/plus/productSelect/components/IntersectionObserver.d.ts +42 -0
- package/es/plus/productSelect/components/IntersectionObserver.js +276 -0
- package/es/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
- package/es/plus/productSelect/components/TabsStructure/TabsStructure.js +357 -0
- package/es/plus/productSelect/components/TabsStructure/TabsStructure.less +224 -0
- package/es/plus/productSelect/components/TabsStructure/hooks.d.ts +22 -0
- package/es/plus/productSelect/components/TabsStructure/hooks.js +243 -0
- package/es/plus/productSelect/components/TabsStructure/index.d.ts +5 -0
- package/es/plus/productSelect/components/TabsStructure/index.js +13 -0
- package/es/plus/productSelect/components/TabsStructure/styles.d.ts +47 -0
- package/es/plus/productSelect/components/TabsStructure/styles.js +87 -0
- package/es/plus/productSelect/components/TabsStructure/types.d.ts +105 -0
- package/es/plus/productSelect/components/TabsStructure/types.js +1 -0
- package/es/plus/productSelect/components/TabsStructure/utils.d.ts +12 -0
- package/es/plus/productSelect/components/TabsStructure/utils.js +56 -0
- package/es/plus/productSelect/components/pisellPriceText/index.d.ts +11 -0
- package/es/plus/productSelect/components/pisellPriceText/index.js +43 -0
- package/es/plus/productSelect/hooks/useToken.d.ts +18 -0
- package/es/plus/productSelect/hooks/useToken.js +34 -0
- package/es/plus/productSelect/index.d.ts +31 -0
- package/es/plus/productSelect/index.js +270 -0
- package/es/plus/productSelect/index.less +56 -0
- package/es/plus/productSelect/locales.d.ts +18 -0
- package/es/plus/productSelect/locales.js +17 -0
- package/es/plus/productSelect/theme/token.d.ts +17 -0
- package/es/plus/productSelect/theme/token.js +19 -0
- package/es/plus/productSelect/utils.d.ts +39 -0
- package/es/plus/productSelect/utils.js +162 -0
- package/lib/businessModel/SalesModel/index.d.ts +1 -0
- package/lib/components/Sales/Summary/utils.d.ts +1 -1
- package/lib/components/appointmentBooking/components/Content/index.js +1 -1
- package/lib/components/appointmentBooking/components/Content/index.less +3 -3
- package/lib/components/appointmentBooking/components/Footer/index.d.ts +1 -0
- package/lib/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
- package/lib/components/appointmentBooking/components/Services/index.js +2 -2
- package/lib/components/appointmentBooking/index.js +6 -1
- package/lib/components/booking/components/TabProduct/index.d.ts +1 -0
- package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
- package/lib/components/booking/forms/table/index.d.ts +1 -0
- package/lib/components/booking/info/addServiceVariant/index.d.ts +1 -0
- package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
- package/lib/components/booking/info/dateRange/index.d.ts +1 -0
- package/lib/components/booking/info/hooks/useInfoHolder.d.ts +1 -0
- package/lib/components/booking/info/index.d.ts +1 -0
- package/lib/components/booking/info/service/Lists.d.ts +1 -0
- package/lib/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
- package/lib/components/booking/info/service/like/index.d.ts +1 -0
- package/lib/components/booking/info/service2/Lists.d.ts +1 -0
- package/lib/components/booking/info2/service/addTimeModal/index.js +0 -1
- package/lib/components/booking/materiels/holder/index.d.ts +1 -0
- package/lib/components/booking/materiels/startTime/index.d.ts +1 -0
- package/lib/components/eftpos/deviceList/index.d.ts +1 -0
- package/lib/components/eftpos/form/index.d.ts +1 -0
- package/lib/components/eftpos/group/index.d.ts +1 -0
- package/lib/components/eftpos/hooks.d.ts +1 -0
- package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
- package/lib/components/eftpos/icon/device.d.ts +1 -0
- package/lib/components/eftpos/receipt/index.d.ts +1 -0
- package/lib/components/eftpos/surcharge/index.d.ts +1 -0
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
- package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
- package/lib/components/eftposPay/component/step/index.d.ts +1 -0
- package/lib/components/eftposPay/component/step/step.d.ts +1 -0
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +1 -1
- package/lib/components/eftposPay/store/index.d.ts +2 -2
- package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
- package/lib/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
- package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
- package/lib/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
- package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
- package/lib/components/eventBooking/index.js +6 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
- package/lib/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
- package/lib/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
- package/lib/components/productExtension/fields/Actor/index.d.ts +1 -0
- package/lib/components/productExtension/fields/Forms/index.d.ts +1 -0
- package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
- package/lib/components/schedules/components/CurrentDay/index.d.ts +1 -0
- package/lib/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
- package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
- package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
- package/lib/components/schedules/products/index.d.ts +1 -0
- package/lib/components/schedules/resources/relationProduct/index.d.ts +1 -0
- package/lib/components/shoppingCart/components/Cart/Product.d.ts +1 -0
- package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
- package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
- package/lib/components/ticketBooking/components/addServiceVariant/addService.js +2 -2
- package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
- package/lib/components/workSpaceList/components/Modal/index.d.ts +1 -0
- package/lib/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
- package/lib/hooks/useWindowSize.js +6 -1
- package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.d.ts +10 -0
- package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.js +62 -0
- package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.less +30 -0
- package/lib/plus/productSelect/CategoryTabs/index.d.ts +18 -0
- package/lib/plus/productSelect/CategoryTabs/index.js +183 -0
- package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.d.ts +10 -0
- package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.js +58 -0
- package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.less +81 -0
- package/lib/plus/productSelect/ProductCard/index.d.ts +45 -0
- package/lib/plus/productSelect/ProductCard/index.js +184 -0
- package/lib/plus/productSelect/ProductCard/index.less +270 -0
- package/lib/plus/productSelect/ProductList/gridComponents.d.ts +44 -0
- package/lib/plus/productSelect/ProductList/gridComponents.js +148 -0
- package/lib/plus/productSelect/ProductList/index.d.ts +22 -0
- package/lib/plus/productSelect/ProductList/index.js +86 -0
- package/lib/plus/productSelect/ProductList/index.less +0 -0
- package/lib/plus/productSelect/components/IntersectionObserver.d.ts +42 -0
- package/lib/plus/productSelect/components/IntersectionObserver.js +269 -0
- package/lib/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
- package/lib/plus/productSelect/components/TabsStructure/TabsStructure.js +393 -0
- package/lib/plus/productSelect/components/TabsStructure/TabsStructure.less +224 -0
- package/lib/plus/productSelect/components/TabsStructure/hooks.d.ts +22 -0
- package/lib/plus/productSelect/components/TabsStructure/hooks.js +209 -0
- package/lib/plus/productSelect/components/TabsStructure/index.d.ts +5 -0
- package/lib/plus/productSelect/components/TabsStructure/index.js +92 -0
- package/lib/plus/productSelect/components/TabsStructure/styles.d.ts +47 -0
- package/lib/plus/productSelect/components/TabsStructure/styles.js +122 -0
- package/lib/plus/productSelect/components/TabsStructure/types.d.ts +105 -0
- package/lib/plus/productSelect/components/TabsStructure/types.js +17 -0
- package/lib/plus/productSelect/components/TabsStructure/utils.d.ts +12 -0
- package/lib/plus/productSelect/components/TabsStructure/utils.js +72 -0
- package/lib/plus/productSelect/components/pisellPriceText/index.d.ts +11 -0
- package/lib/plus/productSelect/components/pisellPriceText/index.js +72 -0
- package/lib/plus/productSelect/hooks/useToken.d.ts +18 -0
- package/lib/plus/productSelect/hooks/useToken.js +50 -0
- package/lib/plus/productSelect/index.d.ts +31 -0
- package/lib/plus/productSelect/index.js +299 -0
- package/lib/plus/productSelect/index.less +56 -0
- package/lib/plus/productSelect/locales.d.ts +18 -0
- package/lib/plus/productSelect/locales.js +41 -0
- package/lib/plus/productSelect/theme/token.d.ts +17 -0
- package/lib/plus/productSelect/theme/token.js +47 -0
- package/lib/plus/productSelect/utils.d.ts +39 -0
- package/lib/plus/productSelect/utils.js +138 -0
- package/package.json +2 -2
@@ -0,0 +1,209 @@
|
|
1
|
+
var __defProp = Object.defineProperty;
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
+
var __export = (target, all) => {
|
6
|
+
for (var name in all)
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
8
|
+
};
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
11
|
+
for (let key of __getOwnPropNames(from))
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
14
|
+
}
|
15
|
+
return to;
|
16
|
+
};
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
18
|
+
|
19
|
+
// src/plus/productSelect/components/TabsStructure/hooks.ts
|
20
|
+
var hooks_exports = {};
|
21
|
+
__export(hooks_exports, {
|
22
|
+
useSelectionIndicator: () => useSelectionIndicator
|
23
|
+
});
|
24
|
+
module.exports = __toCommonJS(hooks_exports);
|
25
|
+
var import_react = require("react");
|
26
|
+
var import_utils = require("./utils");
|
27
|
+
function useSelectionIndicator(containerRef, selectedTabId, transition) {
|
28
|
+
const [indicatorStyle, setIndicatorStyle] = (0, import_react.useState)({
|
29
|
+
width: 0,
|
30
|
+
transform: "translateX(0)",
|
31
|
+
transition: "none"
|
32
|
+
});
|
33
|
+
const [selectedTabRef, setSelectedTabRef] = (0, import_react.useState)();
|
34
|
+
const [isFocusVisible, setIsFocusVisible] = (0, import_react.useState)(false);
|
35
|
+
const [focusRingClasses, setFocusRingClasses] = (0, import_react.useState)("");
|
36
|
+
const setSelectedTab = (0, import_react.useCallback)((element) => {
|
37
|
+
setSelectedTabRef(
|
38
|
+
(prevRef) => (prevRef == null ? void 0 : prevRef.current) === element ? prevRef : { current: element }
|
39
|
+
);
|
40
|
+
}, []);
|
41
|
+
const findSelectedTabByAttribute = (0, import_react.useCallback)(() => {
|
42
|
+
if (!containerRef.current) return null;
|
43
|
+
const selectedTab = containerRef.current.querySelector('[role="tab"][aria-selected="true"]');
|
44
|
+
if (selectedTab) {
|
45
|
+
setSelectedTab(selectedTab);
|
46
|
+
}
|
47
|
+
return selectedTab;
|
48
|
+
}, [containerRef, setSelectedTab]);
|
49
|
+
const findSelectedTabById = (0, import_react.useCallback)(() => {
|
50
|
+
if (!selectedTabId || !containerRef.current) return null;
|
51
|
+
const selectedTab = containerRef.current.querySelector(`[id="${selectedTabId}"]`);
|
52
|
+
return selectedTab;
|
53
|
+
}, [containerRef, selectedTabId]);
|
54
|
+
const getTransition = (0, import_react.useCallback)((customTransition) => {
|
55
|
+
return customTransition || "transform 300ms, width 100ms";
|
56
|
+
}, []);
|
57
|
+
const getDirection = (0, import_react.useCallback)(() => {
|
58
|
+
if (!containerRef.current) return "ltr";
|
59
|
+
return window.getComputedStyle(containerRef.current).direction || "ltr";
|
60
|
+
}, [containerRef]);
|
61
|
+
const updateIndicatorPosition = (0, import_react.useCallback)(() => {
|
62
|
+
try {
|
63
|
+
const selectedTab = findSelectedTabByAttribute() || findSelectedTabById();
|
64
|
+
if (!selectedTab || !containerRef.current) {
|
65
|
+
setIndicatorStyle((prev) => ({
|
66
|
+
...prev,
|
67
|
+
width: 0,
|
68
|
+
transform: "translateX(0)"
|
69
|
+
}));
|
70
|
+
return;
|
71
|
+
}
|
72
|
+
const container = containerRef.current;
|
73
|
+
const offsetParent = selectedTab.offsetParent;
|
74
|
+
if (!offsetParent) {
|
75
|
+
setIndicatorStyle((prev) => ({
|
76
|
+
...prev,
|
77
|
+
width: 0,
|
78
|
+
transform: "translateX(0)"
|
79
|
+
}));
|
80
|
+
return;
|
81
|
+
}
|
82
|
+
if (!selectedTab.isConnected) {
|
83
|
+
console.warn("useSelectionIndicator: Selected tab is no longer connected to DOM");
|
84
|
+
return;
|
85
|
+
}
|
86
|
+
const direction = getDirection();
|
87
|
+
const width = selectedTab.offsetWidth;
|
88
|
+
if (width <= 0) {
|
89
|
+
setIndicatorStyle((prev) => ({
|
90
|
+
...prev,
|
91
|
+
width: 0,
|
92
|
+
transform: "translateX(0)"
|
93
|
+
}));
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
let left;
|
97
|
+
if (direction === "rtl") {
|
98
|
+
left = -1 * (offsetParent.clientWidth - selectedTab.offsetLeft - selectedTab.offsetWidth);
|
99
|
+
} else {
|
100
|
+
left = selectedTab.offsetLeft;
|
101
|
+
}
|
102
|
+
const transitionValue = getTransition(transition);
|
103
|
+
setIndicatorStyle({
|
104
|
+
width: `${width}px`,
|
105
|
+
transform: `translateX(${left}px)`,
|
106
|
+
transition: transitionValue
|
107
|
+
});
|
108
|
+
} catch (error) {
|
109
|
+
console.warn("useSelectionIndicator: Error updating indicator position:", error);
|
110
|
+
setIndicatorStyle((prev) => ({
|
111
|
+
...prev,
|
112
|
+
width: 0,
|
113
|
+
transform: "translateX(0)"
|
114
|
+
}));
|
115
|
+
}
|
116
|
+
}, [containerRef, selectedTabId, transition, findSelectedTabByAttribute, findSelectedTabById, getDirection, getTransition]);
|
117
|
+
const debouncedUpdate = (0, import_react.useMemo)(
|
118
|
+
() => (0, import_utils.debounce)(updateIndicatorPosition, 50),
|
119
|
+
[updateIndicatorPosition]
|
120
|
+
);
|
121
|
+
const handleFocusIn = (0, import_react.useCallback)((event) => {
|
122
|
+
setIsFocusVisible(event.target instanceof HTMLElement && event.target.matches(":focus-visible"));
|
123
|
+
setFocusRingClasses(event.target instanceof HTMLElement && event.target.matches(":focus-visible") ? "focus-visible" : "");
|
124
|
+
}, []);
|
125
|
+
const handleFocusOut = (0, import_react.useCallback)(() => {
|
126
|
+
setIsFocusVisible(false);
|
127
|
+
setFocusRingClasses("");
|
128
|
+
}, []);
|
129
|
+
const handleMouseDown = (0, import_react.useCallback)(() => {
|
130
|
+
setIsFocusVisible(false);
|
131
|
+
setFocusRingClasses("");
|
132
|
+
}, []);
|
133
|
+
(0, import_react.useEffect)(() => {
|
134
|
+
debouncedUpdate();
|
135
|
+
}, [debouncedUpdate, selectedTabId]);
|
136
|
+
(0, import_react.useEffect)(() => {
|
137
|
+
const container = containerRef.current;
|
138
|
+
if (!container) return;
|
139
|
+
let resizeObserver = null;
|
140
|
+
try {
|
141
|
+
resizeObserver = new ResizeObserver((entries) => {
|
142
|
+
try {
|
143
|
+
const validEntries = entries.filter(
|
144
|
+
(entry) => entry.target && entry.target.isConnected
|
145
|
+
);
|
146
|
+
if (validEntries.length > 0) {
|
147
|
+
debouncedUpdate();
|
148
|
+
}
|
149
|
+
} catch (error) {
|
150
|
+
console.warn("useSelectionIndicator: Error in ResizeObserver callback:", error);
|
151
|
+
}
|
152
|
+
});
|
153
|
+
resizeObserver.observe(container);
|
154
|
+
if (selectedTabRef == null ? void 0 : selectedTabRef.current) {
|
155
|
+
resizeObserver.observe(selectedTabRef.current);
|
156
|
+
}
|
157
|
+
} catch (error) {
|
158
|
+
console.warn("useSelectionIndicator: Failed to create ResizeObserver:", error);
|
159
|
+
}
|
160
|
+
return () => {
|
161
|
+
if (resizeObserver) {
|
162
|
+
try {
|
163
|
+
resizeObserver.disconnect();
|
164
|
+
} catch (error) {
|
165
|
+
console.warn("useSelectionIndicator: Error disconnecting ResizeObserver:", error);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
};
|
169
|
+
}, [containerRef, selectedTabRef, debouncedUpdate]);
|
170
|
+
(0, import_react.useEffect)(() => {
|
171
|
+
const container = containerRef.current;
|
172
|
+
if (!container) return;
|
173
|
+
const nativeFocusIn = (event) => {
|
174
|
+
const syntheticEvent = {
|
175
|
+
...event,
|
176
|
+
currentTarget: event.currentTarget,
|
177
|
+
target: event.target
|
178
|
+
};
|
179
|
+
handleFocusIn(syntheticEvent);
|
180
|
+
};
|
181
|
+
container.addEventListener("focusin", nativeFocusIn);
|
182
|
+
container.addEventListener("focusout", handleFocusOut);
|
183
|
+
container.addEventListener("mousedown", handleMouseDown);
|
184
|
+
return () => {
|
185
|
+
container.removeEventListener("focusin", nativeFocusIn);
|
186
|
+
container.removeEventListener("focusout", handleFocusOut);
|
187
|
+
container.removeEventListener("mousedown", handleMouseDown);
|
188
|
+
};
|
189
|
+
}, [containerRef, handleFocusIn, handleFocusOut, handleMouseDown]);
|
190
|
+
return {
|
191
|
+
selectionIndicatorProps: {
|
192
|
+
focusRingClasses,
|
193
|
+
isFocusVisible,
|
194
|
+
style: {
|
195
|
+
...indicatorStyle,
|
196
|
+
transition: getTransition(transition)
|
197
|
+
}
|
198
|
+
},
|
199
|
+
listContainerProps: {
|
200
|
+
onFocus: handleFocusIn,
|
201
|
+
onBlur: handleFocusOut,
|
202
|
+
onMouseDown: handleMouseDown
|
203
|
+
}
|
204
|
+
};
|
205
|
+
}
|
206
|
+
// Annotate the CommonJS export names for ESM import in node:
|
207
|
+
0 && (module.exports = {
|
208
|
+
useSelectionIndicator
|
209
|
+
});
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { default as TabsStructure, TabListContainer, TabItem, Rail, SelectionIndicator, ScrollShadow, ChevronControls, ChevronButton } from './TabsStructure';
|
2
|
+
export type { TabsStructureProps, TabListContainerProps, TabItemProps, RailProps, SelectionIndicatorProps, ScrollShadowProps, ChevronControlsProps, ChevronButtonProps, TabContextValue, ScrollLocation, TabWrapperClasses, TabListClasses, TabItemClasses, RailClasses, SelectionClasses, ShadowClasses, ChevronClasses, } from './types';
|
3
|
+
export { tabWrapperClasses, tabListClasses, tabItemClasses, railClasses, selectionClasses, shadowClasses, chevronClasses, chevronButtonClasses, tabWrapperClassNames, tabListClassNames, tabItemClassNames, railClassNames, selectionClassNames, shadowClassNames, chevronClassNames } from './styles';
|
4
|
+
export { debounce, mergeRefs } from './utils';
|
5
|
+
export { useSelectionIndicator, } from './hooks';
|
@@ -0,0 +1,92 @@
|
|
1
|
+
var __create = Object.create;
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
7
|
+
var __export = (target, all) => {
|
8
|
+
for (var name in all)
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
10
|
+
};
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
13
|
+
for (let key of __getOwnPropNames(from))
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
16
|
+
}
|
17
|
+
return to;
|
18
|
+
};
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
25
|
+
mod
|
26
|
+
));
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
28
|
+
|
29
|
+
// src/plus/productSelect/components/TabsStructure/index.ts
|
30
|
+
var TabsStructure_exports = {};
|
31
|
+
__export(TabsStructure_exports, {
|
32
|
+
ChevronButton: () => import_TabsStructure.ChevronButton,
|
33
|
+
ChevronControls: () => import_TabsStructure.ChevronControls,
|
34
|
+
Rail: () => import_TabsStructure.Rail,
|
35
|
+
ScrollShadow: () => import_TabsStructure.ScrollShadow,
|
36
|
+
SelectionIndicator: () => import_TabsStructure.SelectionIndicator,
|
37
|
+
TabItem: () => import_TabsStructure.TabItem,
|
38
|
+
TabListContainer: () => import_TabsStructure.TabListContainer,
|
39
|
+
TabsStructure: () => import_TabsStructure.default,
|
40
|
+
chevronButtonClasses: () => import_styles.chevronButtonClasses,
|
41
|
+
chevronClassNames: () => import_styles.chevronClassNames,
|
42
|
+
chevronClasses: () => import_styles.chevronClasses,
|
43
|
+
debounce: () => import_utils.debounce,
|
44
|
+
mergeRefs: () => import_utils.mergeRefs,
|
45
|
+
railClassNames: () => import_styles.railClassNames,
|
46
|
+
railClasses: () => import_styles.railClasses,
|
47
|
+
selectionClassNames: () => import_styles.selectionClassNames,
|
48
|
+
selectionClasses: () => import_styles.selectionClasses,
|
49
|
+
shadowClassNames: () => import_styles.shadowClassNames,
|
50
|
+
shadowClasses: () => import_styles.shadowClasses,
|
51
|
+
tabItemClassNames: () => import_styles.tabItemClassNames,
|
52
|
+
tabItemClasses: () => import_styles.tabItemClasses,
|
53
|
+
tabListClassNames: () => import_styles.tabListClassNames,
|
54
|
+
tabListClasses: () => import_styles.tabListClasses,
|
55
|
+
tabWrapperClassNames: () => import_styles.tabWrapperClassNames,
|
56
|
+
tabWrapperClasses: () => import_styles.tabWrapperClasses,
|
57
|
+
useSelectionIndicator: () => import_hooks.useSelectionIndicator
|
58
|
+
});
|
59
|
+
module.exports = __toCommonJS(TabsStructure_exports);
|
60
|
+
var import_TabsStructure = __toESM(require("./TabsStructure"));
|
61
|
+
var import_styles = require("./styles");
|
62
|
+
var import_utils = require("./utils");
|
63
|
+
var import_hooks = require("./hooks");
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
65
|
+
0 && (module.exports = {
|
66
|
+
ChevronButton,
|
67
|
+
ChevronControls,
|
68
|
+
Rail,
|
69
|
+
ScrollShadow,
|
70
|
+
SelectionIndicator,
|
71
|
+
TabItem,
|
72
|
+
TabListContainer,
|
73
|
+
TabsStructure,
|
74
|
+
chevronButtonClasses,
|
75
|
+
chevronClassNames,
|
76
|
+
chevronClasses,
|
77
|
+
debounce,
|
78
|
+
mergeRefs,
|
79
|
+
railClassNames,
|
80
|
+
railClasses,
|
81
|
+
selectionClassNames,
|
82
|
+
selectionClasses,
|
83
|
+
shadowClassNames,
|
84
|
+
shadowClasses,
|
85
|
+
tabItemClassNames,
|
86
|
+
tabItemClasses,
|
87
|
+
tabListClassNames,
|
88
|
+
tabListClasses,
|
89
|
+
tabWrapperClassNames,
|
90
|
+
tabWrapperClasses,
|
91
|
+
useSelectionIndicator
|
92
|
+
});
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/**
|
2
|
+
* CSS Classes mapping for TabComponent
|
3
|
+
*/
|
4
|
+
import { TabWrapperClasses, TabListClasses, TabItemClasses, RailClasses, SelectionClasses, ShadowClasses, ChevronClasses } from './types';
|
5
|
+
export declare const tabWrapperClasses: TabWrapperClasses;
|
6
|
+
export declare const tabListClasses: TabListClasses;
|
7
|
+
export declare const tabItemClasses: TabItemClasses;
|
8
|
+
export declare const railClasses: RailClasses;
|
9
|
+
export declare const selectionClasses: SelectionClasses;
|
10
|
+
export declare const shadowClasses: ShadowClasses;
|
11
|
+
export declare const chevronClasses: ChevronClasses;
|
12
|
+
export declare const chevronButtonClasses: {
|
13
|
+
button: string;
|
14
|
+
disabled: string;
|
15
|
+
prev: string;
|
16
|
+
next: string;
|
17
|
+
};
|
18
|
+
export declare const tabWrapperClassNames: {
|
19
|
+
wrapper: string;
|
20
|
+
};
|
21
|
+
export declare const tabListClassNames: {
|
22
|
+
list: string;
|
23
|
+
};
|
24
|
+
export declare const tabItemClassNames: {
|
25
|
+
item: string;
|
26
|
+
selected: string;
|
27
|
+
disabled: string;
|
28
|
+
};
|
29
|
+
export declare const railClassNames: {
|
30
|
+
rail: string;
|
31
|
+
};
|
32
|
+
export declare const selectionClassNames: {
|
33
|
+
selection: string;
|
34
|
+
position: string;
|
35
|
+
focused: string;
|
36
|
+
};
|
37
|
+
export declare const shadowClassNames: {
|
38
|
+
shadow: string;
|
39
|
+
isVisible: string;
|
40
|
+
locationStart: string;
|
41
|
+
locationEnd: string;
|
42
|
+
};
|
43
|
+
export declare const chevronClassNames: {
|
44
|
+
controls: string;
|
45
|
+
button: string;
|
46
|
+
disabled: string;
|
47
|
+
};
|
@@ -0,0 +1,122 @@
|
|
1
|
+
var __defProp = Object.defineProperty;
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
+
var __export = (target, all) => {
|
6
|
+
for (var name in all)
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
8
|
+
};
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
11
|
+
for (let key of __getOwnPropNames(from))
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
14
|
+
}
|
15
|
+
return to;
|
16
|
+
};
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
18
|
+
|
19
|
+
// src/plus/productSelect/components/TabsStructure/styles.ts
|
20
|
+
var styles_exports = {};
|
21
|
+
__export(styles_exports, {
|
22
|
+
chevronButtonClasses: () => chevronButtonClasses,
|
23
|
+
chevronClassNames: () => chevronClassNames,
|
24
|
+
chevronClasses: () => chevronClasses,
|
25
|
+
railClassNames: () => railClassNames,
|
26
|
+
railClasses: () => railClasses,
|
27
|
+
selectionClassNames: () => selectionClassNames,
|
28
|
+
selectionClasses: () => selectionClasses,
|
29
|
+
shadowClassNames: () => shadowClassNames,
|
30
|
+
shadowClasses: () => shadowClasses,
|
31
|
+
tabItemClassNames: () => tabItemClassNames,
|
32
|
+
tabItemClasses: () => tabItemClasses,
|
33
|
+
tabListClassNames: () => tabListClassNames,
|
34
|
+
tabListClasses: () => tabListClasses,
|
35
|
+
tabWrapperClassNames: () => tabWrapperClassNames,
|
36
|
+
tabWrapperClasses: () => tabWrapperClasses
|
37
|
+
});
|
38
|
+
module.exports = __toCommonJS(styles_exports);
|
39
|
+
var tabWrapperClasses = {
|
40
|
+
wrapper: "pisell-tabstruct-wrapper"
|
41
|
+
};
|
42
|
+
var tabListClasses = {
|
43
|
+
list: "pisell-tabstruct-list"
|
44
|
+
};
|
45
|
+
var tabItemClasses = {
|
46
|
+
item: "pisell-tabstruct-item",
|
47
|
+
selected: "pisell-tabstruct-item--selected",
|
48
|
+
disabled: "pisell-tabstruct-item--disabled"
|
49
|
+
};
|
50
|
+
var railClasses = {
|
51
|
+
rail: "pisell-tabstruct-rail"
|
52
|
+
};
|
53
|
+
var selectionClasses = {
|
54
|
+
selection: "pisell-tabstruct-selection",
|
55
|
+
position: "pisell-tabstruct-selection--positioned",
|
56
|
+
focused: "pisell-tabstruct-selection--focused"
|
57
|
+
};
|
58
|
+
var shadowClasses = {
|
59
|
+
shadow: "pisell-tabstruct-shadow",
|
60
|
+
isVisible: "pisell-tabstruct-shadow--visible",
|
61
|
+
locationStart: "pisell-tabstruct-shadow--start",
|
62
|
+
locationEnd: "pisell-tabstruct-shadow--end"
|
63
|
+
};
|
64
|
+
var chevronClasses = {
|
65
|
+
controls: "pisell-tabstruct-chevron-controls",
|
66
|
+
button: "pisell-tabstruct-chevron-button",
|
67
|
+
disabled: "pisell-tabstruct-chevron-button--disabled"
|
68
|
+
};
|
69
|
+
var chevronButtonClasses = {
|
70
|
+
button: "pisell-tabstruct-chevron-button",
|
71
|
+
disabled: "pisell-tabstruct-chevron-button--disabled",
|
72
|
+
prev: "pisell-tabstruct-chevron-button--prev",
|
73
|
+
next: "pisell-tabstruct-chevron-button--next"
|
74
|
+
};
|
75
|
+
var tabWrapperClassNames = {
|
76
|
+
wrapper: tabWrapperClasses.wrapper
|
77
|
+
};
|
78
|
+
var tabListClassNames = {
|
79
|
+
list: tabListClasses.list
|
80
|
+
};
|
81
|
+
var tabItemClassNames = {
|
82
|
+
item: tabItemClasses.item,
|
83
|
+
selected: tabItemClasses.selected,
|
84
|
+
disabled: tabItemClasses.disabled
|
85
|
+
};
|
86
|
+
var railClassNames = {
|
87
|
+
rail: railClasses.rail
|
88
|
+
};
|
89
|
+
var selectionClassNames = {
|
90
|
+
selection: selectionClasses.selection,
|
91
|
+
position: selectionClasses.position,
|
92
|
+
focused: selectionClasses.focused
|
93
|
+
};
|
94
|
+
var shadowClassNames = {
|
95
|
+
shadow: shadowClasses.shadow,
|
96
|
+
isVisible: shadowClasses.isVisible,
|
97
|
+
locationStart: shadowClasses.locationStart,
|
98
|
+
locationEnd: shadowClasses.locationEnd
|
99
|
+
};
|
100
|
+
var chevronClassNames = {
|
101
|
+
controls: chevronClasses.controls,
|
102
|
+
button: chevronClasses.button,
|
103
|
+
disabled: chevronClasses.disabled
|
104
|
+
};
|
105
|
+
// Annotate the CommonJS export names for ESM import in node:
|
106
|
+
0 && (module.exports = {
|
107
|
+
chevronButtonClasses,
|
108
|
+
chevronClassNames,
|
109
|
+
chevronClasses,
|
110
|
+
railClassNames,
|
111
|
+
railClasses,
|
112
|
+
selectionClassNames,
|
113
|
+
selectionClasses,
|
114
|
+
shadowClassNames,
|
115
|
+
shadowClasses,
|
116
|
+
tabItemClassNames,
|
117
|
+
tabItemClasses,
|
118
|
+
tabListClassNames,
|
119
|
+
tabListClasses,
|
120
|
+
tabWrapperClassNames,
|
121
|
+
tabWrapperClasses
|
122
|
+
});
|
@@ -0,0 +1,105 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
export declare type ScrollLocation = 'start' | 'end';
|
3
|
+
export interface TabContextValue {
|
4
|
+
selectedTab?: string;
|
5
|
+
onTabChange?: (tabId: string) => void;
|
6
|
+
registerTab?: (tabId: string, element: HTMLElement) => void;
|
7
|
+
unregisterTab?: (tabId: string) => void;
|
8
|
+
railRef?: React.RefObject<HTMLDivElement>;
|
9
|
+
}
|
10
|
+
export interface TabsStructureProps {
|
11
|
+
children?: React.ReactNode;
|
12
|
+
className?: string;
|
13
|
+
/** 当前选中的tab */
|
14
|
+
selectedTab?: string;
|
15
|
+
/** tab变更回调 */
|
16
|
+
onTabChange?: (tabId: string) => void;
|
17
|
+
/** 是否启用自动滚动到选中tab */
|
18
|
+
autoScrollToSelected?: boolean;
|
19
|
+
/** Rail组件的ref,用于手动控制滚动等操作 */
|
20
|
+
railRef?: React.RefObject<HTMLDivElement>;
|
21
|
+
[key: string]: any;
|
22
|
+
}
|
23
|
+
export interface TabListContainerProps {
|
24
|
+
children?: React.ReactNode;
|
25
|
+
className?: string;
|
26
|
+
[key: string]: any;
|
27
|
+
}
|
28
|
+
export interface TabItemProps {
|
29
|
+
children?: React.ReactNode;
|
30
|
+
isSelected?: boolean;
|
31
|
+
isDisabled?: boolean;
|
32
|
+
className?: string;
|
33
|
+
onClick?: (key?: string) => void;
|
34
|
+
/** Tab的唯一标识符 */
|
35
|
+
tabId?: string;
|
36
|
+
/** 是否自动注册到上下文 */
|
37
|
+
autoRegister?: boolean;
|
38
|
+
[key: string]: any;
|
39
|
+
}
|
40
|
+
export interface RailProps {
|
41
|
+
children?: React.ReactNode;
|
42
|
+
className?: string;
|
43
|
+
[key: string]: any;
|
44
|
+
}
|
45
|
+
export interface SelectionIndicatorProps {
|
46
|
+
focusRingClasses?: string;
|
47
|
+
isFocusVisible?: boolean;
|
48
|
+
style?: React.CSSProperties;
|
49
|
+
className?: string;
|
50
|
+
[key: string]: any;
|
51
|
+
}
|
52
|
+
export interface ScrollShadowProps {
|
53
|
+
location: ScrollLocation;
|
54
|
+
visible: boolean;
|
55
|
+
className?: string;
|
56
|
+
[key: string]: any;
|
57
|
+
}
|
58
|
+
export interface ChevronButtonProps {
|
59
|
+
direction: 'prev' | 'next';
|
60
|
+
disabled?: boolean;
|
61
|
+
onClick?: () => void;
|
62
|
+
className?: string;
|
63
|
+
'aria-label'?: string;
|
64
|
+
[key: string]: any;
|
65
|
+
}
|
66
|
+
export interface ChevronControlsProps {
|
67
|
+
isPrevDisabled?: boolean;
|
68
|
+
isNextDisabled?: boolean;
|
69
|
+
onPrevClick?: () => void;
|
70
|
+
onNextClick?: () => void;
|
71
|
+
className?: string;
|
72
|
+
prevAction?: () => void;
|
73
|
+
nextAction?: () => void;
|
74
|
+
[key: string]: any;
|
75
|
+
}
|
76
|
+
export interface TabWrapperClasses {
|
77
|
+
wrapper: string;
|
78
|
+
}
|
79
|
+
export interface TabListClasses {
|
80
|
+
list: string;
|
81
|
+
}
|
82
|
+
export interface TabItemClasses {
|
83
|
+
item: string;
|
84
|
+
selected: string;
|
85
|
+
disabled: string;
|
86
|
+
}
|
87
|
+
export interface RailClasses {
|
88
|
+
rail: string;
|
89
|
+
}
|
90
|
+
export interface SelectionClasses {
|
91
|
+
selection: string;
|
92
|
+
position: string;
|
93
|
+
focused: string;
|
94
|
+
}
|
95
|
+
export interface ShadowClasses {
|
96
|
+
shadow: string;
|
97
|
+
isVisible: string;
|
98
|
+
locationStart: string;
|
99
|
+
locationEnd: string;
|
100
|
+
}
|
101
|
+
export interface ChevronClasses {
|
102
|
+
controls: string;
|
103
|
+
button: string;
|
104
|
+
disabled: string;
|
105
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
var __defProp = Object.defineProperty;
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
7
|
+
for (let key of __getOwnPropNames(from))
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
10
|
+
}
|
11
|
+
return to;
|
12
|
+
};
|
13
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
14
|
+
|
15
|
+
// src/plus/productSelect/components/TabsStructure/types.ts
|
16
|
+
var types_exports = {};
|
17
|
+
module.exports = __toCommonJS(types_exports);
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void;
|
3
|
+
export declare function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]): React.RefCallback<T>;
|
4
|
+
/**
|
5
|
+
* 安全的滚动函数,包含错误处理和边界检查
|
6
|
+
* @param element - 要滚动的元素
|
7
|
+
* @param options - 滚动选项
|
8
|
+
*/
|
9
|
+
export declare function safeScrollTo(element: HTMLElement | null, options: {
|
10
|
+
left?: number;
|
11
|
+
behavior?: ScrollBehavior;
|
12
|
+
}): boolean;
|
@@ -0,0 +1,72 @@
|
|
1
|
+
var __defProp = Object.defineProperty;
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
+
var __export = (target, all) => {
|
6
|
+
for (var name in all)
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
8
|
+
};
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
11
|
+
for (let key of __getOwnPropNames(from))
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
14
|
+
}
|
15
|
+
return to;
|
16
|
+
};
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
18
|
+
|
19
|
+
// src/plus/productSelect/components/TabsStructure/utils.ts
|
20
|
+
var utils_exports = {};
|
21
|
+
__export(utils_exports, {
|
22
|
+
debounce: () => debounce,
|
23
|
+
mergeRefs: () => mergeRefs,
|
24
|
+
safeScrollTo: () => safeScrollTo
|
25
|
+
});
|
26
|
+
module.exports = __toCommonJS(utils_exports);
|
27
|
+
function debounce(func, wait) {
|
28
|
+
let timeout = null;
|
29
|
+
return (...args) => {
|
30
|
+
if (timeout) {
|
31
|
+
clearTimeout(timeout);
|
32
|
+
}
|
33
|
+
timeout = setTimeout(() => {
|
34
|
+
func(...args);
|
35
|
+
}, wait);
|
36
|
+
};
|
37
|
+
}
|
38
|
+
function mergeRefs(...refs) {
|
39
|
+
return (value) => {
|
40
|
+
refs.forEach((ref) => {
|
41
|
+
if (typeof ref === "function") {
|
42
|
+
ref(value);
|
43
|
+
} else if (ref && typeof ref === "object") {
|
44
|
+
ref.current = value;
|
45
|
+
}
|
46
|
+
});
|
47
|
+
};
|
48
|
+
}
|
49
|
+
function safeScrollTo(element, options) {
|
50
|
+
try {
|
51
|
+
if (!element || !element.scrollTo) {
|
52
|
+
return false;
|
53
|
+
}
|
54
|
+
const { left = 0, behavior = "smooth" } = options;
|
55
|
+
const maxScrollLeft = Math.max(0, element.scrollWidth - element.clientWidth);
|
56
|
+
const safeLeft = Math.max(0, Math.min(left, maxScrollLeft));
|
57
|
+
element.scrollTo({
|
58
|
+
left: safeLeft,
|
59
|
+
behavior
|
60
|
+
});
|
61
|
+
return true;
|
62
|
+
} catch (error) {
|
63
|
+
console.warn("Failed to scroll element:", error);
|
64
|
+
return false;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
// Annotate the CommonJS export names for ESM import in node:
|
68
|
+
0 && (module.exports = {
|
69
|
+
debounce,
|
70
|
+
mergeRefs,
|
71
|
+
safeScrollTo
|
72
|
+
});
|