@dotss/tictoccroc 0.0.9 → 0.0.11

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.mjs CHANGED
@@ -9,15 +9,15 @@ import { default as g } from "./shared/components/MediaDialog/MediaDialogFooter/
9
9
  import { default as y } from "./shared/components/MediaDialog/MediaDialogToolbar/MediaDialogToolbar.mjs";
10
10
  import { default as A } from "./shared/components/Swiper/Swiper.mjs";
11
11
  import { default as v } from "./shared/components/Swiper/SwiperBlock/SwiperBlock.mjs";
12
- import { default as B } from "./shared/components/Carousel/Carousel.mjs";
12
+ import { default as h } from "./shared/components/Carousel/Carousel.mjs";
13
13
  import { default as I } from "./shared/components/Carousel/CarouselSlide/CarouselSlide.mjs";
14
14
  import { default as M } from "./shared/components/TimePicker/TimePicker.mjs";
15
15
  import { default as R } from "./shared/components/Roller/Roller.mjs";
16
16
  import { default as T } from "./shared/components/Roller/RollerBlock/RollerBlock.mjs";
17
17
  import { default as G } from "./shared/components/Image/Image.mjs";
18
- import { default as K } from "./shared/components/Calendar/Calendar.mjs";
19
- import { default as Q } from "./shared/components/Masonry/Masonry.mjs";
20
- import { default as F } from "./shared/components/Masonry/MasonryBlock/MasonryBlock.mjs";
18
+ import { default as F } from "./shared/components/Calendar/Calendar.mjs";
19
+ import { default as N } from "./shared/components/Masonry/Masonry.mjs";
20
+ import { default as j } from "./shared/components/Masonry/MasonryBlock/MasonryBlock.mjs";
21
21
  import { default as V } from "./shared/components/LoadingAnnouncer/LoadingAnnouncer.mjs";
22
22
  import { default as z } from "./shared/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.mjs";
23
23
  import { default as J } from "./shared/utils/getImageUrl/getImageUrl.mjs";
@@ -32,77 +32,79 @@ import { default as se } from "./shared/utils/objectToQueryString/objectToQueryS
32
32
  import { default as ue } from "./shared/utils/getVimeoId/getVimeoId.mjs";
33
33
  import { default as ie } from "./shared/utils/parseQueryString/parseQueryString.mjs";
34
34
  import { default as ce } from "./shared/utils/share/share.mjs";
