@jingx/lottery-components-react-jsx 1.0.47 → 1.0.48

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/index.esm.js CHANGED
@@ -31063,7 +31063,19 @@ const getDomain = (platform) => {
31063
31063
  const getS3ImgPrint = (platform) => s3hostPrint.concat(getDomain(platform)).concat(".png");
31064
31064
 
31065
31065
  const TicketPrintBody = (props) => {
31066
- const { item, bodyClass, is58, showItemCheckbox = false, selectedIds = [], onToggleItem, isProtest, isSystem } = props;
31066
+ const {
31067
+ item,
31068
+ bodyClass,
31069
+ is58,
31070
+ showItemCheckbox = false,
31071
+ selectedIds = [],
31072
+ onToggleItem,
31073
+ isProtest,
31074
+ isSystem,
31075
+ showDoubleCheckbox = false,
31076
+ doubleIds = [],
31077
+ onToggleDouble
31078
+ } = props;
31067
31079
  const returnMargin = (length) => {
31068
31080
  switch (length) {
31069
31081
  case 1:
@@ -31398,17 +31410,32 @@ const TicketPrintBody = (props) => {
31398
31410
  const itemId = getItemId(obj, i);
31399
31411
  const isSend = Boolean(obj == null ? void 0 : obj.isSend);
31400
31412
  const isChecked = selectedIds.includes(itemId);
31401
- return /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-start", children: [
31402
- /* @__PURE__ */ jsx$1("div", { className: "pr-2", children: isSend ? /* @__PURE__ */ jsx$1("span", { className: "transfer-ticket-send-icon", title: "Sent", children: /* @__PURE__ */ jsx$1(ArrowUp, { size: 16 }) }) : /* @__PURE__ */ jsx$1(
31403
- "input",
31404
- {
31405
- type: "checkbox",
31406
- className: "transfer-ticket-checkbox",
31407
- checked: isChecked,
31408
- onChange: () => onToggleItem && onToggleItem(itemId)
31409
- }
31410
- ) }),
31411
- /* @__PURE__ */ jsx$1("div", { className: `flex-grow-1 ${isSend ? "transfer-ticket-item-send" : ""}`, children: node })
31413
+ const isDoubleChecked = doubleIds.includes(itemId);
31414
+ return /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-start justify-content-between w-100", children: [
31415
+ /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-start", children: [
31416
+ /* @__PURE__ */ jsx$1("div", { className: "pr-2", children: isSend ? /* @__PURE__ */ jsx$1("span", { className: "transfer-ticket-send-icon", title: "Sent", children: /* @__PURE__ */ jsx$1(ArrowUp, { size: 16 }) }) : /* @__PURE__ */ jsx$1(
31417
+ "input",
31418
+ {
31419
+ type: "checkbox",
31420
+ className: "transfer-ticket-checkbox",
31421
+ checked: isChecked,
31422
+ onChange: () => onToggleItem && onToggleItem(itemId)
31423
+ }
31424
+ ) }),
31425
+ /* @__PURE__ */ jsx$1("div", { className: `flex-grow-1 ${isSend ? "transfer-ticket-item-send" : ""}`, children: node })
31426
+ ] }),
31427
+ showDoubleCheckbox && !isSend && /* @__PURE__ */ jsx$1("div", { className: "pl-2 d-flex align-items-center", children: /* @__PURE__ */ jsxs("label", { className: "m-0 d-inline-flex align-items-center text-black font-weight-bold", style: { cursor: "pointer" }, children: [
31428
+ /* @__PURE__ */ jsx$1(
31429
+ "input",
31430
+ {
31431
+ type: "checkbox",
31432
+ className: "transfer-ticket-checkbox mr-1",
31433
+ checked: isDoubleChecked,
31434
+ onChange: () => onToggleDouble && onToggleDouble(itemId)
31435
+ }
31436
+ ),
31437
+ "X2"
31438
+ ] }) })
31412
31439
  ] }, `select-${itemId}-${i}`);
31413
31440
  };
