ywana-core8 0.0.240 → 0.0.244

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
 
@@ -704,16 +707,45 @@ var LinearProgress = function LinearProgress(props) {
704
707
  */
705
708
 
706
709
  var Property = function Property(props) {
707
- var label = props.label,
710
+ var id = props.id,
711
+ className = props.className,
712
+ label = props.label,
708
713
  name = props.name,
709
- value = props.value;
714
+ initial = props.initial,
715
+ value = props.value,
716
+ _props$editable = props.editable,
717
+ editable = _props$editable === void 0 ? false : _props$editable,
718
+ onChange = props.onChange;
719
+
720
+ function change(event) {
721
+ if (onChange) {
722
+ var _value = event.target.value;
723
+ onChange(id, _value);
724
+ }
725
+ }
726
+
727
+ function clear() {
728
+ if (onChange) onChange(id, "");
729
+ }
730
+
710
731
  return /*#__PURE__*/React__default["default"].createElement("div", {
711
- className: "property"
732
+ className: "property property-" + id + " " + className
712
733
  }, /*#__PURE__*/React__default["default"].createElement("div", {
713
734
  className: "property-name"
714
- }, name || label), /*#__PURE__*/React__default["default"].createElement("div", {
735
+ }, name || label), initial ? /*#__PURE__*/React__default["default"].createElement("div", {
736
+ className: "property-value"
737
+ }, initial) : null, /*#__PURE__*/React__default["default"].createElement("div", {
715
738
  className: "property-value"
716
- }, value));
739
+ }, editable ? /*#__PURE__*/React__default["default"].createElement("input", {
740
+ type: "text",
741
+ value: value,
742
+ onChange: change
743
+ }) : value, editable && value.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Icon, {
744
+ icon: "close",
745
+ size: "small",
746
+ clickable: true,
747
+ action: clear
748
+ }) : null));
717
749
  };
718
750
 