35
- import { default as ge } from "./teacher/profile/components/ProfileSummary/ProfileSummary.mjs";
36
- import { default as ye } from "./teacher/profile/components/StatBadgeCollection/StatBadgeCollection.mjs";
37
- import { default as Ae } from "./teacher/profile/components/StatBadgeCollection/StatBadge/StatBadge.mjs";
38
- import { default as ve } from "./teacher/profile/components/ActivityGallery/ActivityGallery.mjs";
39
- import { default as Be } from "./teacher/profile/components/ActivityGallery/ActivityGalleryItem/ActivityGalleryItem.mjs";
40
- import { default as Ie } from "./teacher/profile/components/CertificateSection/CertificateSection.mjs";
41
- import { default as Me } from "./teacher/profile/components/CertificateSection/CertificateItem/CertificateItem.mjs";
42
- import { default as Re } from "./teacher/profile/components/CareerSection/CareerSection.mjs";
43
- import { default as Te } from "./teacher/profile/components/CareerSection/CareerItem/CareerItem.mjs";
44
- import { default as Ge } from "./teacher/profile/components/EducationSection/EducationSection.mjs";
45
- import { default as Ke } from "./teacher/profile/components/EducationSection/EducationItem/EducationItem.mjs";
46
- import { default as Qe } from "./teacher/profile/components/PreferredActivityKeywordGroup/PreferredActivityKeywordGroup.mjs";
47
- import { default as Fe } from "./teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.mjs";
48
- import { getPreferredAgeKeywords as Ve } from "./teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.utils.mjs";
49
- import { default as ze } from "./teacher/profile/components/AbilityCollection/AbilityCollection.mjs";
50
- import { default as Je } from "./teacher/profile/components/AbilityCollection/AbilityBadge/AbilityBadge.mjs";
51
- import { getAbilityCollection as We } from "./teacher/profile/components/AbilityCollection/AbilityCollection.utils.mjs";
52
- import { default as Ye } from "./teacher/profile/components/AvailableScheduleSection/AvailableScheduleSection.mjs";
53
- import { default as _e } from "./teacher/profile/components/ClassNotesSection/ClassNotesSection.mjs";
54
- import { default as et } from "./teacher/profile/components/ClassNotesSection/ClassNote/ClassNote.mjs";
55
- import { default as ot } from "./teacher/profile/components/ParentReviewSection/ParentReviewSection.mjs";
56
- import { getChildLabel as at } from "./teacher/profile/components/ParentReviewSection/ParentReviewSection.utils.mjs";
57
- import { default as lt } from "./teacher/profile/components/ParentReviewSection/ParentReviewCard/ParentReviewCard.mjs";
35
+ import { default as ge } from "./shared/utils/dayFlagToDay/dayFlagToDay.mjs";
36
+ import { default as ye } from "./teacher/profile/components/ProfileSummary/ProfileSummary.mjs";
37
+ import { default as Ae } from "./teacher/profile/components/StatBadgeCollection/StatBadgeCollection.mjs";
38
+ import { default as ve } from "./teacher/profile/components/StatBadgeCollection/StatBadge/StatBadge.mjs";
39
+ import { default as he } from "./teacher/profile/components/ActivityGallery/ActivityGallery.mjs";
40
+ import { default as Ie } from "./teacher/profile/components/ActivityGallery/ActivityGalleryItem/ActivityGalleryItem.mjs";
41
+ import { default as Me } from "./teacher/profile/components/CertificateSection/CertificateSection.mjs";
42
+ import { default as Re } from "./teacher/profile/components/CertificateSection/CertificateItem/CertificateItem.mjs";
43
+ import { default as Te } from "./teacher/profile/components/CareerSection/CareerSection.mjs";
44
+ import { default as Ge } from "./teacher/profile/components/CareerSection/CareerItem/CareerItem.mjs";
45
+ import { default as Fe } from "./teacher/profile/components/EducationSection/EducationSection.mjs";
46
+ import { default as Ne } from "./teacher/profile/components/EducationSection/EducationItem/EducationItem.mjs";
47
+ import { default as je } from "./teacher/profile/components/PreferredActivityKeywordGroup/PreferredActivityKeywordGroup.mjs";
48
+ import { default as Ve } from "./teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.mjs";
49
+ import { getPreferredAgeKeywords as ze } from "./teacher/profile/components/PreferredAgeGroup/PreferredAgeGroup.utils.mjs";
50
+ import { default as Je } from "./teacher/profile/components/AbilityCollection/AbilityCollection.mjs";
51
+ import { default as We } from "./teacher/profile/components/AbilityCollection/AbilityBadge/AbilityBadge.mjs";
52
+ import { getAbilityCollection as Ye } from "./teacher/profile/components/AbilityCollection/AbilityCollection.utils.mjs";
53
+ import { default as _e } from "./teacher/profile/components/AvailableScheduleSection/AvailableScheduleSection.mjs";
54
+ import { default as et } from "./teacher/profile/components/ClassNotesSection/ClassNotesSection.mjs";
55
+ import { default as ot } from "./teacher/profile/components/ClassNotesSection/ClassNote/ClassNote.mjs";
56
+ import { default as at } from "./teacher/profile/components/ParentReviewSection/ParentReviewSection.mjs";
57
+ import { getChildLabel as lt } from "./teacher/profile/components/ParentReviewSection/ParentReviewSection.utils.mjs";
58
+ import { default as st } from "./teacher/profile/components/ParentReviewSection/ParentReviewCard/ParentReviewCard.mjs";
58
59
  export {
59
- Je as AbilityBadge,
60
- ze as AbilityCollection,
61
- ve as ActivityGallery,
62
- Be as ActivityGalleryItem,
63
- Ye as AvailableScheduleSection,
64
- K as Calendar,
65
- Te as CareerItem,
66
- Re as CareerSection,
67
- B as Carousel,
60
+ We as AbilityBadge,
61
+ Je as AbilityCollection,
62
+ he as ActivityGallery,
63
+ Ie as ActivityGalleryItem,
64
+ _e as AvailableScheduleSection,
65
+ F as Calendar,
66
+ Ge as CareerItem,
67
+ Te as CareerSection,
68
+ h as Carousel,
68
69
  I as CarouselSlide,
69
- Me as CertificateItem,
70
- Ie as CertificateSection,
71
- et as ClassNote,
72
- _e as ClassNotesSection,
73
- Ke as EducationItem,
74
- Ge as EducationSection,
70
+ Re as CertificateItem,
71
+ Me as CertificateSection,
72
+ ot as ClassNote,
73
+ et as ClassNotesSection,
74
+ Ne as EducationItem,
75
+ Fe as EducationSection,
75
76
  G as Image,
76
77
  V as LoadingAnnouncer,
77
- Q as Masonry,
78
- F as MasonryBlock,
78
+ N as Masonry,
79
+ j as MasonryBlock,
79
80
  i as MediaBlock,
80
81
  u as MediaDialog,
81
82
  c as MediaDialogContent,
82
83
  g as MediaDialogFooter,
83
84
  y as MediaDialogToolbar,
84
- lt as ParentReviewCard,
85
- ot as ParentReviewSection,
86
- Qe as PreferredActivityKeywordGroup,
87
- Fe as PreferredAgeGroup,
88
- ge as ProfileSummary,
85
+ st as ParentReviewCard,
86
+ at as ParentReviewSection,
87
+ je as PreferredActivityKeywordGroup,
88
+ Ve as PreferredAgeGroup,
89
+ ye as ProfileSummary,
89
90
  R as Roller,
90
91
  T as RollerBlock,
91
92
  l as ScheduleBlock,
92
93
  a as ScheduleEvent,
93
94
  o as Scheduler,
94
- Ae as StatBadge,
95
- ye as StatBadgeCollection,
95
+ ve as StatBadge,
96
+ Ae as StatBadgeCollection,
96
97
  A as Swiper,
97
98
  v as SwiperBlock,
98
99
  M as TimePicker,
99
100
  le as birthDateToAge,
100
- We as getAbilityCollection,
101
+ ge as dayFlagToDay,
102
+ Ye as getAbilityCollection,
101
103
  s as getAvailableDateRange,
102
- at as getChildLabel,
104
+ lt as getChildLabel,
103
105
  _ as getDateRange,
104
106
  J as getImageUrl,
105
- Ve as getPreferredAgeKeywords,
107
+ ze as getPreferredAgeKeywords,
106
108
  Y as getTimeRange,
107
109
  ue as getVimeoId,
108
110
  ee as isAndroid,
@@ -1,5 +1,6 @@
1
1
  import { Dayjs } from 'dayjs';
2
2
  import { ScheduleEventProps } from './ScheduleEvent/ScheduleEvent';
3
+ import { DayFlag } from '../../typings/common';
3
4
  export interface ScheduleEventWithRange extends ScheduleEventProps {
4
5
  start: number;
5
6
  end: number;
@@ -27,7 +28,7 @@ export declare function getAvailableDateRange(startDate: string | Date | Dayjs,
27
28
  endDate: string;
28
29
  startTime: number;
29
30
  endTime: number;
30
- weekDay: string | number;
31
+ dayFlag: DayFlag[];
31
32
  oneDayDate: string | null;
32
33
  }[];
33
34
  mergedTimeBlocks: boolean;
@@ -1,7 +1,8 @@
1
1
  import s from "dayjs";
2
- import g from "../../utils/getDateRange/getDateRange.mjs";
3
- import y from "../../utils/getTimeRange/getTimeRange.mjs";
4
- function M(u, n = []) {
2
+ import g from "../../utils/dayFlagToDay/dayFlagToDay.mjs";
3
+ import v from "../../utils/getDateRange/getDateRange.mjs";
4
+ import E from "../../utils/getTimeRange/getTimeRange.mjs";
5
+ function C(u, n = []) {
5
6
  const a = Array.from({ length: 7 }, (e, f) => u.add(f, "day")), i = u, o = u.add(6, "day").endOf("day"), m = n.map((e) => {
6
7
  const f = s(e.startDate), t = s(e.endDate).endOf("day"), r = f.isBefore(i) ? i : f, c = t.isAfter(o) ? o : t, l = r.diff(i, "day"), p = c.diff(r, "day") + 1;
7
8
  return {
@@ -12,12 +13,12 @@ function M(u, n = []) {
12
13
  }).filter((e) => e.start <= 6 && e.end >= 0);
13
14
  return { days: a.map((e) => e), scheduleEvents: m };
14
15
  }
15
- function _(u, n) {
16
+ function O(u, n) {
16
17
  return u.filter(
17
18
  (a) => s(a.startDate).isBefore(n.endOf("day")) && s(a.endDate).isAfter(n.startOf("day"))
18
19
  );
19
20
  }
20
- function Y(u, n) {
21
+ function x(u, n) {
21
22
  const a = n.startOf("day"), i = n.endOf("day"), m = [...u.filter(
22
23
  (t) => s(t.startDate).isBefore(i) && s(t.endDate).isAfter(a)
23
24
  ).map((t) => ({
@@ -62,20 +63,20 @@ function D(u) {
62
63
  const i = n.length;
63
64
  return a.forEach((o) => o.totalColumns = i), a;
64
65
  }
65
- function C(u) {
66
+ function A(u) {
66
67
  const n = s(u);
67
68
  return n.hour() * 60 + n.minute();
68
69
  }
69
- function O(u, n, {
70
+ function b(u, n, {
70
71
  schedules: a,
71
72
  mergedTimeBlocks: i = !1
72
73
  }) {
73
- return g(u, n).flatMap(({ value: o }, m) => {
74
- const e = a.filter(({ startDate: r, endDate: c, weekDay: l }) => {
74
+ return v(u, n).flatMap(({ value: o }, m) => {
75
+ const e = a.filter(({ startDate: r, endDate: c, dayFlag: l }) => {
75
76
  const p = s(r), h = s(c);
76
- return p.isAfter(o) || h.isBefore(o) ? !1 : String(l) === o.getDay().toString();
77
+ return p.isAfter(o) || h.isBefore(o) ? !1 : l.some((y) => g(y) === s(o).day());
77
78
  }).filter(({ oneDayDate: r }) => r ? s(r).isSame(o, "date") : !0).flatMap(
78
- ({ id: r, startTime: c, endTime: l }) => y(Number(c), Number(l), {
79
+ ({ id: r, startTime: c, endTime: l }) => E(Number(c), Number(l), {
79
80
  step: i ? l - c : void 0,
80
81
  pairs: !i
81
82
  }).map(({ value: p, label: h }) => ({
@@ -95,9 +96,9 @@ function O(u, n, {
95
96
  }
96
97
  export {
97
98
  D as assignColumnsToGroup,
98
- M as generateWeek,
99
- O as getAvailableDateRange,
100
- _ as getDayScheduleEvents,
101
- C as getMinutesFromMidnight,
102
- Y as resolvePositionedScheduleEventsForDate
99
+ C as generateWeek,
100
+ b as getAvailableDateRange,
101
+ O as getDayScheduleEvents,
102
+ A as getMinutesFromMidnight,
103
+ x as resolvePositionedScheduleEventsForDate
103
104
  };
@@ -0,0 +1,9 @@
1
+ export declare const enum DayFlag {
2
+ SUN = "SUN",
3
+ MON = "MON",
4
+ TUE = "TUE",
5
+ WED = "WED",
6
+ THU = "THU",
7
+ FRI = "FRI",
8
+ SAT = "SAT"
9
+ }
@@ -0,0 +1,4 @@
1
+ var U = /* @__PURE__ */ ((T) => (T.SUN = "SUN", T.MON = "MON", T.TUE = "TUE", T.WED = "WED", T.THU = "THU", T.FRI = "FRI", T.SAT = "SAT", T))(U || {});
2
+ export {
3
+ U as DayFlag
4
+ };
@@ -0,0 +1 @@
1
+ export * from './common';
@@ -0,0 +1,4 @@
1
+ import { DayFlag as r } from "./common.mjs";
2
+ export {
3
+ r as DayFlag
4
+ };
@@ -0,0 +1,2 @@
1
+ import { DayFlag } from '../../typings/common';
2
+ export default function dayFlagToDay(dayFlag?: DayFlag): 1 | 0 | 2 | 4 | 3 | 5 | 6 | null;
@@ -0,0 +1,24 @@
1
+ import { DayFlag as r } from "../../typings/common.mjs";
2
+ function t(e) {
3
+ switch (e) {
4
+ case r.SUN:
5
+ return 0;
6
+ case r.MON:
7
+ return 1;
8
+ case r.TUE:
9
+ return 2;
10
+ case r.WED:
11
+ return 3;
12
+ case r.THU:
13
+ return 4;
14
+ case r.FRI:
15
+ return 5;
16
+ case r.SAT:
17
+ return 6;
18
+ default:
19
+ return null;
20
+ }
21
+ }
22
+ export {
23
+ t as default
24
+ };
@@ -0,0 +1,2 @@
1
+ import { default as dayFlagToDay } from './dayFlagToDay';
2
+ export default dayFlagToDay;
@@ -0,0 +1,4 @@
1
+ import o from "./dayFlagToDay.mjs";
2
+ export {
3
+ o as default
4
+ };
@@ -10,3 +10,4 @@ export { default as objectToQueryString } from './objectToQueryString';
10
10
  export { default as getVimeoId } from './getVimeoId';
11
11
  export { default as parseQueryString } from './parseQueryString';
12
12
  export { default as share } from './share';
13
+ export { default as dayFlagToDay } from './dayFlagToDay';
@@ -1,26 +1,28 @@
1
1
  import { default as t } from "./getImageUrl/getImageUrl.mjs";
2
2
  import { default as o } from "./isServer/isServer.mjs";
3
3
  import { default as s } from "./getTimeRange/getTimeRange.mjs";
4
- import { default as d } from "./getDateRange/getDateRange.mjs";
5
- import { default as u } from "./isAndroid/isAndroid.mjs";
4
+ import { default as p } from "./getDateRange/getDateRange.mjs";
5
+ import { default as l } from "./isAndroid/isAndroid.mjs";
6
6
  import { default as x } from "./isApp/isApp.mjs";
7
7
  import { default as i } from "./isDesktop/isDesktop.mjs";
8
- import { default as A } from "./birthDateToAge/birthDateToAge.mjs";
9
- import { default as S } from "./objectToQueryString/objectToQueryString.mjs";
10
- import { default as b } from "./getVimeoId/getVimeoId.mjs";
11
- import { default as y } from "./parseQueryString/parseQueryString.mjs";
8
+ import { default as y } from "./birthDateToAge/birthDateToAge.mjs";
9
+ import { default as T } from "./objectToQueryString/objectToQueryString.mjs";
10
+ import { default as S } from "./getVimeoId/getVimeoId.mjs";
11
+ import { default as h } from "./parseQueryString/parseQueryString.mjs";
12
12
  import { default as Q } from "./share/share.mjs";
13
+ import { default as c } from "./dayFlagToDay/dayFlagToDay.mjs";
13
14
  export {
14
- A as birthDateToAge,
15
- d as getDateRange,
15
+ y as birthDateToAge,
16
+ c as dayFlagToDay,
17
+ p as getDateRange,
16
18
  t as getImageUrl,
17
19
  s as getTimeRange,
18
- b as getVimeoId,
19
- u as isAndroid,
20
+ S as getVimeoId,
21
+ l as isAndroid,
20
22
  x as isApp,
21
23
  i as isDesktop,
22
24
  o as isServer,
23
- S as objectToQueryString,
24
- y as parseQueryString,
25
+ T as objectToQueryString,
26
+ h as parseQueryString,
25
27
  Q as share
26
28
  };
@@ -7,8 +7,8 @@ function F({
7
7
  name: t,
8
8
  iconBasePath: b,
9
9
  completed: d,
10
- detail: { open: S, label: m, description: p, onClose: s, onClickApply: g },
11
- ...o
10
+ detail: { open: S, label: m, description: p, onClose: s, onClickApply: o },
11
+ ...g
12
12
  }) {
13
13
  const {
14
14
  palette: { brand: l },
@@ -27,8 +27,8 @@ function F({
27
27
  "aria-controls": `ability-badge-detail-${t}`,
28
28
  "aria-expanded": S,
29
29
  gap: 2,
30
- ...o,
31
- inlineCSS: { width: "100%", cursor: "pointer", ...o == null ? void 0 : o.inlineCSS },
30
+ ...g,
31
+ inlineCSS: { width: "100%", cursor: "pointer", ...g == null ? void 0 : g.inlineCSS },
32
32
  children: [
33
33
  /* @__PURE__ */ i(
34
34
  h,
@@ -96,7 +96,7 @@ function F({
96
96
  alignItems: "center",
97
97
  justifyContent: "center",
98
98
  gap: 2,
99
- mb: d ? 4 : void 0,
99
+ mb: d || typeof o != "function" ? 4 : void 0,
100
100
  children: [
101
101
  /* @__PURE__ */ i(e, { tag: "h3", variant: "h3B", id: `ability-badge-detail-name-${t}`, children: t }),
102
102
  /* @__PURE__ */ i(v, { variant: "outlined", color: "blue", size: "small", children: m }),
@@ -116,7 +116,7 @@ function F({
116
116
  ]
117
117
  }
118
118
  ),
119
- !d && typeof g == "function" && /* @__PURE__ */ r(
119
+ !d && typeof o == "function" && /* @__PURE__ */ r(
120
120
  a,
121
121
  {
122
122
  mt: 2,
@@ -432,7 +432,7 @@ function F({
432
432
  ]
433
433
  }
434
434
  ),
435
- !d && typeof g == "function" && /* @__PURE__ */ i(R, { children: /* @__PURE__ */ i(L, { size: "large", onClick: g, children: "신청하기" }) })
435
+ !d && typeof o == "function" && /* @__PURE__ */ i(R, { children: /* @__PURE__ */ i(L, { size: "large", onClick: o, children: "신청하기" }) })
436
436
  ]
437
437
  }
438
438
  )
@@ -1,6 +1,6 @@
1
- import { jsxs as l, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
2
  import { forwardRef as w, useState as S } from "react";
3
- import { Flexbox as n, Typography as o, Button as k, Icon as I } from "@dotss/ui";
3
+ import { Flexbox as l, Typography as o, Button as k, Icon as I } from "@dotss/ui";
4
4
  import R from "@dotss/ui/core/useTheme";
5
5
  import D from "@dotss/ui/Switch";
6
6
  import j from "../../../../shared/components/Image/Image.mjs";
@@ -10,7 +10,7 @@ const M = w(
10
10
  function({
11
11
  children: g,
12
12
  title: m = "수업 가능 일정",
13
- action: c,
13
+ action: r,
14
14
  footer: d,
15
15
  flat: s = !1,
16
16
  schedulerProps: p,
@@ -20,12 +20,12 @@ const M = w(
20
20
  }, v) {
21
21
  const {
22
22
  palette: { grey: b, background: f }
23
- } = R(), [t, C] = S(!1), x = () => C((r) => !r), y = (r) => {
23
+ } = R(), [t, C] = S(!1), x = () => C((c) => !c), y = (c) => {
24
24
  var u;
25
- return (u = i.onChange) == null ? void 0 : u.call(i, r);
25
+ return (u = i.onChange) == null ? void 0 : u.call(i, c);
26
26
  };
27
- return /* @__PURE__ */ l(
28
- n,
27
+ return /* @__PURE__ */ n(
28
+ l,
29
29
  {
30
30
  ref: v,
31
31
  tag: "section",
@@ -40,9 +40,9 @@ const M = w(
40
40
  },
41
41
  children: [
42
42
  /* @__PURE__ */ e(o, { id: "available-schedule-section-title", tag: "h2", variant: "h2B", children: m }),
43
- i.active && /* @__PURE__ */ l(n, { flexDirection: "column", gap: 2, children: [
44
- /* @__PURE__ */ l(
45
- n,
43
+ i.active && /* @__PURE__ */ n(l, { flexDirection: "column", gap: 2, children: [
44
+ /* @__PURE__ */ n(
45
+ l,
46
46
  {
47
47
  flexDirection: "column",
48
48
  inlineCSS: {
@@ -54,7 +54,7 @@ const M = w(
54
54
  overflow: "hidden"
55
55
  },
56
56
  children: [
57
- !s && /* @__PURE__ */ e(n, { pt: 4 }),
57
+ !s && /* @__PURE__ */ e(l, { pt: 4 }),
58
58
  /* @__PURE__ */ e(
59
59
  A,
60
60
  {
@@ -87,10 +87,10 @@ const M = w(
87
87
  ]
88
88
  }
89
89
  ),
90
- d && /* @__PURE__ */ e(n, { id: "available-schedule-section-footer", tag: "footer", pl: 12, pr: 2, children: d })
90
+ d && /* @__PURE__ */ e(l, { id: "available-schedule-section-footer", tag: "footer", pl: 12, pr: 2, children: d })
91
91
  ] }),
92
- typeof i.onChange == "function" && /* @__PURE__ */ l(
93
- n,
92
+ typeof i.onChange == "function" && /* @__PURE__ */ n(
93
+ l,
94
94
  {
95
95
  alignItems: "center",
96
96
  justifyContent: "space-between",
@@ -105,6 +105,8 @@ const M = w(
105
105
  {
106
106
  selected: !!i.active,
107
107
  onChange: y,
108
+ selectedLabel: "활동중",
109
+ unselectedLabel: "쉬는중",
108
110
  inputProps: {
109
111
  id: "available-schedule-section-switch"
110
112
  }
@@ -113,8 +115,8 @@ const M = w(
113
115
  ]
114
116
  }
115
117
  ),
116
- !i.active && /* @__PURE__ */ l(
117
- n,
118
+ !i.active && /* @__PURE__ */ n(
119
+ l,
118
120
  {
119
121
  role: "status",
120
122
  pt: 5,
@@ -170,8 +172,8 @@ const M = w(
170
172
  ]
171
173
  }
172
174
  ),
173
- c && /* @__PURE__ */ e(
174
- n,
175
+ r && /* @__PURE__ */ e(
176
+ l,
175
177
  {
176
178
  mt: 2,
177
179
  alignItems: "center",
@@ -179,7 +181,7 @@ const M = w(
179
181
  inlineCSS: {
180
182
  width: "inherit"
181
183
  },
182
- children: c
184
+ children: r
183
185
  }
184
186
  )
185
187
  ]
@@ -66,8 +66,7 @@ function T({
66
66
  ),
67
67
  /* @__PURE__ */ e(h, { id: `career-item-title-${b}`, tag: "p", variant: "b2M", children: [
68
68
  v,
69
- f === "VERIFIED" && // TODO 아이콘 교체 필요
70
- /* @__PURE__ */ i(
69
+ f === "VERIFIED" && /* @__PURE__ */ i(
71
70
  d,
72
71
  {
73
72
  name: "InfoFill",
@@ -1,49 +1,47 @@
1
- import { jsxs as n, jsx as e, Fragment as w } from "react/jsx-runtime";
2
- import { useState as R, useRef as J, useEffect as B } from "react";
3
- import { Flexbox as t, Typography as o, Icon as p, Label as G, Button as K } from "@dotss/ui";
4
- import O from "@dotss/ui/core/useTheme";
5
- import L from "dayjs";
6
- import W from "../../../../shared/components/Image/Image.mjs";
7
- function Q({
1
+ import { jsxs as n, jsx as e, Fragment as C } from "react/jsx-runtime";
2
+ import { useState as R, useRef as F, useEffect as J } from "react";
3
+ import { Flexbox as r, Typography as t, Icon as d, Label as B, Button as A } from "@dotss/ui";
4
+ import G from "@dotss/ui/core/useTheme";
5
+ import K from "dayjs";
6
+ import O from "../../../../shared/components/Image/Image.mjs";
7
+ import { getLastActiveText as W } from "./ProfileSummary.utils.mjs";
8
+ function Y({
8
9
  avatar: i,
9
- introduction: r,
10
- name: h,
11
- grade: y,
12
- activeHours: b = 0,
13
- rating: f = 0,
14
- reviewCount: g = 0,
15
- adronment: k,
16
- lastActiveAt: E,
17
- action: D
10
+ introduction: l,
11
+ name: u,
12
+ grade: f,
13
+ activeHours: S = 0,
14
+ rating: h = 0,
15
+ reviewCount: p = 0,
16
+ adronment: L,
17
+ lastActiveAt: x,
18
+ action: v
18
19
  }) {
19
20
  const {
20
- palette: { background: C, brand: I, etc: z },
21
+ palette: { background: y, brand: E, etc: k },
21
22
  spacing: a
22
- } = O(), [u, M] = R(!1), [$, j] = R(!1), x = J(null), T = b >= 0 && g > 0, m = E ? L(E) : null, v = (l) => {
23
- const c = L(), s = c.diff(l, "minute"), S = c.diff(l, "hour"), d = c.diff(l, "day");
24
- return s < 1 ? "방금 전 활동" : s < 60 ? `${s}분 전 활동` : S < 24 ? `${S}시간 전 활동` : d < 7 ? `${d}일 전 활동` : d < 14 ? "1주 이내 활동" : d < 21 ? "2주 이내 활동" : d < 28 ? "3주 이내 활동" : d <= 30 ? "한 달 이내 활동" : null;
25
- }, H = (l) => {
26
- var c, s;
27
- switch (l.key) {
23
+ } = G(), [m, D] = R(!1), [z, T] = R(!1), b = F(null), w = S >= 0 && p > 0, c = x ? K(x) : null, I = c ? W(c) : null, j = (o) => {
24
+ var s, g;
25
+ switch (o.key) {
28
26
  case "Enter":
29
- l.preventDefault(), (c = i.onClick) == null || c.call(i, l);
27
+ o.preventDefault(), (s = i.onClick) == null || s.call(i, o);
30
28
  break;
31
29
  case " ":
32
- l.preventDefault(), (s = i.onClick) == null || s.call(i, l);
30
+ o.preventDefault(), (g = i.onClick) == null || g.call(i, o);
33
31
  break;
34
32
  }
35
- }, F = () => M((l) => !l);
36
- return B(() => {
37
- const l = () => {
38
- if (!x.current) return;
39
- const c = x.current, s = parseInt(window.getComputedStyle(c).lineHeight), S = c.scrollHeight, d = Math.ceil(S / s);
40
- j(d > 4);
33
+ }, M = () => D((o) => !o);
34
+ return J(() => {
35
+ const o = () => {
36
+ if (!b.current) return;
37
+ const s = b.current, g = parseInt(window.getComputedStyle(s).lineHeight), $ = s.scrollHeight, H = Math.ceil($ / g);
38
+ T(H > 4);
41
39
  };
42
- return l(), window.addEventListener("resize", l), () => {
43
- window.removeEventListener("resize", l);
40
+ return o(), window.addEventListener("resize", o), () => {
41
+ window.removeEventListener("resize", o);
44
42
  };
45
- }, [r.aboutMe]), /* @__PURE__ */ n(
46
- t,
43
+ }, [l.aboutMe]), /* @__PURE__ */ n(
44
+ r,
47
45
  {
48
46
  tag: "section",
49
47
  flexDirection: "column",
@@ -53,14 +51,14 @@ function Q({
53
51
  width: "100%"
54
52
  },
55
53
  children: [
56
- /* @__PURE__ */ n(t, { alignItems: "flex-start", gap: 4, children: [
57
- /* @__PURE__ */ n(t, { flexDirection: "column", gap: 2, alignItems: "center", justifyContent: "center", children: [
54
+ /* @__PURE__ */ n(r, { alignItems: "center", gap: 4, children: [
55
+ /* @__PURE__ */ n(r, { flexDirection: "column", gap: 2, alignItems: "center", justifyContent: "center", children: [
58
56
  /* @__PURE__ */ n(
59
- t,
57
+ r,
60
58
  {
61
59
  role: typeof i.onClick == "function" ? "button" : void 0,
62
60
  tabIndex: typeof i.onClick == "function" ? 0 : -1,
63
- onKeyDown: H,
61
+ onKeyDown: j,
64
62
  onClick: i.onClick,
65
63
  alignItems: "center",
66
64
  justifyContent: "center",
@@ -73,26 +71,27 @@ function Q({
73
71
  width: 88,
74
72
  height: 88,
75
73
  overflow: "hidden",
76
- backgroundColor: C.primary,
74
+ backgroundColor: y.primary,
77
75
  cursor: typeof i.onClick == "function" ? "pointer" : void 0
78
76
  },
79
77
  children: [
80
78
  i.src && /* @__PURE__ */ e(
81
- W,
79
+ O,
82
80
  {
83
81
  width: 88,
84
82
  height: 88,
85
83
  src: i.src,
86
- alt: `${h} 선생님 프로필 이미지`,
84
+ alt: `${u} 선생님 프로필 이미지`,
87
85
  fit: "cover",
88
86
  borderRadius: 100,
87
+ role: "presentation",
89
88
  style: {
90
89
  objectFit: "cover"
91
90
  }
92
91
  }
93
92
  ),
94
93
  !i.src && !i.placeholder && /* @__PURE__ */ n(
95
- t,
94
+ r,
96
95
  {
97
96
  role: "status",
98
97
  flexDirection: "column",
@@ -100,7 +99,7 @@ function Q({
100
99
  justifyContent: "center",
101
100
  children: [
102
101
  /* @__PURE__ */ e(
103
- o,
102
+ t,
104
103
  {
105
104
  tag: "p",
106
105
  variant: "c3M",
@@ -109,14 +108,14 @@ function Q({
109
108
  children: "프로필 사진"
110
109
  }
111
110
  ),
112
- /* @__PURE__ */ e(o, { tag: "span", variant: "c5R", color: "etc.red", "aria-hidden": !0, children: "(필수)" })
111
+ /* @__PURE__ */ e(t, { tag: "span", variant: "c5R", color: "etc.red", "aria-hidden": !0, children: "(필수)" })
113
112
  ]
114
113
  }
115
114
  ),
116
115
  !i.src && i.placeholder && i.placeholder,
117
- i.status === "REJECTED" && /* @__PURE__ */ n(w, { children: [
116
+ i.status === "REJECTED" && /* @__PURE__ */ n(C, { children: [
118
117
  /* @__PURE__ */ e(
119
- t,
118
+ r,
120
119
  {
121
120
  alignItems: "center",
122
121
  justifyContent: "center",
@@ -127,13 +126,13 @@ function Q({
127
126
  width: "100%",
128
127
  height: "100%",
129
128
  opacity: 0.8,
130
- backgroundColor: C.primary,
129
+ backgroundColor: y.primary,
131
130
  zIndex: 1
132
131
  }
133
132
  }
134
133
  ),
135
134
  /* @__PURE__ */ e(
136
- p,
135
+ d,
137
136
  {
138
137
  name: "AlertFill",
139
138
  size: "xSmall",
@@ -147,177 +146,168 @@ function Q({
147
146
  }
148
147
  }
149
148
  ),
150
- /* @__PURE__ */ e(o, { role: "status", visuallyHidden: !0, children: "프로필 사진이 반려되었어요. 다시 등록해주세요." })
149
+ /* @__PURE__ */ e(t, { role: "status", visuallyHidden: !0, children: "프로필 사진이 반려되었어요. 다시 등록해주세요." })
151
150
  ] })
152
151
  ]
153
152
  }
154
153
  ),
155
- (m == null ? void 0 : m.isValid()) && /* @__PURE__ */ e(o, { tag: "p", variant: "c3M", color: "grey.50", children: v(m) })
154
+ (c == null ? void 0 : c.isValid()) && /* @__PURE__ */ e(
155
+ t,
156
+ {
157
+ tag: "p",
158
+ variant: "c3M",
159
+ color: "grey.50",
160
+ inlineCSS: {
161
+ visibility: I ? void 0 : "hidden"
162
+ },
163
+ children: I || "활동 정보 없음"
164
+ }
165
+ )
156
166
  ] }),
157
- /* @__PURE__ */ n(
158
- t,
159
- {
160
- flexDirection: "column",
161
- justifyContent: "flex-start",
162
- gap: 3,
163
- pt: 0.75,
164
- pb: 0.75,
165
- flexGrow: 1,
166
- children: [
167
- /* @__PURE__ */ n(
168
- t,
169
- {
170
- alignItems: "center",
171
- gap: 2,
172
- flexWrap: "wrap",
173
- inlineCSS: {
174
- maxHeight: 30
175
- },
176
- children: [
177
- y && /* @__PURE__ */ e(
178
- G,
179
- {
180
- variant: "outlined",
181
- size: "small",
182
- color: "blue",
183
- "aria-label": `${h} 선생님의 등급: ${y}`,
184
- children: y
185
- }
186
- ),
187
- /* @__PURE__ */ n(
188
- o,
189
- {
190
- tag: "p",
191
- variant: "h2B",
192
- "aria-label": `${h} 선생님`,
193
- inlineCSS: {
194
- flexGrow: 1,
195
- "& > span": {
196
- marginLeft: a.content(1),
197
- fontWeight: 400
167
+ /* @__PURE__ */ n(r, { flexDirection: "column", justifyContent: "flex-start", gap: 3, flexGrow: 1, children: [
168
+ /* @__PURE__ */ n(r, { alignItems: "center", gap: 2, flexWrap: "wrap", children: [
169
+ f && /* @__PURE__ */ e(B, { variant: "outlined", size: "small", color: "blue", "aria-label": `${f} 등급`, children: f }),
170
+ /* @__PURE__ */ n(
171
+ t,
172
+ {
173
+ tag: "p",
174
+ variant: "h2B",
175
+ "aria-label": `${u} 선생님`,
176
+ inlineCSS: {
177
+ flexGrow: 1,
178
+ "& > span": {
179
+ marginLeft: a.content(1),
180
+ fontWeight: 400
181
+ }
182
+ },
183
+ children: [
184
+ u,
185
+ /* @__PURE__ */ e("span", { "aria-hidden": !0, children: "선생님" })
186
+ ]
187
+ }
188
+ ),
189
+ /* @__PURE__ */ e(
190
+ r,
191
+ {
192
+ alignItems: "center",
193
+ inlineCSS: {
194
+ maxHeight: 30
195
+ },
196
+ children: L
197
+ }
198
+ )
199
+ ] }),
200
+ /* @__PURE__ */ n(
201
+ r,
202
+ {
203
+ pl: 4,
204
+ pr: 4,
205
+ pt: 2,
206
+ pb: 2,
207
+ justifyContent: "space-around",
208
+ alignItems: "center",
209
+ gap: 5,
210
+ "aria-hidden": !w,
211
+ inlineCSS: {
212
+ borderRadius: 8,
213
+ backgroundColor: y.primary,
214
+ visibility: w ? void 0 : "hidden"
215
+ },
216
+ children: [
217
+ /* @__PURE__ */ n(r, { alignItems: "center", role: "group", "aria-label": `누적 수업 ${S}시간`, children: [
218
+ /* @__PURE__ */ e(d, { name: "TimeLine", size: "xSmall", color: "grey.70" }),
219
+ /* @__PURE__ */ e(
220
+ t,
221
+ {
222
+ tag: "p",
223
+ variant: "h4B",
224
+ inlineCSS: {
225
+ marginLeft: a.content(1),
226
+ color: E.primary.text
227
+ },
228
+ children: S.toLocaleString()
229
+ }
230
+ ),
231
+ /* @__PURE__ */ e(
232
+ t,
233
+ {
234
+ tag: "span",
235
+ variant: "b5R",
236
+ color: "grey.70",
237
+ inlineCSS: {
238
+ marginLeft: a.content(0.5)
239
+ },
240
+ children: "시간"
241
+ }
242
+ )
243
+ ] }),
244
+ /* @__PURE__ */ n(
245
+ r,
246
+ {
247
+ alignItems: "center",
248
+ role: "group",
249
+ "aria-label": h > 0 ? `평점 ${h}, 리뷰 ${p}개` : `평점 집계중, 리뷰 ${p}개`,
250
+ children: [
251
+ /* @__PURE__ */ e(d, { name: "ReviewLine", size: "xSmall", color: "grey.70" }),
252
+ h > 0 ? /* @__PURE__ */ n(C, { children: [
253
+ /* @__PURE__ */ e(
254
+ t,
255
+ {
256
+ tag: "p",
257
+ variant: "h4B",
258
+ inlineCSS: {
259
+ marginLeft: a.content(1),
260
+ color: E.primary.text
261
+ },
262
+ children: h.toLocaleString()
198
263
  }
199
- },
200
- children: [
201
- h,
202
- /* @__PURE__ */ e("span", { "aria-hidden": !0, children: "선생님" })
203
- ]
204
- }
205
- ),
206
- k
207
- ]
208
- }
209
- ),
210
- T && /* @__PURE__ */ n(
211
- t,
212
- {
213
- pl: 4,
214
- pr: 4,
215
- pt: 2,
216
- pb: 2,
217
- justifyContent: "space-around",
218
- alignItems: "center",
219
- gap: 5,
220
- inlineCSS: {
221
- borderRadius: 8,
222
- backgroundColor: C.primary
223
- },
224
- children: [
225
- /* @__PURE__ */ n(t, { alignItems: "center", role: "group", "aria-label": `누적 수업 ${b}시간`, children: [
226
- /* @__PURE__ */ e(p, { name: "TimeLine", size: "xSmall", color: "grey.70" }),
227
- /* @__PURE__ */ e(
228
- o,
264
+ ),
265
+ /* @__PURE__ */ n(
266
+ t,
267
+ {
268
+ tag: "span",
269
+ variant: "b5R",
270
+ color: "grey.70",
271
+ inlineCSS: {
272
+ marginLeft: a.content(0.5)
273
+ },
274
+ children: [
275
+ "(",
276
+ p.toLocaleString(),
277
+ ")"
278
+ ]
279
+ }
280
+ )
281
+ ] }) : /* @__PURE__ */ e(
282
+ t,
229
283
  {
230
284
  tag: "p",
231
- variant: "h4B",
232
- inlineCSS: {
233
- marginLeft: a.content(1),
234
- color: I.primary.text
235
- },
236
- children: b.toLocaleString()
237
- }
238
- ),
239
- /* @__PURE__ */ e(
240
- o,
241
- {
242
- tag: "span",
243
- variant: "b5R",
285
+ variant: "h4R",
244
286
  color: "grey.70",
245
287
  inlineCSS: {
246
- marginLeft: a.content(0.5)
288
+ marginLeft: a.content(1)
247
289
  },
248
- children: "시간"
290
+ children: "집계중"
249
291
  }
250
292
  )
251
- ] }),
252
- /* @__PURE__ */ n(
253
- t,
254
- {
255
- alignItems: "center",
256
- role: "group",
257
- "aria-label": f > 0 ? `평점 ${f}, 리뷰 ${g}개` : `평점 집계중, 리뷰 ${g}개`,
258
- children: [
259
- /* @__PURE__ */ e(p, { name: "ReviewFill", size: "xSmall", color: "grey.70" }),
260
- f > 0 ? /* @__PURE__ */ n(w, { children: [
261
- /* @__PURE__ */ e(
262
- o,
263
- {
264
- tag: "p",
265
- variant: "h4B",
266
- inlineCSS: {
267
- marginLeft: a.content(1),
268
- color: I.primary.text
269
- },
270
- children: f.toLocaleString()
271
- }
272
- ),
273
- /* @__PURE__ */ n(
274
- o,
275
- {
276
- tag: "span",
277
- variant: "b5R",
278
- color: "grey.70",
279
- inlineCSS: {
280
- marginLeft: a.content(0.5)
281
- },
282
- children: [
283
- "(",
284
- g.toLocaleString(),
285
- ")"
286
- ]
287
- }
288
- )
289
- ] }) : /* @__PURE__ */ e(
290
- o,
291
- {
292
- tag: "p",
293
- variant: "h4R",
294
- color: "grey.70",
295
- inlineCSS: {
296
- marginLeft: a.content(1)
297
- },
298
- children: "집계중"
299
- }
300
- )
301
- ]
302
- }
303
- )
304
- ]
305
- }
306
- )
307
- ]
308
- }
309
- )
293
+ ]
294
+ }
295
+ )
296
+ ]
297
+ }
298
+ )
299
+ ] })
310
300
  ] }),
311
301
  /* @__PURE__ */ n(
312
- t,
302
+ r,
313
303
  {
314
304
  flexDirection: "column",
315
305
  inlineCSS: {
316
306
  position: "relative"
317
307
  },
318
308
  children: [
319
- (!r.summary || !r.aboutMe) && !r.placeholder && /* @__PURE__ */ n(
320
- o,
309
+ (!l.summary || !l.aboutMe) && !l.placeholder && /* @__PURE__ */ n(
310
+ t,
321
311
  {
322
312
  tag: "p",
323
313
  variant: "b4R",
@@ -325,7 +315,7 @@ function Q({
325
315
  "aria-label": "작성된 프로필 소개가 없어요.",
326
316
  inlineCSS: {
327
317
  "& > span": {
328
- color: z.red
318
+ color: k.red
329
319
  }
330
320
  },
331
321
  children: [
@@ -334,22 +324,22 @@ function Q({
334
324
  ]
335
325
  }
336
326
  ),
337
- (!r.summary || !r.aboutMe) && r.placeholder && r.placeholder,
338
- r.summary && r.aboutMe && /* @__PURE__ */ n(w, { children: [
339
- r.status === "REJECTED" && /* @__PURE__ */ e(o, { role: "status", visuallyHidden: !0, children: "프로필 소개가 반려되었어요. 다시 작성해주세요." }),
327
+ (!l.summary || !l.aboutMe) && l.placeholder && l.placeholder,
328
+ l.summary && l.aboutMe && /* @__PURE__ */ n(C, { children: [
329
+ l.status === "REJECTED" && /* @__PURE__ */ e(t, { role: "status", visuallyHidden: !0, children: "프로필 소개가 반려되었어요. 다시 작성해주세요." }),
340
330
  /* @__PURE__ */ n(
341
- o,
331
+ t,
342
332
  {
343
333
  tag: "dl",
344
334
  variant: "b4M",
345
- color: r.status === "REJECTED" ? "grey.30" : void 0,
335
+ color: l.status === "REJECTED" ? "grey.30" : void 0,
346
336
  inlineCSS: {
347
337
  display: "flex",
348
338
  alignItems: "center"
349
339
  },
350
340
  children: [
351
- r.status === "REJECTED" && /* @__PURE__ */ e(
352
- p,
341
+ l.status === "REJECTED" && /* @__PURE__ */ e(
342
+ d,
353
343
  {
354
344
  name: "AlertFill",
355
345
  size: "xSmall",
@@ -359,55 +349,55 @@ function Q({
359
349
  }
360
350
  }
361
351
  ),
362
- /* @__PURE__ */ e(t, { tag: "dt", visuallyHidden: !0, children: "한 줄 소개" }),
363
- /* @__PURE__ */ e("dd", { children: r.summary })
352
+ /* @__PURE__ */ e(r, { tag: "dt", visuallyHidden: !0, children: "한 줄 소개" }),
353
+ /* @__PURE__ */ e("dd", { children: l.summary })
364
354
  ]
365
355
  }
366
356
  ),
367
357
  /* @__PURE__ */ n(
368
- o,
358
+ t,
369
359
  {
370
- ref: x,
360
+ ref: b,
371
361
  id: "about-me",
372
362
  tag: "dl",
373
363
  variant: "b4R",
374
- color: r.status === "REJECTED" ? "grey.30" : "grey.70",
375
- lineClamp: u ? void 0 : 4,
364
+ color: l.status === "REJECTED" ? "grey.30" : "grey.70",
365
+ lineClamp: m ? void 0 : 4,
376
366
  inlineCSS: {
377
367
  marginTop: a.content(2),
378
368
  whiteSpace: "pre-wrap"
379
369
  },
380
370
  children: [
381
- /* @__PURE__ */ e(t, { tag: "dt", visuallyHidden: !0, children: "자기소개" }),
382
- /* @__PURE__ */ e("dd", { children: r.aboutMe })
371
+ /* @__PURE__ */ e(r, { tag: "dt", visuallyHidden: !0, children: "자기소개" }),
372
+ /* @__PURE__ */ e("dd", { children: l.aboutMe })
383
373
  ]
384
374
  }
385
375
  )
386
376
  ] }),
387
- $ && /* @__PURE__ */ e(
388
- K,
377
+ z && /* @__PURE__ */ e(
378
+ A,
389
379
  {
390
380
  variant: "text",
391
381
  size: "xSmall",
392
382
  color: "secondary",
393
- endAdornment: /* @__PURE__ */ e(p, { name: u ? "ChevronUpLine" : "ChevronDownLine" }),
394
- onClick: F,
395
- "aria-expanded": u,
383
+ endAdornment: /* @__PURE__ */ e(d, { name: m ? "ChevronUpLine" : "ChevronDownLine" }),
384
+ onClick: M,
385
+ "aria-expanded": m,
396
386
  "aria-controls": "about-me",
397
387
  inlineCSS: {
398
388
  marginLeft: "auto"
399
389
  },
400
- children: u ? "접기" : "더보기"
390
+ children: m ? "접기" : "더 보기"
401
391
  }
402
392
  )
403
393
  ]
404
394
  }
405
395
  ),
406
- D
396
+ v
407
397
  ]
408
398
  }
409
399
  );
410
400
  }
411
401
  export {
412
- Q as default
402
+ Y as default
413
403
  };
@@ -0,0 +1,2 @@
1
+ import { Dayjs } from 'dayjs';
2
+ export declare function getLastActiveText(lastActiveDate: Dayjs): string | null;
@@ -0,0 +1,8 @@
1
+ import u from "dayjs";
2
+ function o(f) {
3
+ const n = u(), i = n.diff(f, "minute"), t = n.diff(f, "hour"), r = n.diff(f, "day");
4
+ return i < 1 ? "방금 전 활동" : i < 60 ? `${i}분 전 활동` : t < 24 ? `${t}시간 전 활동` : r < 7 ? `${r}일 전 활동` : r < 14 ? "1주 이내 활동" : r < 21 ? "2주 이내 활동" : r < 28 ? "3주 이내 활동" : r <= 30 ? "한 달 이내 활동" : null;
5
+ }
6
+ export {
7
+ o as getLastActiveText
8
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dotss/tictoccroc",
3
3
  "type": "module",
4
- "version": "0.0.9",
4
+ "version": "0.0.11",
5
5
  "description": "Tictoccroc shared components, hooks, utils, and APIs for Dotss",
6
6
  "main": "./dist/index.mjs",
7
7
  "module": "./dist/index.mjs",
@@ -66,6 +66,14 @@
66
66
  "./shared/utils/*": {
67
67
  "import": "./dist/shared/utils/*/index.mjs",
68
68
  "types": "./dist/shared/utils/*/index.d.ts"
69
+ },
70
+ "./shared/typings": {
71
+ "import": "./dist/shared/typings/index.mjs",
72
+ "types": "./dist/shared/typings/index.d.ts"
73
+ },
74
+ "./shared/typings/*": {
75
+ "import": "./dist/shared/typings/*/index.mjs",
76
+ "types": "./dist/shared/typings/*/index.d.ts"
69
77
  }
70
78
  },
71
79
  "devDependencies": {