31414
31441
  const wrapWithCheckboxProtest = (node, obj, i) => {
@@ -37360,6 +37387,7 @@ const TransferTicket = ({
37360
37387
  onSelectedIdsChange
37361
37388
  }) => {
37362
37389
  const [selectedIds, setSelectedIds] = useState([]);
37390
+ const [doubleIds, setDoubleIds] = useState([]);
37363
37391
  const checkAllRef = useRef(null);
37364
37392
  const isNight = object == null ? void 0 : object.isNight;
37365
37393
  const selectableItemIds = useMemo(() => {
@@ -37377,10 +37405,14 @@ const TransferTicket = ({
37377
37405
  }, [object == null ? void 0 : object.postGroup]);
37378
37406
  const selectableIdSet = useMemo(() => new Set(selectableItemIds), [selectableItemIds]);
37379
37407
  const allChecked = selectableItemIds.length > 0 && selectableItemIds.every((id) => selectedIds.includes(id));
37408
+ const allDoubleChecked = selectableItemIds.length > 0 && selectableItemIds.every((id) => doubleIds.includes(id));
37380
37409
  const isIndeterminate = selectedIds.length > 0 && !allChecked;
37381
37410
  useEffect(() => {
37382
37411
  setSelectedIds((prev) => prev.filter((id) => selectableIdSet.has(id)));
37383
37412
  }, [selectableIdSet]);
37413
+ useEffect(() => {
37414
+ setDoubleIds((prev) => prev.filter((id) => selectableIdSet.has(id) && selectedIds.includes(id)));
37415
+ }, [selectableIdSet, selectedIds]);
37384
37416
  useEffect(() => {
37385
37417
  if (checkAllRef.current) {
37386
37418
  checkAllRef.current.indeterminate = isIndeterminate;
@@ -37388,9 +37420,16 @@ const TransferTicket = ({
37388
37420
  }, [isIndeterminate]);
37389
37421
  useEffect(() => {
37390
37422
  if (typeof onSelectedIdsChange === "function") {
37391
- onSelectedIdsChange(selectedIds);
37423
+ const mappedItems = selectedIds.map((id) => {
37424
+ const numId = isNaN(Number(id)) ? id : Number(id);
37425
+ return {
37426
+ orderItemId: numId,
37427
+ isDouble: doubleIds.includes(id)
37428
+ };
37429
+ });
37430
+ onSelectedIdsChange(mappedItems);
37392
37431
  }
37393
- }, [onSelectedIdsChange, selectedIds]);
37432
+ }, [onSelectedIdsChange, selectedIds, doubleIds]);
37394
37433
  const toggleItem = (itemId) => {
37395
37434
  if (!selectableIdSet.has(itemId)) return;
37396
37435
  setSelectedIds((prev) => {
@@ -37398,6 +37437,19 @@ const TransferTicket = ({
37398
37437
  return [...prev, itemId];
37399
37438
  });
37400
37439
  };
37440
+ const toggleDouble = (itemId) => {
37441
+ if (!selectableIdSet.has(itemId)) return;
37442
+ setDoubleIds((prev) => {
37443
+ if (prev.includes(itemId)) return prev.filter((id) => id !== itemId);
37444
+ setSelectedIds((selPrev) => {
37445
+ if (!selPrev.includes(itemId)) {
37446
+ return [...selPrev, itemId];
37447
+ }
37448
+ return selPrev;
37449
+ });
37450
+ return [...prev, itemId];
37451
+ });
37452
+ };
37401
37453
  const toggleAll = () => {
37402
37454
  setSelectedIds((prev) => {
37403
37455
  if (selectableItemIds.length === 0) return prev;
@@ -37405,6 +37457,15 @@ const TransferTicket = ({
37405
37457
  return selectableItemIds;
37406
37458
  });
37407
37459
  };
37460
+ const toggleAllDouble = () => {
37461
+ if (selectableItemIds.length === 0) return;
37462
+ if (allDoubleChecked) {
37463
+ setDoubleIds([]);
37464
+ } else {
37465
+ setSelectedIds(selectableItemIds);
37466
+ setDoubleIds(selectableItemIds);
37467
+ }
37468
+ };
37408
37469
  return /* @__PURE__ */ jsx$1(ScopeHost, { children: /* @__PURE__ */ jsx$1("table", { id: "transfer-ticket-58", className: "print-tb-58-1", cellPadding: "7px", children: /* @__PURE__ */ jsxs("tbody", { children: [
37409
37470
  /* @__PURE__ */ jsx$1("tr", { style: { lineHeight: "35px" }, children: /* @__PURE__ */ jsx$1(
37410
37471
  RenderTitle,
@@ -37426,19 +37487,34 @@ const TransferTicket = ({
37426
37487
  /* @__PURE__ */ jsx$1("div", { className: "f-16", children: getDateTime(object == null ? void 0 : object.drawAt) })
37427
37488
  ] }) }) }),
37428
37489
  /* @__PURE__ */ jsx$1("tr", { children: /* @__PURE__ */ jsx$1("td", { className: "p-0 pb-2", colSpan: 3, children: /* @__PURE__ */ jsx$1("hr", { className: "border-top-ticket" }) }) }),
37429
- /* @__PURE__ */ jsx$1("tr", { children: /* @__PURE__ */ jsx$1("td", { colSpan: 3, className: "p-0 text-left", children: /* @__PURE__ */ jsxs("label", { className: "m-0 d-inline-flex align-items-center text-black", children: [
37430
- /* @__PURE__ */ jsx$1(
37431
- "input",
37432
- {
37433
- ref: checkAllRef,
37434
- type: "checkbox",
37435
- className: "transfer-ticket-checkbox",
37436
- checked: allChecked,
37437
- disabled: selectableItemIds.length === 0,
37438
- onChange: toggleAll
37439
- }
37440
- ),
37441
- /* @__PURE__ */ jsx$1("span", { className: "ml-2 f-16", children: "Check all" })
37490
+ /* @__PURE__ */ jsx$1("tr", { children: /* @__PURE__ */ jsx$1("td", { colSpan: 3, className: "p-0", children: /* @__PURE__ */ jsxs("div", { className: "d-flex justify-content-between align-items-center", children: [
37491
+ /* @__PURE__ */ jsxs("label", { className: "m-0 d-inline-flex align-items-center text-black font-weight-bold", style: { cursor: "pointer" }, children: [
37492
+ /* @__PURE__ */ jsx$1(
37493
+ "input",
37494
+ {
37495
+ ref: checkAllRef,
37496
+ type: "checkbox",
37497
+ className: "transfer-ticket-checkbox",
37498
+ checked: allChecked,
37499
+ disabled: selectableItemIds.length === 0,
37500
+ onChange: toggleAll
37501
+ }
37502
+ ),
37503
+ /* @__PURE__ */ jsx$1("span", { className: "ml-2 f-16", children: "Check all" })
37504
+ ] }),
37505
+ /* @__PURE__ */ jsxs("label", { className: "m-0 d-inline-flex align-items-center text-black font-weight-bold", style: { cursor: "pointer" }, children: [
37506
+ /* @__PURE__ */ jsx$1(
37507
+ "input",
37508
+ {
37509
+ type: "checkbox",
37510
+ className: "transfer-ticket-checkbox",
37511
+ checked: allDoubleChecked,
37512
+ disabled: selectableItemIds.length === 0,
37513
+ onChange: toggleAllDouble
37514
+ }
37515
+ ),
37516
+ /* @__PURE__ */ jsx$1("span", { className: "ml-2 f-16", children: "X2 All" })
37517
+ ] })
37442
37518
  ] }) }) }),
37443
37519
  /* @__PURE__ */ jsx$1("tr", { children: /* @__PURE__ */ jsx$1("td", { colSpan: 3, className: "p-0", children: /* @__PURE__ */ jsx$1(
37444
37520
  PrintTicket58,
@@ -37449,7 +37525,10 @@ const TransferTicket = ({
37449
37525
  postGroup: object == null ? void 0 : object.postGroup,
37450
37526
  showItemCheckbox: true,
37451
37527
  selectedIds,
37452
- onToggleItem: toggleItem
37528
+ onToggleItem: toggleItem,
37529
+ showDoubleCheckbox: true,
37530
+ doubleIds,
37531
+ onToggleDouble: toggleDouble
37453
37532
  }
37454
37533
  ) }) }),
37455
37534
  /* @__PURE__ */ jsx$1("tr", { children: /* @__PURE__ */ jsx$1("td", { colSpan: 3, children: /* @__PURE__ */ jsx$1("hr", { className: "border-top-ticket" }) }) })