agx-chat-web 0.4.9
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/README.md +9 -0
- package/dist/agx-chat.js +3 -0
- package/dist/agx-chat.js.LICENSE.txt +303 -0
- package/dist/agx-chat.js.map +1 -0
- package/dist/agx-chat.min.js +3 -0
- package/dist/agx-chat.min.js.LICENSE.txt +303 -0
- package/dist/agx-chat.min.js.map +1 -0
- package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.d.ts +1 -0
- package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js +46 -0
- package/dist/esm/__tests__/app/Messenger/classes/slaCalculations.spec.js.map +1 -0
- package/dist/esm/app/Messenger/classes/slaCalculations.d.ts +30 -0
- package/dist/esm/app/Messenger/classes/slaCalculations.js +142 -0
- package/dist/esm/app/Messenger/classes/slaCalculations.js.map +1 -0
- package/dist/esm/app/Messenger/components/ChatButton/ChatButton.d.ts +14 -0
- package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js +31 -0
- package/dist/esm/app/Messenger/components/ChatButton/ChatButton.js.map +1 -0
- package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.d.ts +9 -0
- package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js +15 -0
- package/dist/esm/app/Messenger/components/ChatTabs/ChatTabs.js.map +1 -0
- package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.d.ts +3 -0
- package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js +24 -0
- package/dist/esm/app/Messenger/components/ImagesContainer/ImagesContainer.js.map +1 -0
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.d.ts +3 -0
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +33 -0
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +1 -0
- package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.d.ts +11 -0
- package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js +37 -0
- package/dist/esm/app/Messenger/components/InfiniteScroll/InfiniteScroll.js.map +1 -0
- package/dist/esm/app/Messenger/components/InputFile/InputFile.d.ts +8 -0
- package/dist/esm/app/Messenger/components/InputFile/InputFile.js +59 -0
- package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +1 -0
- package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.d.ts +8 -0
- package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js +32 -0
- package/dist/esm/app/Messenger/components/MessageBallon/MessageBalloon.js.map +1 -0
- package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.d.ts +3 -0
- package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js +13 -0
- package/dist/esm/app/Messenger/components/MessengerAvatar/MessengerAvatar.js.map +1 -0
- package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.d.ts +40 -0
- package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js +39 -0
- package/dist/esm/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.js.map +1 -0
- package/dist/esm/app/Messenger/components/SearchInput/SearchInput.d.ts +10 -0
- package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js +32 -0
- package/dist/esm/app/Messenger/components/SearchInput/SearchInput.js.map +1 -0
- package/dist/esm/app/Messenger/components/Select/Select.d.ts +13 -0
- package/dist/esm/app/Messenger/components/Select/Select.js +16 -0
- package/dist/esm/app/Messenger/components/Select/Select.js.map +1 -0
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.d.ts +3 -0
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +32 -0
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +1 -0
- package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.d.ts +3 -0
- package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js +14 -0
- package/dist/esm/app/Messenger/components/SystemMessage/SystemMessage.js.map +1 -0
- package/dist/esm/app/Messenger/components/TextArea/TextArea.d.ts +8 -0
- package/dist/esm/app/Messenger/components/TextArea/TextArea.js +14 -0
- package/dist/esm/app/Messenger/components/TextArea/TextArea.js.map +1 -0
- package/dist/esm/app/Messenger/hooks/useConversations.d.ts +11 -0
- package/dist/esm/app/Messenger/hooks/useConversations.js +59 -0
- package/dist/esm/app/Messenger/hooks/useConversations.js.map +1 -0
- package/dist/esm/app/Messenger/hooks/useThemes.d.ts +31 -0
- package/dist/esm/app/Messenger/hooks/useThemes.js +11 -0
- package/dist/esm/app/Messenger/hooks/useThemes.js.map +1 -0
- package/dist/esm/app/Messenger/icons/AttachFileIcon.d.ts +3 -0
- package/dist/esm/app/Messenger/icons/AttachFileIcon.js +10 -0
- package/dist/esm/app/Messenger/icons/AttachFileIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/CloseIcon.d.ts +1 -0
- package/dist/esm/app/Messenger/icons/CloseIcon.js +9 -0
- package/dist/esm/app/Messenger/icons/CloseIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/EmptyIcon.d.ts +1 -0
- package/dist/esm/app/Messenger/icons/EmptyIcon.js +8 -0
- package/dist/esm/app/Messenger/icons/EmptyIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/MessageIcon.d.ts +5 -0
- package/dist/esm/app/Messenger/icons/MessageIcon.js +12 -0
- package/dist/esm/app/Messenger/icons/MessageIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/ReadIcon.d.ts +3 -0
- package/dist/esm/app/Messenger/icons/ReadIcon.js +7 -0
- package/dist/esm/app/Messenger/icons/ReadIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/SearchIcon.d.ts +1 -0
- package/dist/esm/app/Messenger/icons/SearchIcon.js +8 -0
- package/dist/esm/app/Messenger/icons/SearchIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/TimerIcon.d.ts +1 -0
- package/dist/esm/app/Messenger/icons/TimerIcon.js +6 -0
- package/dist/esm/app/Messenger/icons/TimerIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/TrashIcon.d.ts +5 -0
- package/dist/esm/app/Messenger/icons/TrashIcon.js +7 -0
- package/dist/esm/app/Messenger/icons/TrashIcon.js.map +1 -0
- package/dist/esm/app/Messenger/views/MessengerList.d.ts +39 -0
- package/dist/esm/app/Messenger/views/MessengerList.js +50 -0
- package/dist/esm/app/Messenger/views/MessengerList.js.map +1 -0
- package/dist/esm/app/Messenger/views/MessengerListItem.d.ts +11 -0
- package/dist/esm/app/Messenger/views/MessengerListItem.js +87 -0
- package/dist/esm/app/Messenger/views/MessengerListItem.js.map +1 -0
- package/dist/esm/app/Messenger/views/MessengerMessages.d.ts +23 -0
- package/dist/esm/app/Messenger/views/MessengerMessages.js +133 -0
- package/dist/esm/app/Messenger/views/MessengerMessages.js.map +1 -0
- package/dist/esm/app/Messenger/views/NewFormChat.d.ts +10 -0
- package/dist/esm/app/Messenger/views/NewFormChat.js +64 -0
- package/dist/esm/app/Messenger/views/NewFormChat.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/setupTests.d.ts +1 -0
- package/dist/esm/setupTests.js +6 -0
- package/dist/esm/setupTests.js.map +1 -0
- package/dist/esm/types.d.ts +134 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +67 -0
- package/src/__tests__/app/Messenger/classes/slaCalculations.spec.ts +115 -0
- package/src/app/Messenger/classes/slaCalculations.ts +165 -0
- package/src/app/Messenger/components/ChatButton/ChatButton.tsx +63 -0
- package/src/app/Messenger/components/ChatTabs/ChatTabs.less +18 -0
- package/src/app/Messenger/components/ChatTabs/ChatTabs.tsx +32 -0
- package/src/app/Messenger/components/ImagesContainer/ImagesContainer.less +64 -0
- package/src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx +40 -0
- package/src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx +59 -0
- package/src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx +52 -0
- package/src/app/Messenger/components/InputFile/InputFile.tsx +106 -0
- package/src/app/Messenger/components/InputFile/inputFile.less +52 -0
- package/src/app/Messenger/components/MessageBallon/MessageBalloon.tsx +88 -0
- package/src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx +21 -0
- package/src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx +58 -0
- package/src/app/Messenger/components/SearchInput/SearchInput.less +45 -0
- package/src/app/Messenger/components/SearchInput/SearchInput.tsx +68 -0
- package/src/app/Messenger/components/Select/Select.less +22 -0
- package/src/app/Messenger/components/Select/Select.tsx +41 -0
- package/src/app/Messenger/components/SenderMessages/SenderMessages.tsx +52 -0
- package/src/app/Messenger/components/SystemMessage/SystemMessage.tsx +23 -0
- package/src/app/Messenger/components/TextArea/TextArea.tsx +31 -0
- package/src/app/Messenger/components/TextArea/Textarea.less +22 -0
- package/src/app/Messenger/hooks/useConversations.tsx +80 -0
- package/src/app/Messenger/hooks/useThemes.tsx +14 -0
- package/src/app/Messenger/icons/AttachFileIcon.tsx +11 -0
- package/src/app/Messenger/icons/CloseIcon.tsx +11 -0
- package/src/app/Messenger/icons/EmptyIcon.tsx +11 -0
- package/src/app/Messenger/icons/MessageIcon.tsx +18 -0
- package/src/app/Messenger/icons/ReadIcon.tsx +9 -0
- package/src/app/Messenger/icons/SearchIcon.tsx +12 -0
- package/src/app/Messenger/icons/TimerIcon.tsx +10 -0
- package/src/app/Messenger/icons/TrashIcon.tsx +13 -0
- package/src/app/Messenger/views/Messenger.less +610 -0
- package/src/app/Messenger/views/MessengerList.tsx +172 -0
- package/src/app/Messenger/views/MessengerListItem.tsx +136 -0
- package/src/app/Messenger/views/MessengerMessages.tsx +287 -0
- package/src/app/Messenger/views/NewFormChat.tsx +126 -0
- package/src/assets/right-arrow.svg +10 -0
- package/src/index.ts +17 -0
- package/src/react-app-env.d.ts +16 -0
- package/src/setupTests.ts +5 -0
- package/src/styles/abstracts/animations.less +8 -0
- package/src/styles/abstracts/mixins.less +5 -0
- package/src/styles/abstracts/variables.less +25 -0
- package/src/styles/base/base.less +6 -0
- package/src/styles/index.less +6 -0
- package/src/types.ts +166 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { describe, expect, it } from '@jest/globals';
|
|
2
|
+
import { SlaDates, timeAsDayjs } from '../../../../app/Messenger/classes/slaCalculations';
|
|
3
|
+
var workingHours = { start: 9, end: 18 };
|
|
4
|
+
describe('slaCalculations class', function () {
|
|
5
|
+
it('Should return true seconds in working hour', function () {
|
|
6
|
+
var sla = new SlaDates(1300);
|
|
7
|
+
expect(sla.canUpdateClock(timeAsDayjs('2023-07-21T10:19:29.224+00:00', { applyTimezone: false }))).toBeTruthy();
|
|
8
|
+
});
|
|
9
|
+
it('Should return false seconds from canUpdateClock', function () {
|
|
10
|
+
var sla = new SlaDates(1300);
|
|
11
|
+
expect(sla.canUpdateClock(timeAsDayjs('2023-07-21T20:19:29.224+00:00', { applyTimezone: false }))).toBeFalsy();
|
|
12
|
+
});
|
|
13
|
+
it('Should return false in holiday', function () {
|
|
14
|
+
var sla = new SlaDates(1300);
|
|
15
|
+
expect(sla.canUpdateClock(timeAsDayjs('2023-10-12T10:19:29.224+00:00', { applyTimezone: false }))).toBeFalsy();
|
|
16
|
+
});
|
|
17
|
+
it('Should return 3600 seconds diffence', function () {
|
|
18
|
+
var sla = new SlaDates(3600);
|
|
19
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-07-19T09:19:29.224+00:00', { applyTimezone: false }), timeAsDayjs('2023-07-19T10:19:29.224+00:00', { applyTimezone: false }), workingHours)).toBe(3600);
|
|
20
|
+
});
|
|
21
|
+
it('Should return 7200 seconds diffence', function () {
|
|
22
|
+
var sla = new SlaDates(3600);
|
|
23
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-10-12T09:19:29.224+00:00', { applyTimezone: false }), timeAsDayjs('2023-10-12T11:19:29.224+00:00', { applyTimezone: false }), workingHours)).toBe(0);
|
|
24
|
+
});
|
|
25
|
+
it('Should return 7200 seconds diffence', function () {
|
|
26
|
+
var sla = new SlaDates(3600);
|
|
27
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-07-21T17:00:00.000+00:00', { applyTimezone: false }), timeAsDayjs('2023-07-24T10:00:00.000+00:00', { applyTimezone: false }), workingHours)).toBe(7200);
|
|
28
|
+
});
|
|
29
|
+
it('Should return 64800 seconds diffence', function () {
|
|
30
|
+
var sla = new SlaDates(3600);
|
|
31
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-07-21T09:00:00.000+00:00', { applyTimezone: false }), timeAsDayjs('2023-07-24T18:00:00.000+00:00', { applyTimezone: false }), workingHours)).toBe(64800);
|
|
32
|
+
});
|
|
33
|
+
it('Should return 43200 seconds diffence', function () {
|
|
34
|
+
var sla = new SlaDates(3600);
|
|
35
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-07-21T09:00:00.000+00:00', { applyTimezone: false }), timeAsDayjs('2023-07-24T12:00:00.000+00:00', { applyTimezone: false }), workingHours)).toBe(43200);
|
|
36
|
+
});
|
|
37
|
+
it('Should return 1800 seconds diffence', function () {
|
|
38
|
+
var sla = new SlaDates(3600);
|
|
39
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-07-24T07:00:00.000+00:00', { applyTimezone: false }), timeAsDayjs('2023-07-24T09:30:00.000+00:00', { applyTimezone: false }), workingHours)).toBe(1800);
|
|
40
|
+
});
|
|
41
|
+
it('Should return 3600 seconds diffence', function () {
|
|
42
|
+
var sla = new SlaDates(3600);
|
|
43
|
+
expect(sla.getDifferenceInSeconds(timeAsDayjs('2023-07-24T22:00:00.000+00:00', { applyTimezone: false }), timeAsDayjs('2023-07-25T10:00:00.000+00:00', { applyTimezone: false }), workingHours)).toBe(3600);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=slaCalculations.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slaCalculations.spec.js","sourceRoot":"","sources":["../../../../../../src/__tests__/app/Messenger/classes/slaCalculations.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import dayjs, { ConfigType, Dayjs } from 'dayjs';
|
|
2
|
+
export declare const timeAsDayjs: (value?: ConfigType, options?: {
|
|
3
|
+
server?: boolean | undefined;
|
|
4
|
+
applyTimezone?: boolean | undefined;
|
|
5
|
+
} | undefined) => Dayjs;
|
|
6
|
+
export declare const time: (value?: ConfigType, options?: {
|
|
7
|
+
server?: boolean | undefined;
|
|
8
|
+
applyTimezone?: boolean | undefined;
|
|
9
|
+
} | undefined) => Date;
|
|
10
|
+
export declare class SlaDates {
|
|
11
|
+
seconds: number | null;
|
|
12
|
+
constructor(seconds: number);
|
|
13
|
+
private holidays;
|
|
14
|
+
private isWorkingDay;
|
|
15
|
+
private isWorkingHour;
|
|
16
|
+
isWeekendOrHoliday(date: Dayjs | Date | string): boolean;
|
|
17
|
+
private isHoliday;
|
|
18
|
+
canUpdateClock(date: Dayjs): boolean;
|
|
19
|
+
getDiffInSeconds(startDate: dayjs.Dayjs, endDate: dayjs.Dayjs): number;
|
|
20
|
+
calculateWorkingTime(startDate: Dayjs, endDate: Dayjs, workingHours: {
|
|
21
|
+
start: number;
|
|
22
|
+
end: number;
|
|
23
|
+
}): number;
|
|
24
|
+
getDifferenceInSeconds(startDate: Dayjs, endDate: Dayjs, workingHours: {
|
|
25
|
+
start: number;
|
|
26
|
+
end: number;
|
|
27
|
+
}): number;
|
|
28
|
+
static secondsInHours(currentSeconds: number): string;
|
|
29
|
+
static getColorsByTime(seconds: number): "#DD4E4E" | "#00CF7B" | "#FF9838" | "#151919";
|
|
30
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import dayjsBR from 'dayjs/locale/pt-br';
|
|
3
|
+
import utc from 'dayjs/plugin/utc';
|
|
4
|
+
import timezone from 'dayjs/plugin/timezone';
|
|
5
|
+
import isToday from 'dayjs/plugin/isToday';
|
|
6
|
+
var serverTz = 'America/Sao_Paulo';
|
|
7
|
+
dayjs.extend(utc);
|
|
8
|
+
dayjs.extend(timezone);
|
|
9
|
+
dayjs.extend(isToday);
|
|
10
|
+
dayjs.locale(dayjsBR);
|
|
11
|
+
export var timeAsDayjs = function (value, options) {
|
|
12
|
+
if (value === void 0) { value = new Date(); }
|
|
13
|
+
var server = options === null || options === void 0 ? void 0 : options.server;
|
|
14
|
+
var applyTimezone = options === null || options === void 0 ? void 0 : options.applyTimezone;
|
|
15
|
+
var timezone = dayjs.tz.guess();
|
|
16
|
+
if (!(applyTimezone !== null && applyTimezone !== void 0 ? applyTimezone : true))
|
|
17
|
+
timezone = 'GMT';
|
|
18
|
+
else if (server !== null && server !== void 0 ? server : false)
|
|
19
|
+
timezone = serverTz;
|
|
20
|
+
return dayjs.tz(value, timezone);
|
|
21
|
+
};
|
|
22
|
+
export var time = function (value, options) {
|
|
23
|
+
if (value === void 0) { value = new Date(); }
|
|
24
|
+
var server = options === null || options === void 0 ? void 0 : options.server;
|
|
25
|
+
var applyTimezone = options === null || options === void 0 ? void 0 : options.applyTimezone;
|
|
26
|
+
var aux;
|
|
27
|
+
if (!(applyTimezone !== null && applyTimezone !== void 0 ? applyTimezone : true))
|
|
28
|
+
aux = dayjs.tz(value, 'GMT'); // Set applyTimezone to false when timezone is applied incorrectly (usually when working with JSDate and timestamps)
|
|
29
|
+
else if (server !== null && server !== void 0 ? server : false)
|
|
30
|
+
aux = dayjs.tz(value, serverTz);
|
|
31
|
+
else
|
|
32
|
+
aux = dayjs.tz(value, dayjs.tz.guess());
|
|
33
|
+
return new Date(Date.UTC(aux.year(), aux.month(), aux.date(), aux.hour(), aux.minute(), aux.second(), aux.millisecond()));
|
|
34
|
+
};
|
|
35
|
+
var SlaDates = /** @class */ (function () {
|
|
36
|
+
function SlaDates(seconds) {
|
|
37
|
+
this.holidays = {
|
|
38
|
+
2023: [
|
|
39
|
+
'09-07',
|
|
40
|
+
'10-12',
|
|
41
|
+
'10-17',
|
|
42
|
+
'11-02',
|
|
43
|
+
'11-15',
|
|
44
|
+
'11-20',
|
|
45
|
+
'12-25'
|
|
46
|
+
]
|
|
47
|
+
};
|
|
48
|
+
this.seconds = seconds;
|
|
49
|
+
}
|
|
50
|
+
SlaDates.prototype.isWorkingDay = function (date) {
|
|
51
|
+
var dayOfWeek = date.day();
|
|
52
|
+
return dayOfWeek >= 1 && dayOfWeek <= 5; // Monday to Friday (1 to 5)
|
|
53
|
+
};
|
|
54
|
+
SlaDates.prototype.isWorkingHour = function (date) {
|
|
55
|
+
var hour = date.hour();
|
|
56
|
+
return hour >= 9 && hour <= 18; // Between 9 AM and 5 PM (inclusive)
|
|
57
|
+
};
|
|
58
|
+
SlaDates.prototype.isWeekendOrHoliday = function (date) {
|
|
59
|
+
var weekDay = timeAsDayjs(date, { applyTimezone: false }).day();
|
|
60
|
+
if ([6, 0].includes(weekDay))
|
|
61
|
+
return true;
|
|
62
|
+
var formatedDate = timeAsDayjs(date).format('MM-DD');
|
|
63
|
+
var isHollyday = this.holidays[2023].includes(formatedDate);
|
|
64
|
+
return isHollyday;
|
|
65
|
+
};
|
|
66
|
+
SlaDates.prototype.isHoliday = function (date) {
|
|
67
|
+
var formatedDate = timeAsDayjs(date, { applyTimezone: false }).format('MM-DD');
|
|
68
|
+
var isHollyday = this.holidays[2023].includes(formatedDate);
|
|
69
|
+
return isHollyday;
|
|
70
|
+
};
|
|
71
|
+
SlaDates.prototype.canUpdateClock = function (date) {
|
|
72
|
+
var isWorking = this.isWorkingDay(date) && this.isWorkingHour(date);
|
|
73
|
+
return !this.isWeekendOrHoliday(date) && isWorking;
|
|
74
|
+
};
|
|
75
|
+
SlaDates.prototype.getDiffInSeconds = function (startDate, endDate) {
|
|
76
|
+
var diffInSeconds = endDate.diff(startDate, 'second');
|
|
77
|
+
return diffInSeconds;
|
|
78
|
+
};
|
|
79
|
+
SlaDates.prototype.calculateWorkingTime = function (startDate, endDate, workingHours) {
|
|
80
|
+
var current = startDate.clone();
|
|
81
|
+
var workingTime = 0;
|
|
82
|
+
while (current.isBefore(endDate)) {
|
|
83
|
+
// Skip weekends (Saturday and Sunday) and Holydays
|
|
84
|
+
if (this.isWorkingDay(current) && !this.isHoliday(current)) {
|
|
85
|
+
var startOfDay = current.clone().startOf('day').add(workingHours.start, 'hour');
|
|
86
|
+
var endOfDay = current.clone().startOf('day').add(workingHours.end, 'hour');
|
|
87
|
+
if (current.isBefore(startOfDay)) {
|
|
88
|
+
// If current time is before the start of working hours, move to the start of working hours
|
|
89
|
+
current = startOfDay.clone();
|
|
90
|
+
}
|
|
91
|
+
if (current.isAfter(endOfDay)) {
|
|
92
|
+
current = current.clone().add(1, 'day').startOf('day');
|
|
93
|
+
}
|
|
94
|
+
else if (endDate.isAfter(endOfDay)) {
|
|
95
|
+
// If end date is after the end of working hours, add a full working day
|
|
96
|
+
workingTime += Math.abs(endOfDay.clone().diff(current, 'second'));
|
|
97
|
+
current = current.clone().add(1, 'day').startOf('day').add(workingHours.start, 'hour');
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Calculate working time for the last day (end date)
|
|
101
|
+
workingTime += Math.abs(endDate.clone().diff(current, 'second'));
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
// Move to the next day
|
|
107
|
+
current = current.clone().add(1, 'day').startOf('day');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return workingTime;
|
|
111
|
+
};
|
|
112
|
+
// Function to calculate the difference in seconds between two dates considering working hours
|
|
113
|
+
SlaDates.prototype.getDifferenceInSeconds = function (startDate, endDate, workingHours) {
|
|
114
|
+
if (endDate.isBefore(startDate)) {
|
|
115
|
+
throw new Error('End date should be after the start date.');
|
|
116
|
+
}
|
|
117
|
+
var workingTimeInSeconds = this.calculateWorkingTime(startDate, endDate, workingHours);
|
|
118
|
+
return workingTimeInSeconds;
|
|
119
|
+
};
|
|
120
|
+
SlaDates.secondsInHours = function (currentSeconds) {
|
|
121
|
+
var hours = Math.floor(currentSeconds / 3600);
|
|
122
|
+
var minutes = Math.floor((currentSeconds % 3600) / 60);
|
|
123
|
+
var seconds = currentSeconds % 60;
|
|
124
|
+
return "".concat(hours.toString().padStart(2, '0'), ":").concat(minutes.toString().padStart(2, '0'), ":").concat(seconds.toString().padStart(2, '0'));
|
|
125
|
+
};
|
|
126
|
+
SlaDates.getColorsByTime = function (seconds) {
|
|
127
|
+
var hours = seconds / 3600;
|
|
128
|
+
if (hours <= 2) {
|
|
129
|
+
return '#00CF7B';
|
|
130
|
+
}
|
|
131
|
+
if (hours >= 2 && hours < 3) {
|
|
132
|
+
return '#FF9838';
|
|
133
|
+
}
|
|
134
|
+
if (hours >= 3 && hours < 4) {
|
|
135
|
+
return '#DD4E4E';
|
|
136
|
+
}
|
|
137
|
+
return '#151919';
|
|
138
|
+
};
|
|
139
|
+
return SlaDates;
|
|
140
|
+
}());
|
|
141
|
+
export { SlaDates };
|
|
142
|
+
//# sourceMappingURL=slaCalculations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slaCalculations.js","sourceRoot":"","sources":["../../../../../src/app/Messenger/classes/slaCalculations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface INewChatButton {
|
|
3
|
+
removeActiveItem: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
4
|
+
messegerView: 'empty' | 'messages' | 'newChat';
|
|
5
|
+
chatButtons: {
|
|
6
|
+
label: string;
|
|
7
|
+
onClick: () => void;
|
|
8
|
+
type: string;
|
|
9
|
+
canSee: boolean;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
declare function ChatButtons({ chatButtons, removeActiveItem }: INewChatButton): JSX.Element;
|
|
14
|
+
export default ChatButtons;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import useTheme from '../../hooks/useThemes';
|
|
3
|
+
function ChatButtons(_a) {
|
|
4
|
+
var chatButtons = _a.chatButtons, removeActiveItem = _a.removeActiveItem;
|
|
5
|
+
var theme = useTheme().theme;
|
|
6
|
+
var getButtonType = function (type, disabled) {
|
|
7
|
+
if (type === 'primary')
|
|
8
|
+
return {
|
|
9
|
+
background: disabled ? theme === null || theme === void 0 ? void 0 : theme.buttonsDisabled : theme === null || theme === void 0 ? void 0 : theme.buttonPrimary,
|
|
10
|
+
color: theme === null || theme === void 0 ? void 0 : theme.buttonPrimaryText
|
|
11
|
+
};
|
|
12
|
+
if (type === 'outlined')
|
|
13
|
+
return {
|
|
14
|
+
background: 'transparent',
|
|
15
|
+
color: theme === null || theme === void 0 ? void 0 : theme.asideFontColor,
|
|
16
|
+
border: "".concat(theme === null || theme === void 0 ? void 0 : theme.asideFontColor, " 1px solid")
|
|
17
|
+
};
|
|
18
|
+
return;
|
|
19
|
+
};
|
|
20
|
+
return (React.createElement(React.Fragment, null, chatButtons.map((function (button) {
|
|
21
|
+
return (button.canSee &&
|
|
22
|
+
React.createElement(React.Fragment, null,
|
|
23
|
+
React.createElement("button", { key: "button-".concat(button.label), className: button.disabled ? 'messenger__chat-button messenger__chat-button--disabled'
|
|
24
|
+
: 'messenger__chat-button', onClick: function (event) {
|
|
25
|
+
button.onClick();
|
|
26
|
+
removeActiveItem(event);
|
|
27
|
+
}, style: getButtonType(button.type, button.disabled) }, button.label)));
|
|
28
|
+
}))));
|
|
29
|
+
}
|
|
30
|
+
export default ChatButtons;
|
|
31
|
+
//# sourceMappingURL=ChatButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatButton.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/ChatButton/ChatButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,uBAAuB,CAAA;AAc5C,SAAS,WAAW,CAAC,EAAiD;QAA/C,WAAW,iBAAA,EAAE,gBAAgB,sBAAA;IAC1C,IAAA,KAAK,GAAK,QAAQ,EAAE,MAAf,CAAe;IAE5B,IAAM,aAAa,GAAG,UAAC,IAAY,EAAE,QAAkB;QACrD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;gBAC7B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa;gBACpE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,iBAAiB;aAChC,CAAA;QAED,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO;gBAC9B,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc;gBAC5B,MAAM,EAAE,UAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,eAAY;aAC7C,CAAA;QACD,OAAM;IACR,CAAC,CAAA;IAED,OAAO,CACL,0CAEI,WAAW,CAAC,GAAG,CAAC,CAAC,UAAA,MAAM;QACrB,OAAO,CACL,MAAM,CAAC,MAAM;YACb;gBACE,gCACE,GAAG,EAAE,iBAAU,MAAM,CAAC,KAAK,CAAE,EAC7B,SAAS,EACP,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,yDAAyD;wBACzE,CAAC,CAAC,wBAAwB,EAE9B,OAAO,EAAE,UAAC,KAAK;wBACb,MAAM,CAAC,OAAO,EAAE,CAAA;wBAChB,gBAAgB,CAAC,KAAK,CAAC,CAAA;oBACzB,CAAC,EACD,KAAK,EACH,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAE5C,MAAM,CAAC,KAAK,CACN,CACR,CACJ,CAAA;IACH,CAAC,CAAC,CAAC,CAEJ,CACJ,CAAA;AACH,CAAC;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import useTheme from '../../hooks/useThemes';
|
|
2
|
+
import { activeItem } from '../../views/MessengerListItem';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
function ChatTabs(_a) {
|
|
5
|
+
var handleChangeTickets = _a.handleChangeTickets, chatListTabs = _a.chatListTabs;
|
|
6
|
+
var theme = useTheme().theme;
|
|
7
|
+
return (React.createElement("div", { className: "chat-tabs", style: { color: theme.asideFontColor } }, chatListTabs.map(function (tab, index) {
|
|
8
|
+
return (React.createElement("button", { key: "chatListTab-".concat(index), className: "chat-tabs__button ".concat(index === 0 && 'chat-tabs__button--active'), onClick: function (e) {
|
|
9
|
+
handleChangeTickets(tab.value);
|
|
10
|
+
activeItem(e, 'chat-tabs__button', 'chat-tabs__button--active');
|
|
11
|
+
} }, tab.label));
|
|
12
|
+
})));
|
|
13
|
+
}
|
|
14
|
+
export default ChatTabs;
|
|
15
|
+
//# sourceMappingURL=ChatTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatTabs.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/ChatTabs/ChatTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,SAAS,QAAQ,CAAE,EAA4C;QAA3C,mBAAmB,yBAAA,EAAE,YAAY,kBAAA;IAC3C,IAAA,KAAK,GAAI,QAAQ,EAAE,MAAd,CAAc;IAC3B,OAAO,CACL,6BAAK,SAAS,EAAC,WAAW,EAAC,KAAK,EAC9B,EAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAC,IAE5B,YAAY,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,KAAK;QAAM,OAAO,CACxC,gCACE,GAAG,EAAE,sBAAe,KAAK,CAAE,EAC3B,SAAS,EAAE,4BAAsB,KAAK,KAAK,CAAC,IAAI,2BAA2B,CAAE,EAC7E,OAAO,EAAE,UAAC,CAAC;gBACT,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC9B,UAAU,CAAC,CAAC,EAAE,mBAAmB,EAAE,2BAA2B,CAAC,CAAA;YACjE,CAAC,IAEA,GAAG,CAAC,KAAK,CACH,CACV,CAAA;IAAA,CAAC,CAAC,CACC,CACP,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
function ImagesContainer(_a) {
|
|
3
|
+
var file = _a.file, onClose = _a.onClose;
|
|
4
|
+
var _b = useState(''), b64 = _b[0], setB64 = _b[1];
|
|
5
|
+
useEffect(function () {
|
|
6
|
+
function getBase64(file) {
|
|
7
|
+
return new Promise(function (resolve, reject) {
|
|
8
|
+
var reader = new FileReader();
|
|
9
|
+
reader.readAsDataURL(file);
|
|
10
|
+
reader.onload = function () { return resolve(reader.result); };
|
|
11
|
+
reader.onerror = function (error) { return reject(error); };
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
if (file)
|
|
15
|
+
getBase64(file).then(function (base64) { return setB64(base64); });
|
|
16
|
+
}, [file]);
|
|
17
|
+
return (React.createElement("div", { className: "images-container" },
|
|
18
|
+
React.createElement("div", { className: "images-container__close" },
|
|
19
|
+
React.createElement("button", { className: "images-container__close--icon", onClick: onClose })),
|
|
20
|
+
React.createElement("div", { className: "images-container__container" },
|
|
21
|
+
React.createElement("img", { alt: 'arquivos enviados pelo chat agx', src: b64, className: "images-container__image" }))));
|
|
22
|
+
}
|
|
23
|
+
export default ImagesContainer;
|
|
24
|
+
//# sourceMappingURL=ImagesContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImagesContainer.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGlD,SAAS,eAAe,CAAE,EAAmC;QAAjC,IAAI,UAAA,EAAE,OAAO,aAAA;IACjC,IAAA,KAAgB,QAAQ,CAAS,EAAE,CAAC,EAAnC,GAAG,QAAA,EAAE,MAAM,QAAwB,CAAA;IAE1C,SAAS,CAAC;QACR,SAAS,SAAS,CAAE,IAAU;YAC5B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;gBAC/B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBAC1B,MAAM,CAAC,MAAM,GAAG,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAtB,CAAsB,CAAA;gBAC5C,MAAM,CAAC,OAAO,GAAG,UAAC,KAAK,IAAK,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,MAAgB,CAAC,EAAxB,CAAwB,CAAC,CAAA;IACpE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;QAC/B,6BAAK,SAAS,EAAC,yBAAyB;YACtC,gCACE,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,OAAO,GAChB,CACE;QAEN,6BAAK,SAAS,EAAC,6BAA6B;YAC1C,6BACE,GAAG,EAAC,iCAAiC,EACrC,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,yBAAyB,GACnC,CACE,CACF,CACP,CAAA;AACH,CAAC;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import useTheme from '../../hooks/useThemes';
|
|
2
|
+
import React, { useCallback, useState } from 'react';
|
|
3
|
+
import MessengerAvatar from '../MessengerAvatar/MessengerAvatar';
|
|
4
|
+
import ReactSimpleImageViewer from '../../../../../node_modules/react-simple-image-viewer';
|
|
5
|
+
function IncomingMessage(_a) {
|
|
6
|
+
var _b;
|
|
7
|
+
var date = _a.date, message = _a.message, user = _a.user, hasFile = _a.hasFile, file = _a.file, isSystemMessage = _a.isSystemMessage, formatDate = _a.formatDate, id = _a.id;
|
|
8
|
+
var theme = useTheme().theme;
|
|
9
|
+
var _c = useState(0), currentImage = _c[0], setCurrentImage = _c[1];
|
|
10
|
+
var _d = useState(false), isViewerOpen = _d[0], setIsViewerOpen = _d[1];
|
|
11
|
+
var openImageViewer = useCallback(function (index) {
|
|
12
|
+
setCurrentImage(index);
|
|
13
|
+
setIsViewerOpen(true);
|
|
14
|
+
}, []);
|
|
15
|
+
var closeImageViewer = function () {
|
|
16
|
+
setCurrentImage(0);
|
|
17
|
+
setIsViewerOpen(false);
|
|
18
|
+
};
|
|
19
|
+
return (React.createElement("div", { className: "messenger__messages-row--received", id: id },
|
|
20
|
+
(user.avatar || user.name) && !isSystemMessage && (React.createElement("div", { className: "messenger__message-avatar mr-2" },
|
|
21
|
+
React.createElement(MessengerAvatar, { image: user.avatar }, user.name.slice(0, 1)))),
|
|
22
|
+
React.createElement("div", { className: "messenger__messages-received", style: { background: theme === null || theme === void 0 ? void 0 : theme.messengerIncomerColor } },
|
|
23
|
+
!isSystemMessage && React.createElement("p", { className: "messenger__message-title" }, user.name),
|
|
24
|
+
React.createElement("span", null,
|
|
25
|
+
hasFile && (React.createElement("div", { className: "messenger__message--file" },
|
|
26
|
+
React.createElement("img", { src: file === null || file === void 0 ? void 0 : file.location, width: 200, alt: "imagem na mensagem", onClick: function () { return openImageViewer(currentImage); } }))),
|
|
27
|
+
React.createElement("p", { className: "messenger__message" }, message),
|
|
28
|
+
React.createElement("p", { className: "messenger__message--date" }, (_b = formatDate(date)) !== null && _b !== void 0 ? _b : new Date(date).toString()))),
|
|
29
|
+
file && isViewerOpen &&
|
|
30
|
+
React.createElement(ReactSimpleImageViewer, { src: [file.location], currentIndex: 0, disableScroll: false, closeOnClickOutside: true, onClose: closeImageViewer })));
|
|
31
|
+
}
|
|
32
|
+
export default IncomingMessage;
|
|
33
|
+
//# sourceMappingURL=IncomingMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IncomingMessage.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uBAAuB,CAAA;AAC5C,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,eAAe,MAAM,oCAAoC,CAAA;AAChE,OAAO,sBAAsB,MAAM,uDAAuD,CAAA;AAC1F,SAAS,eAAe,CAAE,EAA0F;;QAAxF,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,eAAe,qBAAA,EAAE,UAAU,gBAAA,EAAE,EAAE,QAAA;IACtF,IAAA,KAAK,GAAI,QAAQ,EAAE,MAAd,CAAc;IACpB,IAAA,KAAkC,QAAQ,CAAC,CAAC,CAAC,EAA5C,YAAY,QAAA,EAAE,eAAe,QAAe,CAAC;IAC9C,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAExD,IAAM,eAAe,GAAG,WAAW,CAAC,UAAC,KAAK;QACxC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,gBAAgB,GAAG;QACvB,eAAe,CAAC,CAAC,CAAC,CAAC;QACnB,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAC,mCAAmC,EAC7C,EAAE,EAAE,EAAE;QAEL,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CACjD,6BAAK,SAAS,EAAC,gCAAgC;YAC7C,oBAAC,eAAe,IAAC,KAAK,EAAE,IAAI,CAAC,MAAM,IAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAmB,CAC1E,CACP;QAED,6BAAK,SAAS,EAAC,8BAA8B,EAAC,KAAK,EAAE,EAAC,UAAU,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,qBAAqB,EAAC;YAC5F,CAAC,eAAe,IAAI,2BAAG,SAAS,EAAC,0BAA0B,IAAE,IAAI,CAAC,IAAI,CAAK;YAE5E;gBACG,OAAO,IAAI,CACV,6BAAK,SAAS,EAAC,0BAA0B;oBACvC,6BAAK,GAAG,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAC,oBAAoB,EAAC,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,YAAY,CAAC,EAA7B,CAA6B,GAAG,CAC1G,CACP;gBACD,2BAAG,SAAS,EAAC,oBAAoB,IAAE,OAAO,CAAK;gBAC/C,2BAAG,SAAS,EAAC,0BAA0B,IAAE,MAAA,UAAU,CAAC,IAAI,CAAC,mCAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAK,CACtF,CAEH;QACL,IAAI,IAAI,YAAY;YACnB,oBAAC,sBAAsB,IACrB,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EACpB,YAAY,EAAE,CAAC,EACf,aAAa,EAAE,KAAK,EACpB,mBAAmB,EAAE,IAAI,EACzB,OAAO,EAAE,gBAAgB,GACzB,CAEA,CACP,CAAA;AACH,CAAC;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
interface IInfiniteScroll {
|
|
3
|
+
loading: boolean;
|
|
4
|
+
more: boolean;
|
|
5
|
+
fetch: () => void;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
loadingCover: React.ReactElement;
|
|
8
|
+
root: Element | null;
|
|
9
|
+
}
|
|
10
|
+
declare function InfiniteScroll({ loading, loadingCover, more, fetch, children, root }: IInfiniteScroll): JSX.Element;
|
|
11
|
+
export default InfiniteScroll;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
var style = {
|
|
3
|
+
width: 25,
|
|
4
|
+
height: 25,
|
|
5
|
+
visibility: 'hidden'
|
|
6
|
+
};
|
|
7
|
+
function InfiniteScroll(_a) {
|
|
8
|
+
var loading = _a.loading, loadingCover = _a.loadingCover, more = _a.more, fetch = _a.fetch, children = _a.children, root = _a.root;
|
|
9
|
+
var _b = React.useState(null), infiniteElement = _b[0], SetInfiniteElement = _b[1];
|
|
10
|
+
React.useEffect(function () {
|
|
11
|
+
if (!root)
|
|
12
|
+
return;
|
|
13
|
+
var currentElement = infiniteElement;
|
|
14
|
+
var observer = new IntersectionObserver(function (entries) {
|
|
15
|
+
var first = entries[0];
|
|
16
|
+
if (first.isIntersecting === true)
|
|
17
|
+
fetch();
|
|
18
|
+
}, {
|
|
19
|
+
root: root,
|
|
20
|
+
rootMargin: '400px',
|
|
21
|
+
threshold: .5
|
|
22
|
+
});
|
|
23
|
+
if (currentElement) {
|
|
24
|
+
observer.observe(currentElement);
|
|
25
|
+
}
|
|
26
|
+
return function () {
|
|
27
|
+
if (currentElement)
|
|
28
|
+
observer.unobserve(currentElement);
|
|
29
|
+
};
|
|
30
|
+
}, [infiniteElement]);
|
|
31
|
+
return (React.createElement(React.Fragment, null,
|
|
32
|
+
children,
|
|
33
|
+
loading && loadingCover,
|
|
34
|
+
(more && !loading) && React.createElement("div", { ref: SetInfiniteElement, style: style })));
|
|
35
|
+
}
|
|
36
|
+
export default InfiniteScroll;
|
|
37
|
+
//# sourceMappingURL=InfiniteScroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfiniteScroll.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmC,MAAM,OAAO,CAAA;AAWvD,IAAM,KAAK,GAAkB;IAC3B,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,QAAQ;CACrB,CAAA;AAED,SAAS,cAAc,CAAC,EAAuE;QAArE,OAAO,aAAA,EAAE,YAAY,kBAAA,EAAE,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;IACpE,IAAA,KAAwC,KAAK,CAAC,QAAQ,CAAwB,IAAI,CAAC,EAAlF,eAAe,QAAA,EAAE,kBAAkB,QAA+C,CAAA;IAEzF,KAAK,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAM,cAAc,GAAG,eAAe,CAAA;QACtC,IAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,UAAA,OAAO;YAC/C,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI;gBAAE,KAAK,EAAE,CAAA;QAC5C,CAAC,EAAE;YACD,IAAI,MAAA;YACJ,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;QAEF,IAAI,cAAc,EAAE;YAClB,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;SACjC;QAED,OAAO;YACL,IAAI,cAAc;gBAAE,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QACxD,CAAC,CAAA;IAEH,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;IAErB,OAAO,CACL;QACG,QAAQ;QACR,OAAO,IAAI,YAAY;QACvB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,6BAAK,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,GAAQ,CACxE,CACJ,CAAA;AACH,CAAC;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import TrashIcon from '../../icons/TrashIcon';
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
|
+
import useTheme from '../../hooks/useThemes';
|
|
4
|
+
function InputFile(_a) {
|
|
5
|
+
var fileList = _a.fileList, onUpdateFile = _a.onUpdateFile, label = _a.label, onRemoveFile = _a.onRemoveFile;
|
|
6
|
+
var theme = useTheme().theme;
|
|
7
|
+
var validateFileType = useMemo(function () { return function (allowedTypes, file) {
|
|
8
|
+
if (file === null || file === void 0 ? void 0 : file.type) {
|
|
9
|
+
return allowedTypes.includes(file === null || file === void 0 ? void 0 : file.type);
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}; }, []);
|
|
13
|
+
var onUpload = function () {
|
|
14
|
+
var input = document.querySelector(".file-input__input");
|
|
15
|
+
input === null || input === void 0 ? void 0 : input.click();
|
|
16
|
+
};
|
|
17
|
+
var onChange = function (e) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
var file = (_b = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b[0];
|
|
20
|
+
var isAllowedType = validateFileType(['image/png', 'image/jpeg'], file);
|
|
21
|
+
if (!isAllowedType) {
|
|
22
|
+
console.error('Escolha uma imagem de extensão JPG ou PNG');
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (file)
|
|
26
|
+
onUpdateFile(file);
|
|
27
|
+
return true;
|
|
28
|
+
};
|
|
29
|
+
var removeItem = function (file) {
|
|
30
|
+
if (fileList.some(function (item) { return item === file; })) {
|
|
31
|
+
onRemoveFile(file);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
return (React.createElement(React.Fragment, null,
|
|
35
|
+
React.createElement("div", { className: 'file-input' },
|
|
36
|
+
React.createElement("label", { style: { color: theme.newChatFormTexts }, htmlFor: "", className: 'file-input__label' }, label),
|
|
37
|
+
React.createElement("div", { className: "file-input__container", style: {
|
|
38
|
+
backgroundColor: theme.inputBg,
|
|
39
|
+
color: theme.newChatFormTexts
|
|
40
|
+
} },
|
|
41
|
+
React.createElement("input", { className: 'file-input__input', type: "file", id: "docpicker", hidden: true, accept: ".jpg, .jpeg, .png", onChange: function (event) { return onChange(event); } }),
|
|
42
|
+
React.createElement("h4", null, "Escolha o arquivo"),
|
|
43
|
+
React.createElement("button", { className: 'file-input__button', type: "button", onClick: onUpload, style: {
|
|
44
|
+
background: theme === null || theme === void 0 ? void 0 : theme.buttonPrimary,
|
|
45
|
+
color: theme === null || theme === void 0 ? void 0 : theme.buttonPrimaryText
|
|
46
|
+
} }, "Escolher arquivo"),
|
|
47
|
+
React.createElement("p", null, "S\u00E3o aceitas imagens no formato .png ou .jpg"))),
|
|
48
|
+
React.createElement("div", null, fileList && fileList.map(function (item) {
|
|
49
|
+
return React.createElement("div", { className: "file-input__list", key: item.name, style: {
|
|
50
|
+
backgroundColor: theme.inputBg,
|
|
51
|
+
color: theme.newChatFormTexts
|
|
52
|
+
} },
|
|
53
|
+
item.name,
|
|
54
|
+
React.createElement("button", { className: "file-input__delete", onClick: function () { return removeItem(item); } },
|
|
55
|
+
React.createElement(TrashIcon, { color: theme.newChatFormDeleteFileButton || 'red' })));
|
|
56
|
+
}))));
|
|
57
|
+
}
|
|
58
|
+
export default InputFile;
|
|
59
|
+
//# sourceMappingURL=InputFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputFile.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/InputFile/InputFile.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IMessages } from "types";
|
|
2
|
+
declare function MessageBalloon({ item, creatorId, formatDate, id }: {
|
|
3
|
+
item: IMessages;
|
|
4
|
+
creatorId?: string;
|
|
5
|
+
formatDate: (date: string | Date) => string | undefined;
|
|
6
|
+
id: string;
|
|
7
|
+
}): JSX.Element;
|
|
8
|
+
export default MessageBalloon;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import IncomingMessage from "../IncomingMessage/IncomingMessage";
|
|
3
|
+
import SenderMessages from "../SenderMessages/SenderMessages";
|
|
4
|
+
import SystemMessage from '../SystemMessage/SystemMessage';
|
|
5
|
+
function MessageBalloon(_a) {
|
|
6
|
+
var _b;
|
|
7
|
+
var item = _a.item, creatorId = _a.creatorId, formatDate = _a.formatDate, id = _a.id;
|
|
8
|
+
if (item.isSystemMessage) {
|
|
9
|
+
return (React.createElement(SystemMessage, { formatDate: formatDate, date: item.createdAt, message: item.content, id: item.senderId, user: { name: 'System' } }));
|
|
10
|
+
}
|
|
11
|
+
if (item.sender.uniqueCode && !item.isSystemMessage && (item.sender.uniqueCode === creatorId)) {
|
|
12
|
+
return (React.createElement(React.Fragment, null,
|
|
13
|
+
React.createElement(SenderMessages, { id: id, formatDate: formatDate, message: item.content, date: item.createdAt, read: item.everybodyHasRead, hasFile: item.hasFile, file: item.file }),
|
|
14
|
+
item.images && item.images.map(function (image, index) {
|
|
15
|
+
return React.createElement(SenderMessages, { key: image.key, id: "".concat(id, "image-").concat(index), formatDate: formatDate, date: item.createdAt, file: image, message: '', hasFile: true, read: item.everybodyHasRead });
|
|
16
|
+
})));
|
|
17
|
+
}
|
|
18
|
+
return (React.createElement(React.Fragment, null,
|
|
19
|
+
React.createElement(IncomingMessage, { id: id, formatDate: formatDate, date: item.createdAt, message: item.content, hasFile: item.hasFile, isSystemMessage: item.isSystemMessage, file: item.file, user: {
|
|
20
|
+
avatar: (_b = item.sender) === null || _b === void 0 ? void 0 : _b.image,
|
|
21
|
+
name: item.sender.username
|
|
22
|
+
} }),
|
|
23
|
+
item.images && item.images.map(function (image, index) {
|
|
24
|
+
var _a;
|
|
25
|
+
return React.createElement(IncomingMessage, { key: image.key, id: "".concat(id, "image-").concat(index), formatDate: formatDate, date: item.createdAt, file: image, message: '', hasFile: true, user: {
|
|
26
|
+
avatar: (_a = item.sender) === null || _a === void 0 ? void 0 : _a.image,
|
|
27
|
+
name: item.sender.username
|
|
28
|
+
} });
|
|
29
|
+
})));
|
|
30
|
+
}
|
|
31
|
+
export default MessageBalloon;
|
|
32
|
+
//# sourceMappingURL=MessageBalloon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageBalloon.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/MessageBallon/MessageBalloon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,eAAe,MAAM,oCAAoC,CAAA;AAChE,OAAO,cAAc,MAAM,kCAAkC,CAAA;AAC7D,OAAO,aAAa,MAAM,gCAAgC,CAAA;AAE1D,SAAS,cAAc,CAAC,EAKvB;;QALyB,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,EAAE,QAAA;IAMvD,IAAI,IAAI,CAAC,eAAe,EAAE;QACxB,OAAO,CACL,oBAAC,aAAa,IACZ,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GACxB,CACH,CAAA;KACF;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE;QAC7F,OAAO,CACL;YACE,oBAAC,cAAc,IACb,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,GACf;YACD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAc,EAAE,KAAa;gBAC5D,OAAA,oBAAC,cAAc,IACb,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,EAAE,EAAE,UAAG,EAAE,mBAAS,KAAK,CAAE,EACzB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,IAAI,EAAE,KAAK,EACX,OAAO,EAAC,EAAE,EACV,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,GAC3B;YATF,CASE,CACH,CACA,CACJ,CAAA;KACF;IAED,OAAO,CACL;QACE,oBAAC,eAAe,IACd,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK;gBAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC3B,GACD;QAED,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAc,EAAE,KAAa;;YAC5D,OAAA,oBAAC,eAAe,IACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,EAAE,EAAE,UAAG,EAAE,mBAAS,KAAK,CAAE,EACzB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,IAAI,EAAE,KAAK,EACX,OAAO,EAAC,EAAE,EACV,OAAO,EAAE,IAAI,EACb,IAAI,EAAE;oBACJ,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK;oBAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;iBAC3B,GACD,CAAA;SAAA,CACH,CACA,CACJ,CAAA;AACH,CAAC;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import useTheme from '../../hooks/useThemes';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
function MessengerAvatar(_a) {
|
|
4
|
+
var image = _a.image, children = _a.children, _b = _a.className, className = _b === void 0 ? '' : _b;
|
|
5
|
+
var theme = useTheme().theme;
|
|
6
|
+
return (React.createElement("figure", { style: {
|
|
7
|
+
background: theme.messengerIncomerColor
|
|
8
|
+
}, className: "".concat(className, " messenger__aside-list-item--avatar") }, image
|
|
9
|
+
? (React.createElement("img", { loading: "lazy", alt: 'imagem de um avatar de usu\u00E1rio', src: image }))
|
|
10
|
+
: children));
|
|
11
|
+
}
|
|
12
|
+
export default MessengerAvatar;
|
|
13
|
+
//# sourceMappingURL=MessengerAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessengerAvatar.js","sourceRoot":"","sources":["../../../../../../src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,uBAAuB,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,SAAS,eAAe,CAAC,EAAsD;QAApD,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAChD,IAAA,KAAK,GAAK,QAAQ,EAAE,MAAf,CAAe;IAC5B,OAAO,CACL,gCACE,KAAK,EAAE;YACL,UAAU,EAAE,KAAK,CAAC,qBAAqB;SACxC,EACD,SAAS,EAAE,UAAG,SAAS,wCAAqC,IAE3D,KAAK;QACJ,CAAC,CAAC,CAAC,6BAAK,OAAO,EAAC,MAAM,EAAC,GAAG,EAAC,qCAAgC,EAAC,GAAG,EAAE,KAAK,GAAI,CAAC;QAC3E,CAAC,CAAC,QAAQ,CACL,CACV,CAAA;AACH,CAAC;AAED,eAAe,eAAe,CAAA"}
|