719
751
  /**
@@ -885,7 +917,7 @@ var TextField = function TextField(props) {
885
917
  }
886
918
 
887
919
  function focus() {
888
- if (site) {
920
+ if (site && site.changeFocus) {
889
921
  site.changeFocus({
890
922
  lose: function lose() {// DO NOTHING
891
923
  }
@@ -955,11 +987,12 @@ var TextArea = function TextArea(props) {
955
987
  event.stopPropagation();
956
988
  event.preventDefault();
957
989
  var value = event.target.value;
990
+ console.log(value);
958
991
  if (onChange) onChange(id, value);
959
992
  }
960
993
 
961
994
  function focus() {
962
- if (site) {
995
+ if (site && site.changeFocus) {
963
996
  site.changeFocus({
964
997
  lose: function lose() {// DO NOTHING
965
998
  }
@@ -2327,6 +2360,242 @@ var WaitScreen = function WaitScreen() {
2327
2360
  }));
2328
2361
  };
2329
2362
 
2363
+ var ranges = momentRange.extendMoment(moment__default["default"]);
2364
+ var DATE_RANGE = [{
2365
+ label: "Week",
2366
+ value: "week"
2367
+ }, {
2368
+ label: "Month",
2369
+ value: "month"
2370
+ }];
2371
+ /**
2372
+ * Planner
2373
+ */
2374
+
2375
+ var Planner = function Planner(_ref) {
2376
+ var title = _ref.title,
2377
+ _ref$events = _ref.events,
2378
+ events = _ref$events === void 0 ? [] : _ref$events,
2379
+ _ref$lanes = _ref.lanes,
2380
+ lanes = _ref$lanes === void 0 ? [] : _ref$lanes,
2381
+ _ref$navigation = _ref.navigation,
2382
+ navigation = _ref$navigation === void 0 ? true : _ref$navigation;
2383
+
2384
+ var _useState = React.useState("month"),
2385
+ dateRange = _useState[0],
2386
+ setDateRange = _useState[1];
2387
+
2388
+ var _useState2 = React.useState("2021-02-26"),
2389
+ from = _useState2[0],
2390
+ setFrom = _useState2[1];
2391
+
2392
+ var _useState3 = React.useState("2021-04-01"),
2393
+ to = _useState3[0],
2394
+ setTo = _useState3[1];
2395
+
2396
+ React.useEffect(function () {
2397
+ var today = moment__default["default"]();
2398
+ var from_date = today.startOf(dateRange).format("YYYY-MM-DD");
2399
+ var to_date = today.endOf(dateRange).format("YYYY-MM-DD");
2400
+ setFrom(from_date);
2401
+ setTo(to_date);
2402
+ }, [dateRange]);
2403
+
2404
+ function next() {
2405
+ var actual = moment__default["default"](from);
2406
+ var next = actual.add(1, dateRange);
2407
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2408
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2409
+ setFrom(from_date);
2410
+ setTo(to_date);
2411
+ }
2412
+
2413
+ function prev() {
2414
+ var actual = moment__default["default"](from);
2415
+ var next = actual.subtract(1, dateRange);
2416
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2417
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2418
+ setFrom(from_date);
2419
+ setTo(to_date);
2420
+ }
2421
+
2422
+ var period = React.useMemo(function () {
2423
+ var start = ranges(from, "YYYY-MM-DD");
2424
+ var end = ranges(to, "YYYY-MM-DD");
2425
+ var range = ranges.range(start, end);
2426
+ var period = Array.from(range.by("day")).map(function (m) {
2427
+ return {
2428
+ year: m.year(),
2429
+ month: m.month(),
2430
+ day: m.date(),
2431
+ moment: m
2432
+ };
2433
+ });
2434
+ return period;
2435
+ }, [from, to]);
2436
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, {
2437
+ use: "headline6"
2438
+ }, title);
2439
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2440
+ className: "planner-box"
2441
+ }, navigation ? /*#__PURE__*/React__default["default"].createElement(Header, {
2442
+ title: label
2443
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2444
+ icon: "chevron_right",
2445
+ clickable: true,
2446
+ action: next
2447
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2448
+ id: "to",
2449
+ type: "date",
2450
+ label: "To",
2451
+ value: to,
2452
+ onChange: function onChange(id, value) {
2453
+ return setTo(value);
2454
+ }
2455
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2456
+ className: "expand"
2457
+ }), /*#__PURE__*/React__default["default"].createElement(DropDown, {
2458
+ id: "ranges",
2459
+ label: "Date Range",
2460
+ options: DATE_RANGE,
2461
+ value: dateRange,
2462
+ onChange: function onChange(id, value) {
2463
+ return setDateRange(value);
2464
+ }
2465
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2466
+ className: "expand"
2467
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2468
+ id: "from",
2469
+ type: "date",
2470
+ label: "From",
2471
+ value: from,
2472
+ onChange: function onChange(id, value) {
2473
+ return setFrom(value);
2474
+ }
2475
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2476
+ icon: "chevron_left",
2477
+ clickable: true,
2478
+ action: prev
2479
+ })) : null, /*#__PURE__*/React__default["default"].createElement("main", {
2480
+ className: "planner"
2481
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2482
+ className: "column0"
2483
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2484
+ className: "column-header"
2485
+ }), lanes.map(function (lane) {
2486
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2487
+ className: "row-header"
2488
+ }, lane.label);
2489
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2490
+ className: "rows"
2491
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2492
+ className: "row row0"
2493
+ }, period.map(function (date, index) {
2494
+ var first = index === 0 || date.day === 1 ? "first" : "";
2495
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2496
+ className: "column-header"
2497
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2498
+ className: "month-header " + first
2499
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2500
+ use: "overline"
2501
+ }, date.moment.format("MMM"))));
2502
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2503
+ className: "row row1"
2504
+ }, period.map(function (date) {
2505
+ var isWekend = [0, 6].includes(date.moment.day());
2506
+ var weekend = isWekend ? "weekend" : "";
2507
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2508
+ className: "column-header"
2509
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2510
+ className: "date-header " + weekend
2511
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2512
+ use: "headline6"
2513
+ }, date.moment.format("DD")), "\xA0", /*#__PURE__*/React__default["default"].createElement(Text$1, {
2514
+ use: "caption"
2515
+ }, date.moment.format("ddd"))));
2516
+ })), lanes.map(function (lane) {
2517
+ return /*#__PURE__*/React__default["default"].createElement(PlannerRow, {
2518
+ lane: lane,
2519
+ events: events,
2520
+ period: period
2521
+ });
2522
+ }))));
2523
+ };
2524
+ /**
2525
+ * Planner Row
2526
+ */
2527
+
2528
+ var PlannerRow = function PlannerRow(props) {
2529
+ var lane = props.lane,
2530
+ _props$events = props.events,
2531
+ events = _props$events === void 0 ? [] : _props$events,
2532
+ period = props.period;
2533
+ var rowEvents = events.filter(function (event) {
2534
+ return event.lane === lane.id;
2535
+ });
2536
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2537
+ className: "row"
2538
+ }, period.map(function (date) {
2539
+ var slotDate = new Date(date.year, date.month, date.day);
2540
+ slotDate.setHours(0, 0, 0);
2541
+ var cellEvents = rowEvents.filter(function (event) {
2542
+ var eventDate = new Date(event.date);
2543
+ eventDate.setHours(0, 0, 0);
2544
+ return eventDate.getTime() === slotDate.getTime();
2545
+ });
2546
+ return /*#__PURE__*/React__default["default"].createElement(PlannerCell, {
2547
+ date: date,
2548
+ events: cellEvents
2549
+ });
2550
+ }));
2551
+ };
2552
+ /**
2553
+ * Planner Cell
2554
+ */
2555
+
2556
+
2557
+ var PlannerCell = function PlannerCell(_ref3) {
2558
+ var lane = _ref3.lane,
2559
+ date = _ref3.date,
2560
+ onDrop = _ref3.onDrop;
2561
+
2562
+ var _useState4 = React.useState(false),
2563
+ dragOver = _useState4[0],
2564
+ setDragOver = _useState4[1];
2565
+
2566
+ function onDragOver(event) {
2567
+ if (!dragOver) setDragOver(true);
2568
+ event.stopPropagation();
2569
+ event.preventDefault();
2570
+ }
2571
+
2572
+ function onDragLeave(event) {
2573
+ setDragOver(false);
2574
+ event.stopPropagation();
2575
+ event.preventDefault();
2576
+ }
2577
+
2578
+ function drop(event) {
2579
+ event.stopPropagation();
2580
+ event.preventDefault();
2581
+ var id = event.dataTransfer.getData("text");
2582
+ if (onDrop) onDrop({
2583
+ id: id,
2584
+ lane: lane.id,
2585
+ date: date.moment.format("YYYY-MM-DD")
2586
+ });
2587
+ }
2588
+
2589
+ var isWekend = [0, 6].includes(date.moment.day());
2590
+ var weekend = isWekend ? "weekend" : "";
2591
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2592
+ className: "cell " + weekend,
2593
+ onDragOver: onDragOver,
2594
+ onDragLeave: onDragLeave,
2595
+ onDrop: drop
2596
+ }, "c");
2597
+ };
2598
+
2330
2599
  /**
2331
2600
  * Page Context
2332
2601
  */
@@ -5544,6 +5813,7 @@ exports.MenuSeparator = MenuSeparator;
5544
5813
  exports.Page = Page;
5545
5814
  exports.PageContext = PageContext;
5546
5815
  exports.PageProvider = PageProvider;
5816
+ exports.Planner = Planner;
5547
5817
  exports.Property = Property;
5548
5818
  exports.RadioButton = RadioButton;
5549
5819
  exports.ResetPasswordBox = ResetPasswordBox;