ywana-core8 0.0.241 → 0.0.245

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
  /**
@@ -1007,8 +1039,8 @@ var DropDown = function DropDown(props) {
1007
1039
  options = _props$options === void 0 ? [] : _props$options,
1008
1040
  value = props.value,
1009
1041
  onChange = props.onChange,
1010
- _props$canFilter = props.canFilter,
1011
- canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
1042
+ _props$predictive = props.predictive,
1043
+ predictive = _props$predictive === void 0 ? false : _props$predictive,
1012
1044
  _props$readOnly3 = props.readOnly,
1013
1045
  readOnly = _props$readOnly3 === void 0 ? false : _props$readOnly3;
1014
1046
 
@@ -1033,7 +1065,7 @@ var DropDown = function DropDown(props) {
1033
1065
  }, [value]);
1034
1066
 
1035
1067
  function change(id, value) {
1036
- if (canFilter) {
1068
+ if (predictive) {
1037
1069
  setLabel(value);
1038
1070
  } else {
1039
1071
  if (onChange) onChange(id, value);
@@ -1066,7 +1098,7 @@ var DropDown = function DropDown(props) {
1066
1098
  var canShow = open == true && Array.isArray(options);
1067
1099
 
1068
1100
  if (canShow) {
1069
- var filterActive = canFilter === true && label && label.length > 0;
1101
+ var filterActive = predictive === true && label && label.length > 0;
1070
1102
  var items = filterActive ? options.filter(function (option) {
1071
1103
  return option.label.toUpperCase().indexOf(label.toUpperCase()) >= 0;
1072
1104
  }) : options;
@@ -2328,6 +2360,242 @@ var WaitScreen = function WaitScreen() {
2328
2360
  }));
2329
2361
  };
2330
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
+
2331
2599
  /**
2332
2600
  * Page Context
2333
2601
  */
@@ -5545,6 +5813,7 @@ exports.MenuSeparator = MenuSeparator;
5545
5813
  exports.Page = Page;
5546
5814
  exports.PageContext = PageContext;
5547
5815
  exports.PageProvider = PageProvider;
5816
+ exports.Planner = Planner;
5548
5817
  exports.Property = Property;
5549
5818
  exports.RadioButton = RadioButton;
5550
5819
  exports.ResetPasswordBox = ResetPasswordBox;