ywana-core8 0.0.239 → 0.0.243

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("");
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
  }
@@ -923,6 +955,79 @@ var TextField = function TextField(props) {
923
955
  className: "bar"
924
956
  }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
925
957
  };
958
+ /**
959
+ * Text Area
960
+ */
961
+
962
+ var TextArea = function TextArea(props) {
963
+ var site = React.useContext(SiteContext);
964
+ var id = props.id,
965
+ _props$type2 = props.type,
966
+ type = _props$type2 === void 0 ? 'text' : _props$type2,
967
+ label = props.label,
968
+ placeholder = props.placeholder,
969
+ value = props.value,
970
+ _props$readOnly2 = props.readOnly,
971
+ readOnly = _props$readOnly2 === void 0 ? false : _props$readOnly2,
972
+ _props$canClear2 = props.canClear,
973
+ canClear = _props$canClear2 === void 0 ? true : _props$canClear2,
974
+ onChange = props.onChange,
975
+ onEnter = props.onEnter,
976
+ onClick = props.onClick;
977
+
978
+ function onKeyPress(event) {
979
+ var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
980
+
981
+ if (key == 13) {
982
+ if (onEnter) onEnter();
983
+ }
984
+ }
985
+
986
+ function change(event) {
987
+ event.stopPropagation();
988
+ event.preventDefault();
989
+ var value = event.target.value;
990
+ console.log(value);
991
+ if (onChange) onChange(id, value);
992
+ }
993
+
994
+ function focus() {
995
+ if (site && site.changeFocus) {
996
+ site.changeFocus({
997
+ lose: function lose() {// DO NOTHING
998
+ }
999
+ });
1000
+ }
1001
+ }
1002
+
1003
+ function clear() {
1004
+ if (onChange) onChange(id, "");
1005
+ }
1006
+
1007
+ var labelStyle = label ? "" : "no-label";
1008
+ var style = "textarea " + labelStyle + " textarea-" + type;
1009
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
1010
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1011
+ className: "" + style,
1012
+ onClick: onClick
1013
+ }, /*#__PURE__*/React__default["default"].createElement("textarea", {
1014
+ id: id,
1015
+ placeholder: placeholder,
1016
+ value: value,
1017
+ required: true,
1018
+ onChange: change,
1019
+ onKeyDown: onKeyPress,
1020
+ onFocus: focus,
1021
+ readOnly: readOnly
1022
+ }), !readOnly && canClear && value && value.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Icon, {
1023
+ icon: "close",
1024
+ clickable: true,
1025
+ size: "small",
1026
+ action: clear
1027
+ }) : null, /*#__PURE__*/React__default["default"].createElement("span", {
1028
+ className: "bar"
1029
+ }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
1030
+ };
926
1031
  /**
927
1032
  * Dropdown
928
1033
  */
@@ -936,8 +1041,8 @@ var DropDown = function DropDown(props) {
936
1041
  onChange = props.onChange,
937
1042
  _props$canFilter = props.canFilter,
938
1043
  canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
939
- _props$readOnly2 = props.readOnly,
940
- readOnly = _props$readOnly2 === void 0 ? false : _props$readOnly2;
1044
+ _props$readOnly3 = props.readOnly,
1045
+ readOnly = _props$readOnly3 === void 0 ? false : _props$readOnly3;
941
1046
 
942
1047
  var _useState = React.useState(false),
943
1048
  open = _useState[0],
@@ -2255,6 +2360,242 @@ var WaitScreen = function WaitScreen() {
2255
2360
  }));
2256
2361
  };
2257
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
+
2258
2599
  /**
2259
2600
  * Page Context
2260
2601
  */
@@ -5472,6 +5813,7 @@ exports.MenuSeparator = MenuSeparator;
5472
5813
  exports.Page = Page;
5473
5814
  exports.PageContext = PageContext;
5474
5815
  exports.PageProvider = PageProvider;
5816
+ exports.Planner = Planner;
5475
5817
  exports.Property = Property;
5476
5818
  exports.RadioButton = RadioButton;
5477
5819
  exports.ResetPasswordBox = ResetPasswordBox;
@@ -5488,6 +5830,7 @@ exports.TabbedContentEditor = TabbedContentEditor;
5488
5830
  exports.TablePage = TablePage;
5489
5831
  exports.Tabs = Tabs;
5490
5832
  exports.Text = Text$1;
5833
+ exports.TextArea = TextArea;
5491
5834
  exports.TextField = TextField;
5492
5835
  exports.Thumbnail = Thumbnail;
5493
5836
  exports.TokenField = TokenField;