ywana-core8 0.0.910 → 0.0.911

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.cjs CHANGED
@@ -3215,14 +3215,70 @@ var WaitScreen = function WaitScreen() {
3215
3215
 
3216
3216
  moment__default["default"].locale('es');
3217
3217
  var moment = momentRange.extendMoment(moment__default["default"]);
3218
+
3219
+ /**
3220
+ * Calendar
3221
+ */
3218
3222
  var Calendar = function Calendar(props) {
3219
3223
  var _props$events = props.events,
3220
3224
  events = _props$events === void 0 ? [] : _props$events,
3221
3225
  children = props.children,
3222
3226
  onChange = props.onChange;
3223
- var _useState = React.useState(),
3224
- position = _useState[0],
3225
- setPosition = _useState[1];
3227
+ var _useState = React.useState(props.range || "year"),
3228
+ range = _useState[0],
3229
+ setRange = _useState[1];
3230
+ function onChangeRange(range) {
3231
+ setRange(range);
3232
+ }
3233
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3234
+ className: "calendar"
3235
+ }, /*#__PURE__*/React__default["default"].createElement(CalendarRangeControl, {
3236
+ range: range,
3237
+ onChange: onChangeRange
3238
+ }), range === "year" && /*#__PURE__*/React__default["default"].createElement(YearCalendar, {
3239
+ events: events,
3240
+ onChange: onChange
3241
+ }, children), range === "month" && /*#__PURE__*/React__default["default"].createElement(MonthCalendar, {
3242
+ events: events,
3243
+ onChange: onChange,
3244
+ onRange: onChangeRange
3245
+ }, children));
3246
+ };
3247
+
3248
+ /**
3249
+ * CalendarRangeControl
3250
+ */
3251
+ var CalendarRangeControl = function CalendarRangeControl(props) {
3252
+ var range = props.range,
3253
+ onChange = props.onChange;
3254
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3255
+ className: "calendar-range-control"
3256
+ }, /*#__PURE__*/React__default["default"].createElement(Button, {
3257
+ label: "Year",
3258
+ outlined: range == "year",
3259
+ action: function action() {
3260
+ return onChange("year");
3261
+ }
3262
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3263
+ label: "Month",
3264
+ outlined: range == "month",
3265
+ action: function action() {
3266
+ return onChange("month");
3267
+ }
3268
+ }));
3269
+ };
3270
+
3271
+ /**
3272
+ * MonthCalendar
3273
+ */
3274
+ var MonthCalendar = function MonthCalendar(props) {
3275
+ var _props$events2 = props.events,
3276
+ events = _props$events2 === void 0 ? [] : _props$events2,
3277
+ children = props.children,
3278
+ onChange = props.onChange;
3279
+ var _useState2 = React.useState(),
3280
+ position = _useState2[0],
3281
+ setPosition = _useState2[1];
3226
3282
  React.useEffect(function () {
3227
3283
  var today = moment();
3228
3284
  setPosition(today);
@@ -3260,17 +3316,18 @@ var Calendar = function Calendar(props) {
3260
3316
  var days = Array.from(range.by('days'));
3261
3317
  var cells = days.map(function (day) {
3262
3318
  var eventsOfDay = events.filter(function (event) {
3263
- console.log(event.date, day.format("YYYY-MM-DD"));
3264
3319
  var eventDay = moment(event.date);
3265
3320
  return eventDay.isSame(day, 'day');
3266
3321
  });
3322
+ var sameMonthStyle = day.isSame(moment(position), 'month') ? '' : 'other-month';
3267
3323
  return {
3268
3324
  day: day,
3269
- events: eventsOfDay
3325
+ events: eventsOfDay,
3326
+ sameMonthStyle: sameMonthStyle
3270
3327
  };
3271
3328
  });
3272
3329
  return /*#__PURE__*/React__default["default"].createElement("div", {
3273
- className: "calendar"
3330
+ className: "month-calendar"
3274
3331
  }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("label", null, " ", /*#__PURE__*/React__default["default"].createElement(Text, null, monthName), " ", year), /*#__PURE__*/React__default["default"].createElement(Button, {
3275
3332
  icon: "chevron_left",
3276
3333
  action: prev
@@ -3307,9 +3364,9 @@ var DayCell = function DayCell(props) {
3307
3364
  cell = _props$cell === void 0 ? [] : _props$cell,
3308
3365
  children = props.children;
3309
3366
  var day = cell.day,
3310
- events = cell.events;
3367
+ events = cell.events,
3368
+ sameMonthStyle = cell.sameMonthStyle;
3311
3369
  var todayStyle = day.isSame(moment(), 'day') ? 'today' : '';
3312
- var sameMonthStyle = day.isSame(moment(), 'month') ? '' : 'other-month';
3313
3370
  return /*#__PURE__*/React__default["default"].createElement("div", {
3314
3371
  className: "day-cell " + todayStyle + " " + sameMonthStyle
3315
3372
  }, /*#__PURE__*/React__default["default"].createElement("header", null, day.format("DD")), /*#__PURE__*/React__default["default"].createElement("main", null, events.map(function (event) {
@@ -3319,6 +3376,10 @@ var DayCell = function DayCell(props) {
3319
3376
  }, children);
3320
3377
  })));
3321
3378
  };
3379
+
3380
+ /**
3381
+ * Event
3382
+ */
3322
3383
  var Event = function Event(props) {
3323
3384
  var event = props.event,
3324
3385
  children = props.children;
@@ -3336,6 +3397,129 @@ var Event = function Event(props) {
3336
3397
  }
3337
3398
  };
3338
3399
 
3400
+ /**
3401
+ * YearCalendar
3402
+ */
3403
+ var YearCalendar = function YearCalendar(props) {
3404
+ var _props$events3 = props.events,
3405
+ events = _props$events3 === void 0 ? [] : _props$events3,
3406
+ children = props.children,
3407
+ onChange = props.onChange;
3408
+ var _useState3 = React.useState(),
3409
+ position = _useState3[0],
3410
+ setPosition = _useState3[1];
3411
+ React.useEffect(function () {
3412
+ var today = moment();
3413
+ setPosition(today);
3414
+ }, []);
3415
+ React.useEffect(function () {
3416
+ if (position && onChange) {
3417
+ var _firstDayOfYear = position.clone().startOf('year');
3418
+ var firstDayOfRange = _firstDayOfYear.clone().startOf('isoweek');
3419
+ var _lastDayOfYear = position.clone().endOf('year');
3420
+ var lastDayOfRange = _lastDayOfYear.clone().endOf('isoweek');
3421
+ var range = moment.range(firstDayOfRange, lastDayOfRange);
3422
+ onChange(position, range);
3423
+ }
3424
+ }, [position]);
3425
+ function next() {
3426
+ var next = position.clone().add(1, 'year');
3427
+ setPosition(next);
3428
+ }
3429
+ function prev() {
3430
+ var prev = position.clone().subtract(1, 'year');
3431
+ setPosition(prev);
3432
+ }
3433
+ function today() {
3434
+ var today = moment();
3435
+ setPosition(today);
3436
+ }
3437
+ if (!position) return "...";
3438
+ var year = position.format("YYYY");
3439
+ var firstDayOfYear = moment(position).startOf('year');
3440
+ var lastDayOfYear = moment(position).endOf('year');
3441
+ var months = [];
3442
+ for (var currentMonth = moment(firstDayOfYear); currentMonth.isBefore(lastDayOfYear); currentMonth.add(1, 'month')) {
3443
+ months.push(moment(currentMonth));
3444
+ }
3445
+ var cells = months.map(function (month) {
3446
+ var firstDayOfMonth = month.clone().startOf('month');
3447
+ var firstDayOfRange = firstDayOfMonth.clone().startOf('isoweek');
3448
+ var lastDayOfMonth = month.clone().endOf('month');
3449
+ var lastDayOfRange = lastDayOfMonth.clone().endOf('isoweek');
3450
+ var range = moment.range(firstDayOfRange, lastDayOfRange);
3451
+ var days = Array.from(range.by('days'));
3452
+ var cells = days.map(function (day) {
3453
+ var eventsOfDay = events.filter(function (event) {
3454
+ var eventDay = moment(event.date);
3455
+ return eventDay.isSame(day, 'day');
3456
+ });
3457
+ var sameMonthStyle = day.isSame(moment(month), 'month') ? '' : 'other-month';
3458
+ return {
3459
+ day: day,
3460
+ events: eventsOfDay,
3461
+ sameMonthStyle: sameMonthStyle
3462
+ };
3463
+ });
3464
+ return {
3465
+ month: month,
3466
+ cells: cells
3467
+ };
3468
+ });
3469
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3470
+ className: "year-calendar"
3471
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("label", null, " ", /*#__PURE__*/React__default["default"].createElement(Text, null, year)), /*#__PURE__*/React__default["default"].createElement(Button, {
3472
+ icon: "chevron_left",
3473
+ action: prev
3474
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3475
+ label: "Today",
3476
+ outlined: true,
3477
+ action: today
3478
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3479
+ icon: "chevron_right",
3480
+ action: next
3481
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
3482
+ return /*#__PURE__*/React__default["default"].createElement(MonthCell, {
3483
+ key: cell.month,
3484
+ cell: cell
3485
+ }, children);
3486
+ })));
3487
+ };
3488
+
3489
+ /**
3490
+ * MonthCell
3491
+ */
3492
+ var MonthCell = function MonthCell(props) {
3493
+ var _props$cell2 = props.cell,
3494
+ cell = _props$cell2 === void 0 ? [] : _props$cell2,
3495
+ children = props.children;
3496
+ var month = cell.month,
3497
+ cells = cell.cells;
3498
+ var monthName = month.format("MMMM");
3499
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3500
+ className: "month-cell"
3501
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, monthName), /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("div", {
3502
+ className: "week-day-cell"
3503
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Mon")), /*#__PURE__*/React__default["default"].createElement("div", {
3504
+ className: "week-day-cell"
3505
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Tue")), /*#__PURE__*/React__default["default"].createElement("div", {
3506
+ className: "week-day-cell"
3507
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Wed")), /*#__PURE__*/React__default["default"].createElement("div", {
3508
+ className: "week-day-cell"
3509
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Thu")), /*#__PURE__*/React__default["default"].createElement("div", {
3510
+ className: "week-day-cell"
3511
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Fri")), /*#__PURE__*/React__default["default"].createElement("div", {
3512
+ className: "week-day-cell"
3513
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Sat")), /*#__PURE__*/React__default["default"].createElement("div", {
3514
+ className: "week-day-cell"
3515
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Sun"))), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
3516
+ return /*#__PURE__*/React__default["default"].createElement(DayCell, {
3517
+ key: cell.day,
3518
+ cell: cell
3519
+ }, children);
3520
+ })));
3521
+ };
3522
+
3339
3523
  var ranges = momentRange.extendMoment(moment__default["default"]);
3340
3524
  var DATE_RANGE = [{
3341
3525
  label: "Week",
@@ -11373,6 +11557,7 @@ exports.Menu = Menu;
11373
11557
  exports.MenuIcon = MenuIcon;
11374
11558
  exports.MenuItem = MenuItem;
11375
11559
  exports.MenuSeparator = MenuSeparator;
11560
+ exports.MonthCalendar = MonthCalendar;
11376
11561
  exports.MultiSelector = MultiSelector;
11377
11562
  exports.Page = Page;
11378
11563
  exports.PageContext = PageContext;