ugcinc-render 1.8.178 → 1.8.179
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.d.mts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +91 -1
- package/dist/index.mjs +91 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1135,6 +1135,15 @@ interface IMessageDmCompositionProps {
|
|
|
1135
1135
|
messageHeaderLetterSpacing?: number;
|
|
1136
1136
|
messageHeaderLeft?: number;
|
|
1137
1137
|
messageHeaderRight?: number;
|
|
1138
|
+
showMessageTails?: boolean;
|
|
1139
|
+
recipientTailOffsetLeft?: number;
|
|
1140
|
+
recipientTailOffsetRight?: number;
|
|
1141
|
+
recipientTailOffsetTop?: number;
|
|
1142
|
+
recipientTailOffsetBottom?: number;
|
|
1143
|
+
senderTailOffsetLeft?: number;
|
|
1144
|
+
senderTailOffsetRight?: number;
|
|
1145
|
+
senderTailOffsetTop?: number;
|
|
1146
|
+
senderTailOffsetBottom?: number;
|
|
1138
1147
|
showReadReceipt?: boolean;
|
|
1139
1148
|
readReceiptText?: string;
|
|
1140
1149
|
readReceiptGap?: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -1135,6 +1135,15 @@ interface IMessageDmCompositionProps {
|
|
|
1135
1135
|
messageHeaderLetterSpacing?: number;
|
|
1136
1136
|
messageHeaderLeft?: number;
|
|
1137
1137
|
messageHeaderRight?: number;
|
|
1138
|
+
showMessageTails?: boolean;
|
|
1139
|
+
recipientTailOffsetLeft?: number;
|
|
1140
|
+
recipientTailOffsetRight?: number;
|
|
1141
|
+
recipientTailOffsetTop?: number;
|
|
1142
|
+
recipientTailOffsetBottom?: number;
|
|
1143
|
+
senderTailOffsetLeft?: number;
|
|
1144
|
+
senderTailOffsetRight?: number;
|
|
1145
|
+
senderTailOffsetTop?: number;
|
|
1146
|
+
senderTailOffsetBottom?: number;
|
|
1138
1147
|
showReadReceipt?: boolean;
|
|
1139
1148
|
readReceiptText?: string;
|
|
1140
1149
|
readReceiptGap?: number;
|
package/dist/index.js
CHANGED
|
@@ -5304,6 +5304,18 @@ var MESSAGE_DEFAULTS2 = {
|
|
|
5304
5304
|
messageHeaderLetterSpacing: 1.25,
|
|
5305
5305
|
messageHeaderLeft: 0,
|
|
5306
5306
|
messageHeaderRight: 1206,
|
|
5307
|
+
// Message tails (on last message in group)
|
|
5308
|
+
showMessageTails: true,
|
|
5309
|
+
// Recipient tail offsets (from message left & bottom)
|
|
5310
|
+
recipientTailOffsetLeft: -16,
|
|
5311
|
+
recipientTailOffsetRight: 18,
|
|
5312
|
+
recipientTailOffsetTop: -47,
|
|
5313
|
+
recipientTailOffsetBottom: 0,
|
|
5314
|
+
// Sender tail offsets (from message right & bottom)
|
|
5315
|
+
senderTailOffsetLeft: -18,
|
|
5316
|
+
senderTailOffsetRight: 16,
|
|
5317
|
+
senderTailOffsetTop: -47,
|
|
5318
|
+
senderTailOffsetBottom: 1,
|
|
5307
5319
|
// Read receipt (under last sender message)
|
|
5308
5320
|
showReadReceipt: true,
|
|
5309
5321
|
readReceiptText: "Read 12:16 PM",
|
|
@@ -5611,6 +5623,61 @@ function generateMessageElements2(props, calculatedMessages) {
|
|
|
5611
5623
|
}
|
|
5612
5624
|
return elements;
|
|
5613
5625
|
}
|
|
5626
|
+
function generateTailElements(props, calculatedMessages) {
|
|
5627
|
+
const showMessageTails = props.showMessageTails ?? MESSAGE_DEFAULTS2.showMessageTails;
|
|
5628
|
+
if (!showMessageTails) {
|
|
5629
|
+
return [];
|
|
5630
|
+
}
|
|
5631
|
+
const elements = [];
|
|
5632
|
+
const recipientTailOffsetLeft = props.recipientTailOffsetLeft ?? MESSAGE_DEFAULTS2.recipientTailOffsetLeft;
|
|
5633
|
+
const recipientTailOffsetRight = props.recipientTailOffsetRight ?? MESSAGE_DEFAULTS2.recipientTailOffsetRight;
|
|
5634
|
+
const recipientTailOffsetTop = props.recipientTailOffsetTop ?? MESSAGE_DEFAULTS2.recipientTailOffsetTop;
|
|
5635
|
+
const recipientTailOffsetBottom = props.recipientTailOffsetBottom ?? MESSAGE_DEFAULTS2.recipientTailOffsetBottom;
|
|
5636
|
+
const senderTailOffsetLeft = props.senderTailOffsetLeft ?? MESSAGE_DEFAULTS2.senderTailOffsetLeft;
|
|
5637
|
+
const senderTailOffsetRight = props.senderTailOffsetRight ?? MESSAGE_DEFAULTS2.senderTailOffsetRight;
|
|
5638
|
+
const senderTailOffsetTop = props.senderTailOffsetTop ?? MESSAGE_DEFAULTS2.senderTailOffsetTop;
|
|
5639
|
+
const senderTailOffsetBottom = props.senderTailOffsetBottom ?? MESSAGE_DEFAULTS2.senderTailOffsetBottom;
|
|
5640
|
+
for (let i = 0; i < calculatedMessages.length; i++) {
|
|
5641
|
+
const cm = calculatedMessages[i];
|
|
5642
|
+
if (!cm.isLastInGroup) {
|
|
5643
|
+
continue;
|
|
5644
|
+
}
|
|
5645
|
+
const isUser = cm.message.sender === "user";
|
|
5646
|
+
const messageLeft = cm.left;
|
|
5647
|
+
const messageRight = cm.left + cm.width;
|
|
5648
|
+
const messageBottom = cm.bottom;
|
|
5649
|
+
let tailX;
|
|
5650
|
+
let tailY;
|
|
5651
|
+
let tailWidth;
|
|
5652
|
+
let tailHeight;
|
|
5653
|
+
let tailImage;
|
|
5654
|
+
if (isUser) {
|
|
5655
|
+
tailX = messageRight + senderTailOffsetLeft;
|
|
5656
|
+
tailY = messageBottom + senderTailOffsetTop;
|
|
5657
|
+
tailWidth = senderTailOffsetRight - senderTailOffsetLeft;
|
|
5658
|
+
tailHeight = senderTailOffsetBottom - senderTailOffsetTop;
|
|
5659
|
+
tailImage = "imsg-sender-tail.png";
|
|
5660
|
+
} else {
|
|
5661
|
+
tailX = messageLeft + recipientTailOffsetLeft;
|
|
5662
|
+
tailY = messageBottom + recipientTailOffsetTop;
|
|
5663
|
+
tailWidth = recipientTailOffsetRight - recipientTailOffsetLeft;
|
|
5664
|
+
tailHeight = recipientTailOffsetBottom - recipientTailOffsetTop;
|
|
5665
|
+
tailImage = "imsg-recv-tail.png";
|
|
5666
|
+
}
|
|
5667
|
+
elements.push({
|
|
5668
|
+
id: `tail-${cm.message.id}`,
|
|
5669
|
+
type: "image",
|
|
5670
|
+
x: tailX,
|
|
5671
|
+
y: tailY,
|
|
5672
|
+
width: tailWidth,
|
|
5673
|
+
height: tailHeight,
|
|
5674
|
+
zIndex: 4,
|
|
5675
|
+
// Below message elements (5+i)
|
|
5676
|
+
url: `/${tailImage}`
|
|
5677
|
+
});
|
|
5678
|
+
}
|
|
5679
|
+
return elements;
|
|
5680
|
+
}
|
|
5614
5681
|
function generateHeaderTextElements(props, calculatedMessages) {
|
|
5615
5682
|
if (calculatedMessages.length === 0) {
|
|
5616
5683
|
return [];
|
|
@@ -5728,9 +5795,10 @@ function convertPropsToElements2(props) {
|
|
|
5728
5795
|
const height = props.height ?? 2622;
|
|
5729
5796
|
const calculatedMessages = calculateMessagePositions2(props);
|
|
5730
5797
|
const messageElements = generateMessageElements2(props, calculatedMessages);
|
|
5798
|
+
const tailElements = generateTailElements(props, calculatedMessages);
|
|
5731
5799
|
const headerTextElements = generateHeaderTextElements(props, calculatedMessages);
|
|
5732
5800
|
const readReceiptElements = generateReadReceiptElement(props, calculatedMessages);
|
|
5733
|
-
const allElements = [...messageElements, ...headerTextElements, ...readReceiptElements];
|
|
5801
|
+
const allElements = [...messageElements, ...tailElements, ...headerTextElements, ...readReceiptElements];
|
|
5734
5802
|
allElements.sort((a, b) => (a.zIndex ?? 0) - (b.zIndex ?? 0));
|
|
5735
5803
|
const imageUrls = buildImageUrls2(props);
|
|
5736
5804
|
return {
|
|
@@ -5910,6 +5978,18 @@ var defaultIMessageDmProps = {
|
|
|
5910
5978
|
messageHeaderLetterSpacing: 1.25,
|
|
5911
5979
|
messageHeaderLeft: 0,
|
|
5912
5980
|
messageHeaderRight: 1206,
|
|
5981
|
+
// Message tails (on last message in group)
|
|
5982
|
+
showMessageTails: true,
|
|
5983
|
+
// Recipient tail offsets (from message left & bottom)
|
|
5984
|
+
recipientTailOffsetLeft: -16,
|
|
5985
|
+
recipientTailOffsetRight: 18,
|
|
5986
|
+
recipientTailOffsetTop: -47,
|
|
5987
|
+
recipientTailOffsetBottom: 0,
|
|
5988
|
+
// Sender tail offsets (from message right & bottom)
|
|
5989
|
+
senderTailOffsetLeft: -18,
|
|
5990
|
+
senderTailOffsetRight: 16,
|
|
5991
|
+
senderTailOffsetTop: -47,
|
|
5992
|
+
senderTailOffsetBottom: 1,
|
|
5913
5993
|
// Read receipt (under last sender message)
|
|
5914
5994
|
showReadReceipt: true,
|
|
5915
5995
|
readReceiptText: "Read 12:16 PM",
|
|
@@ -7265,6 +7345,16 @@ var iMessageDmPropsSchema = import_zod.z.object({
|
|
|
7265
7345
|
messageHeaderLetterSpacing: import_zod.z.number().optional(),
|
|
7266
7346
|
messageHeaderLeft: import_zod.z.number().optional(),
|
|
7267
7347
|
messageHeaderRight: import_zod.z.number().optional(),
|
|
7348
|
+
// Message tails
|
|
7349
|
+
showMessageTails: import_zod.z.boolean().optional(),
|
|
7350
|
+
recipientTailOffsetLeft: import_zod.z.number().optional(),
|
|
7351
|
+
recipientTailOffsetRight: import_zod.z.number().optional(),
|
|
7352
|
+
recipientTailOffsetTop: import_zod.z.number().optional(),
|
|
7353
|
+
recipientTailOffsetBottom: import_zod.z.number().optional(),
|
|
7354
|
+
senderTailOffsetLeft: import_zod.z.number().optional(),
|
|
7355
|
+
senderTailOffsetRight: import_zod.z.number().optional(),
|
|
7356
|
+
senderTailOffsetTop: import_zod.z.number().optional(),
|
|
7357
|
+
senderTailOffsetBottom: import_zod.z.number().optional(),
|
|
7268
7358
|
// Read receipt
|
|
7269
7359
|
showReadReceipt: import_zod.z.boolean().optional(),
|
|
7270
7360
|
readReceiptText: import_zod.z.string().optional(),
|
package/dist/index.mjs
CHANGED
|
@@ -4350,6 +4350,18 @@ var MESSAGE_DEFAULTS2 = {
|
|
|
4350
4350
|
messageHeaderLetterSpacing: 1.25,
|
|
4351
4351
|
messageHeaderLeft: 0,
|
|
4352
4352
|
messageHeaderRight: 1206,
|
|
4353
|
+
// Message tails (on last message in group)
|
|
4354
|
+
showMessageTails: true,
|
|
4355
|
+
// Recipient tail offsets (from message left & bottom)
|
|
4356
|
+
recipientTailOffsetLeft: -16,
|
|
4357
|
+
recipientTailOffsetRight: 18,
|
|
4358
|
+
recipientTailOffsetTop: -47,
|
|
4359
|
+
recipientTailOffsetBottom: 0,
|
|
4360
|
+
// Sender tail offsets (from message right & bottom)
|
|
4361
|
+
senderTailOffsetLeft: -18,
|
|
4362
|
+
senderTailOffsetRight: 16,
|
|
4363
|
+
senderTailOffsetTop: -47,
|
|
4364
|
+
senderTailOffsetBottom: 1,
|
|
4353
4365
|
// Read receipt (under last sender message)
|
|
4354
4366
|
showReadReceipt: true,
|
|
4355
4367
|
readReceiptText: "Read 12:16 PM",
|
|
@@ -4657,6 +4669,61 @@ function generateMessageElements2(props, calculatedMessages) {
|
|
|
4657
4669
|
}
|
|
4658
4670
|
return elements;
|
|
4659
4671
|
}
|
|
4672
|
+
function generateTailElements(props, calculatedMessages) {
|
|
4673
|
+
const showMessageTails = props.showMessageTails ?? MESSAGE_DEFAULTS2.showMessageTails;
|
|
4674
|
+
if (!showMessageTails) {
|
|
4675
|
+
return [];
|
|
4676
|
+
}
|
|
4677
|
+
const elements = [];
|
|
4678
|
+
const recipientTailOffsetLeft = props.recipientTailOffsetLeft ?? MESSAGE_DEFAULTS2.recipientTailOffsetLeft;
|
|
4679
|
+
const recipientTailOffsetRight = props.recipientTailOffsetRight ?? MESSAGE_DEFAULTS2.recipientTailOffsetRight;
|
|
4680
|
+
const recipientTailOffsetTop = props.recipientTailOffsetTop ?? MESSAGE_DEFAULTS2.recipientTailOffsetTop;
|
|
4681
|
+
const recipientTailOffsetBottom = props.recipientTailOffsetBottom ?? MESSAGE_DEFAULTS2.recipientTailOffsetBottom;
|
|
4682
|
+
const senderTailOffsetLeft = props.senderTailOffsetLeft ?? MESSAGE_DEFAULTS2.senderTailOffsetLeft;
|
|
4683
|
+
const senderTailOffsetRight = props.senderTailOffsetRight ?? MESSAGE_DEFAULTS2.senderTailOffsetRight;
|
|
4684
|
+
const senderTailOffsetTop = props.senderTailOffsetTop ?? MESSAGE_DEFAULTS2.senderTailOffsetTop;
|
|
4685
|
+
const senderTailOffsetBottom = props.senderTailOffsetBottom ?? MESSAGE_DEFAULTS2.senderTailOffsetBottom;
|
|
4686
|
+
for (let i = 0; i < calculatedMessages.length; i++) {
|
|
4687
|
+
const cm = calculatedMessages[i];
|
|
4688
|
+
if (!cm.isLastInGroup) {
|
|
4689
|
+
continue;
|
|
4690
|
+
}
|
|
4691
|
+
const isUser = cm.message.sender === "user";
|
|
4692
|
+
const messageLeft = cm.left;
|
|
4693
|
+
const messageRight = cm.left + cm.width;
|
|
4694
|
+
const messageBottom = cm.bottom;
|
|
4695
|
+
let tailX;
|
|
4696
|
+
let tailY;
|
|
4697
|
+
let tailWidth;
|
|
4698
|
+
let tailHeight;
|
|
4699
|
+
let tailImage;
|
|
4700
|
+
if (isUser) {
|
|
4701
|
+
tailX = messageRight + senderTailOffsetLeft;
|
|
4702
|
+
tailY = messageBottom + senderTailOffsetTop;
|
|
4703
|
+
tailWidth = senderTailOffsetRight - senderTailOffsetLeft;
|
|
4704
|
+
tailHeight = senderTailOffsetBottom - senderTailOffsetTop;
|
|
4705
|
+
tailImage = "imsg-sender-tail.png";
|
|
4706
|
+
} else {
|
|
4707
|
+
tailX = messageLeft + recipientTailOffsetLeft;
|
|
4708
|
+
tailY = messageBottom + recipientTailOffsetTop;
|
|
4709
|
+
tailWidth = recipientTailOffsetRight - recipientTailOffsetLeft;
|
|
4710
|
+
tailHeight = recipientTailOffsetBottom - recipientTailOffsetTop;
|
|
4711
|
+
tailImage = "imsg-recv-tail.png";
|
|
4712
|
+
}
|
|
4713
|
+
elements.push({
|
|
4714
|
+
id: `tail-${cm.message.id}`,
|
|
4715
|
+
type: "image",
|
|
4716
|
+
x: tailX,
|
|
4717
|
+
y: tailY,
|
|
4718
|
+
width: tailWidth,
|
|
4719
|
+
height: tailHeight,
|
|
4720
|
+
zIndex: 4,
|
|
4721
|
+
// Below message elements (5+i)
|
|
4722
|
+
url: `/${tailImage}`
|
|
4723
|
+
});
|
|
4724
|
+
}
|
|
4725
|
+
return elements;
|
|
4726
|
+
}
|
|
4660
4727
|
function generateHeaderTextElements(props, calculatedMessages) {
|
|
4661
4728
|
if (calculatedMessages.length === 0) {
|
|
4662
4729
|
return [];
|
|
@@ -4774,9 +4841,10 @@ function convertPropsToElements2(props) {
|
|
|
4774
4841
|
const height = props.height ?? 2622;
|
|
4775
4842
|
const calculatedMessages = calculateMessagePositions2(props);
|
|
4776
4843
|
const messageElements = generateMessageElements2(props, calculatedMessages);
|
|
4844
|
+
const tailElements = generateTailElements(props, calculatedMessages);
|
|
4777
4845
|
const headerTextElements = generateHeaderTextElements(props, calculatedMessages);
|
|
4778
4846
|
const readReceiptElements = generateReadReceiptElement(props, calculatedMessages);
|
|
4779
|
-
const allElements = [...messageElements, ...headerTextElements, ...readReceiptElements];
|
|
4847
|
+
const allElements = [...messageElements, ...tailElements, ...headerTextElements, ...readReceiptElements];
|
|
4780
4848
|
allElements.sort((a, b) => (a.zIndex ?? 0) - (b.zIndex ?? 0));
|
|
4781
4849
|
const imageUrls = buildImageUrls2(props);
|
|
4782
4850
|
return {
|
|
@@ -4956,6 +5024,18 @@ var defaultIMessageDmProps = {
|
|
|
4956
5024
|
messageHeaderLetterSpacing: 1.25,
|
|
4957
5025
|
messageHeaderLeft: 0,
|
|
4958
5026
|
messageHeaderRight: 1206,
|
|
5027
|
+
// Message tails (on last message in group)
|
|
5028
|
+
showMessageTails: true,
|
|
5029
|
+
// Recipient tail offsets (from message left & bottom)
|
|
5030
|
+
recipientTailOffsetLeft: -16,
|
|
5031
|
+
recipientTailOffsetRight: 18,
|
|
5032
|
+
recipientTailOffsetTop: -47,
|
|
5033
|
+
recipientTailOffsetBottom: 0,
|
|
5034
|
+
// Sender tail offsets (from message right & bottom)
|
|
5035
|
+
senderTailOffsetLeft: -18,
|
|
5036
|
+
senderTailOffsetRight: 16,
|
|
5037
|
+
senderTailOffsetTop: -47,
|
|
5038
|
+
senderTailOffsetBottom: 1,
|
|
4959
5039
|
// Read receipt (under last sender message)
|
|
4960
5040
|
showReadReceipt: true,
|
|
4961
5041
|
readReceiptText: "Read 12:16 PM",
|
|
@@ -6028,6 +6108,16 @@ var iMessageDmPropsSchema = z.object({
|
|
|
6028
6108
|
messageHeaderLetterSpacing: z.number().optional(),
|
|
6029
6109
|
messageHeaderLeft: z.number().optional(),
|
|
6030
6110
|
messageHeaderRight: z.number().optional(),
|
|
6111
|
+
// Message tails
|
|
6112
|
+
showMessageTails: z.boolean().optional(),
|
|
6113
|
+
recipientTailOffsetLeft: z.number().optional(),
|
|
6114
|
+
recipientTailOffsetRight: z.number().optional(),
|
|
6115
|
+
recipientTailOffsetTop: z.number().optional(),
|
|
6116
|
+
recipientTailOffsetBottom: z.number().optional(),
|
|
6117
|
+
senderTailOffsetLeft: z.number().optional(),
|
|
6118
|
+
senderTailOffsetRight: z.number().optional(),
|
|
6119
|
+
senderTailOffsetTop: z.number().optional(),
|
|
6120
|
+
senderTailOffsetBottom: z.number().optional(),
|
|
6031
6121
|
// Read receipt
|
|
6032
6122
|
showReadReceipt: z.boolean().optional(),
|
|
6033
6123
|
readReceiptText: z.string().optional(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugcinc-render",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.179",
|
|
4
4
|
"description": "Unified rendering package for UGC Inc - shared types, components, and compositions for pixel-perfect client/server rendering",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|