ywana-core8 0.0.241 → 0.0.242

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
@@ -1,6 +1,8 @@
1
1
  require('material-design-icons-iconfont/dist/material-design-icons.css');
2
2
  var React = require('react');
3
3
  var RSwitch = require('react-switch');
4
+ var moment = require('moment');
5
+ var momentRange = require('moment-range');
4
6
  var reactNotifications = require('react-notifications');
5
7
  require('react-notifications/lib/notifications.css');
6
8
  var equal = require('deep-equal');
@@ -10,6 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
12
 
11
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
14
  var RSwitch__default = /*#__PURE__*/_interopDefaultLegacy(RSwitch);
15
+ var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
13
16
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
14
17
  var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
15
18
 
@@ -2328,6 +2331,242 @@ var WaitScreen = function WaitScreen() {
2328
2331
  }));
2329
2332
  };
2330
2333
 
2334
+ var ranges = momentRange.extendMoment(moment__default["default"]);
2335
+ var DATE_RANGE = [{
2336
+ label: "Week",
2337
+ value: "week"
2338
+ }, {
2339
+ label: "Month",
2340
+ value: "month"
2341
+ }];
2342
+ /**
2343
+ * Planner
2344
+ */
2345
+
2346
+ var Planner = function Planner(_ref) {
2347
+ var title = _ref.title,
2348
+ _ref$events = _ref.events,
2349
+ events = _ref$events === void 0 ? [] : _ref$events,
2350
+ _ref$lanes = _ref.lanes,
2351
+ lanes = _ref$lanes === void 0 ? [] : _ref$lanes,
2352
+ _ref$navigation = _ref.navigation,
2353
+ navigation = _ref$navigation === void 0 ? true : _ref$navigation;
2354
+
2355
+ var _useState = React.useState("month"),
2356
+ dateRange = _useState[0],
2357
+ setDateRange = _useState[1];
2358
+
2359
+ var _useState2 = React.useState("2021-02-26"),
2360
+ from = _useState2[0],
2361
+ setFrom = _useState2[1];
2362
+
2363
+ var _useState3 = React.useState("2021-04-01"),
2364
+ to = _useState3[0],
2365
+ setTo = _useState3[1];
2366
+
2367
+ React.useEffect(function () {
2368
+ var today = moment__default["default"]();
2369
+ var from_date = today.startOf(dateRange).format("YYYY-MM-DD");
2370
+ var to_date = today.endOf(dateRange).format("YYYY-MM-DD");
2371
+ setFrom(from_date);
2372
+ setTo(to_date);
2373
+ }, [dateRange]);
2374
+
2375
+ function next() {
2376
+ var actual = moment__default["default"](from);
2377
+ var next = actual.add(1, dateRange);
2378
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2379
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2380
+ setFrom(from_date);
2381
+ setTo(to_date);
2382
+ }
2383
+
2384
+ function prev() {
2385
+ var actual = moment__default["default"](from);
2386
+ var next = actual.subtract(1, dateRange);
2387
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2388
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2389
+ setFrom(from_date);
2390
+ setTo(to_date);
2391
+ }
2392
+
2393
+ var period = React.useMemo(function () {
2394
+ var start = ranges(from, "YYYY-MM-DD");
2395
+ var end = ranges(to, "YYYY-MM-DD");
2396
+ var range = ranges.range(start, end);
2397
+ var period = Array.from(range.by("day")).map(function (m) {
2398
+ return {
2399
+ year: m.year(),
2400
+ month: m.month(),
2401
+ day: m.date(),
2402
+ moment: m
2403
+ };
2404
+ });
2405
+ return period;
2406
+ }, [from, to]);
2407
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, {
2408
+ use: "headline6"
2409
+ }, title);
2410
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2411
+ className: "planner-box"
2412
+ }, navigation ? /*#__PURE__*/React__default["default"].createElement(Header, {
2413
+ title: label
2414
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2415
+ icon: "chevron_right",
2416
+ clickable: true,
2417
+ action: next
2418
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2419
+ id: "to",
2420
+ type: "date",
2421
+ label: "To",
2422
+ value: to,
2423
+ onChange: function onChange(id, value) {
2424
+ return setTo(value);
2425
+ }
2426
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2427
+ className: "expand"
2428
+ }), /*#__PURE__*/React__default["default"].createElement(DropDown, {
2429
+ id: "ranges",
2430
+ label: "Date Range",
2431
+ options: DATE_RANGE,
2432
+ value: dateRange,
2433
+ onChange: function onChange(id, value) {
2434
+ return setDateRange(value);
2435
+ }
2436
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2437
+ className: "expand"
2438
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2439
+ id: "from",
2440
+ type: "date",
2441
+ label: "From",
2442
+ value: from,
2443
+ onChange: function onChange(id, value) {
2444
+ return setFrom(value);
2445
+ }
2446
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2447
+ icon: "chevron_left",
2448
+ clickable: true,
2449
+ action: prev
2450
+ })) : null, /*#__PURE__*/React__default["default"].createElement("main", {
2451
+ className: "planner"
2452
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2453
+ className: "column0"
2454
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2455
+ className: "column-header"
2456
+ }), lanes.map(function (lane) {
2457
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2458
+ className: "row-header"
2459
+ }, lane.label);
2460
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2461
+ className: "rows"
2462
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2463
+ className: "row row0"
2464
+ }, period.map(function (date, index) {
2465
+ var first = index === 0 || date.day === 1 ? "first" : "";
2466
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2467
+ className: "column-header"
2468
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2469
+ className: "month-header " + first
2470
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2471
+ use: "overline"
2472
+ }, date.moment.format("MMM"))));
2473
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2474
+ className: "row row1"
2475
+ }, period.map(function (date) {
2476
+ var isWekend = [0, 6].includes(date.moment.day());
2477
+ var weekend = isWekend ? "weekend" : "";
2478
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2479
+ className: "column-header"
2480
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2481
+ className: "date-header " + weekend
2482
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2483
+ use: "headline6"
2484
+ }, date.moment.format("DD")), "\xA0", /*#__PURE__*/React__default["default"].createElement(Text$1, {
2485
+ use: "caption"
2486
+ }, date.moment.format("ddd"))));
2487
+ })), lanes.map(function (lane) {
2488
+ return /*#__PURE__*/React__default["default"].createElement(PlannerRow, {
2489
+ lane: lane,
2490
+ events: events,
2491
+ period: period
2492
+ });
2493
+ }))));
2494
+ };
2495
+ /**
2496
+ * Planner Row
2497
+ */
2498
+
2499
+ var PlannerRow = function PlannerRow(props) {
2500
+ var lane = props.lane,
2501
+ _props$events = props.events,
2502
+ events = _props$events === void 0 ? [] : _props$events,
2503
+ period = props.period;
2504
+ var rowEvents = events.filter(function (event) {
2505
+ return event.lane === lane.id;
2506
+ });
2507
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2508
+ className: "row"
2509
+ }, period.map(function (date) {
2510
+ var slotDate = new Date(date.year, date.month, date.day);
2511
+ slotDate.setHours(0, 0, 0);
2512
+ var cellEvents = rowEvents.filter(function (event) {
2513
+ var eventDate = new Date(event.date);
2514
+ eventDate.setHours(0, 0, 0);
2515
+ return eventDate.getTime() === slotDate.getTime();
2516
+ });
2517
+ return /*#__PURE__*/React__default["default"].createElement(PlannerCell, {
2518
+ date: date,
2519
+ events: cellEvents
2520
+ });
2521
+ }));
2522
+ };
2523
+ /**
2524
+ * Planner Cell
2525
+ */
2526
+
2527
+
2528
+ var PlannerCell = function PlannerCell(_ref3) {
2529
+ var lane = _ref3.lane,
2530
+ date = _ref3.date,
2531
+ onDrop = _ref3.onDrop;
2532
+
2533
+ var _useState4 = React.useState(false),
2534
+ dragOver = _useState4[0],
2535
+ setDragOver = _useState4[1];
2536
+
2537
+ function onDragOver(event) {
2538
+ if (!dragOver) setDragOver(true);
2539
+ event.stopPropagation();
2540
+ event.preventDefault();
2541
+ }
2542
+
2543
+ function onDragLeave(event) {
2544
+ setDragOver(false);
2545
+ event.stopPropagation();
2546
+ event.preventDefault();
2547
+ }
2548
+
2549
+ function drop(event) {
2550
+ event.stopPropagation();
2551
+ event.preventDefault();
2552
+ var id = event.dataTransfer.getData("text");
2553
+ if (onDrop) onDrop({
2554
+ id: id,
2555
+ lane: lane.id,
2556
+ date: date.moment.format("YYYY-MM-DD")
2557
+ });
2558
+ }
2559
+
2560
+ var isWekend = [0, 6].includes(date.moment.day());
2561
+ var weekend = isWekend ? "weekend" : "";
2562
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2563
+ className: "cell " + weekend,
2564
+ onDragOver: onDragOver,
2565
+ onDragLeave: onDragLeave,
2566
+ onDrop: drop
2567
+ }, "c");
2568
+ };
2569
+
2331
2570
  /**
2332
2571
  * Page Context
2333
2572
  */
@@ -5545,6 +5784,7 @@ exports.MenuSeparator = MenuSeparator;
5545
5784
  exports.Page = Page;
5546
5785
  exports.PageContext = PageContext;
5547
5786
  exports.PageProvider = PageProvider;
5787
+ exports.Planner = Planner;
5548
5788
  exports.Property = Property;
5549
5789
  exports.RadioButton = RadioButton;
5550
5790
  exports.ResetPasswordBox = ResetPasswordBox;