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.umd.js CHANGED
@@ -1,12 +1,13 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('material-design-icons-iconfont/dist/material-design-icons.css'), require('react'), require('react-switch'), require('react-notifications'), require('react-notifications/lib/notifications.css'), require('deep-equal'), require('resumablejs')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'material-design-icons-iconfont/dist/material-design-icons.css', 'react', 'react-switch', 'react-notifications', 'react-notifications/lib/notifications.css', 'deep-equal', 'resumablejs'], factory) :
4
- (global = global || self, factory(global.ywanaCore8 = {}, null, global.react, global.reactSwitch, global.reactNotifications, null, global.deepEqual, global.resumablejs));
5
- })(this, (function (exports, materialDesignIcons_css, React, RSwitch, reactNotifications, notifications_css, equal, ResumableJS) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('material-design-icons-iconfont/dist/material-design-icons.css'), require('react'), require('react-switch'), require('moment'), require('moment-range'), require('react-notifications'), require('react-notifications/lib/notifications.css'), require('deep-equal'), require('resumablejs')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'material-design-icons-iconfont/dist/material-design-icons.css', 'react', 'react-switch', 'moment', 'moment-range', 'react-notifications', 'react-notifications/lib/notifications.css', 'deep-equal', 'resumablejs'], factory) :
4
+ (global = global || self, factory(global.ywanaCore8 = {}, null, global.react, global.reactSwitch, global.moment, global.momentRange, global.reactNotifications, null, global.deepEqual, global.resumablejs));
5
+ })(this, (function (exports, materialDesignIcons_css, React, RSwitch, moment, momentRange, reactNotifications, notifications_css, equal, ResumableJS) {
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
8
8
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
9
  var RSwitch__default = /*#__PURE__*/_interopDefaultLegacy(RSwitch);
10
+ var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
10
11
  var equal__default = /*#__PURE__*/_interopDefaultLegacy(equal);
11
12
  var ResumableJS__default = /*#__PURE__*/_interopDefaultLegacy(ResumableJS);
12
13
 
@@ -701,16 +702,45 @@
701
702
  */
702
703
 
703
704
  var Property = function Property(props) {
704
- var label = props.label,
705
+ var id = props.id,
706
+ className = props.className,
707
+ label = props.label,
705
708
  name = props.name,
706
- value = props.value;
709
+ initial = props.initial,
710
+ value = props.value,
711
+ _props$editable = props.editable,
712
+ editable = _props$editable === void 0 ? false : _props$editable,
713
+ onChange = props.onChange;
714
+
715
+ function change(event) {
716
+ if (onChange) {
717
+ var _value = event.target.value;
718
+ onChange(id, _value);
719
+ }
720
+ }
721
+
722
+ function clear() {
723
+ if (onChange) onChange("");
724
+ }
725
+
707
726
  return /*#__PURE__*/React__default["default"].createElement("div", {
708
- className: "property"
727
+ className: "property property-" + id + " " + className
709
728
  }, /*#__PURE__*/React__default["default"].createElement("div", {
710
729
  className: "property-name"
711
- }, name || label), /*#__PURE__*/React__default["default"].createElement("div", {
730
+ }, name || label), initial ? /*#__PURE__*/React__default["default"].createElement("div", {
731
+ className: "property-value"
732
+ }, initial) : null, /*#__PURE__*/React__default["default"].createElement("div", {
712
733
  className: "property-value"
713
- }, value));
734
+ }, editable ? /*#__PURE__*/React__default["default"].createElement("input", {
735
+ type: "text",
736
+ value: value,
737
+ onChange: change
738
+ }) : value, editable && value.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Icon, {
739
+ icon: "close",
740
+ size: "small",
741
+ clickable: true,
742
+ action: clear
743
+ }) : null));
714
744
  };
715
745
 
716
746
  /**
@@ -882,7 +912,7 @@
882
912
  }
883
913
 
884
914
  function focus() {
885
- if (site) {
915
+ if (site && site.changeFocus) {
886
916
  site.changeFocus({
887
917
  lose: function lose() {// DO NOTHING
888
918
  }
@@ -920,6 +950,79 @@
920
950
  className: "bar"
921
951
  }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
922
952
  };
953
+ /**
954
+ * Text Area
955
+ */
956
+
957
+ var TextArea = function TextArea(props) {
958
+ var site = React.useContext(SiteContext);
959
+ var id = props.id,
960
+ _props$type2 = props.type,
961
+ type = _props$type2 === void 0 ? 'text' : _props$type2,
962
+ label = props.label,
963
+ placeholder = props.placeholder,
964
+ value = props.value,
965
+ _props$readOnly2 = props.readOnly,
966
+ readOnly = _props$readOnly2 === void 0 ? false : _props$readOnly2,
967
+ _props$canClear2 = props.canClear,
968
+ canClear = _props$canClear2 === void 0 ? true : _props$canClear2,
969
+ onChange = props.onChange,
970
+ onEnter = props.onEnter,
971
+ onClick = props.onClick;
972
+
973
+ function onKeyPress(event) {
974
+ var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
975
+
976
+ if (key == 13) {
977
+ if (onEnter) onEnter();
978
+ }
979
+ }
980
+
981
+ function change(event) {
982
+ event.stopPropagation();
983
+ event.preventDefault();
984
+ var value = event.target.value;
985
+ console.log(value);
986
+ if (onChange) onChange(id, value);
987
+ }
988
+
989
+ function focus() {
990
+ if (site && site.changeFocus) {
991
+ site.changeFocus({
992
+ lose: function lose() {// DO NOTHING
993
+ }
994
+ });
995
+ }
996
+ }
997
+
998
+ function clear() {
999
+ if (onChange) onChange(id, "");
1000
+ }
1001
+
1002
+ var labelStyle = label ? "" : "no-label";
1003
+ var style = "textarea " + labelStyle + " textarea-" + type;
1004
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
1005
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1006
+ className: "" + style,
1007
+ onClick: onClick
1008
+ }, /*#__PURE__*/React__default["default"].createElement("textarea", {
1009
+ id: id,
1010
+ placeholder: placeholder,
1011
+ value: value,
1012
+ required: true,
1013
+ onChange: change,
1014
+ onKeyDown: onKeyPress,
1015
+ onFocus: focus,
1016
+ readOnly: readOnly
1017
+ }), !readOnly && canClear && value && value.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Icon, {
1018
+ icon: "close",
1019
+ clickable: true,
1020
+ size: "small",
1021
+ action: clear
1022
+ }) : null, /*#__PURE__*/React__default["default"].createElement("span", {
1023
+ className: "bar"
1024
+ }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
1025
+ };
923
1026
  /**
924
1027
  * Dropdown
925
1028
  */
@@ -933,8 +1036,8 @@
933
1036
  onChange = props.onChange,
934
1037
  _props$canFilter = props.canFilter,
935
1038
  canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
936
- _props$readOnly2 = props.readOnly,
937
- readOnly = _props$readOnly2 === void 0 ? false : _props$readOnly2;
1039
+ _props$readOnly3 = props.readOnly,
1040
+ readOnly = _props$readOnly3 === void 0 ? false : _props$readOnly3;
938
1041
 
939
1042
  var _useState = React.useState(false),
940
1043
  open = _useState[0],
@@ -2252,6 +2355,242 @@
2252
2355
  }));
2253
2356
  };
2254
2357
 
2358
+ var ranges = momentRange.extendMoment(moment__default["default"]);
2359
+ var DATE_RANGE = [{
2360
+ label: "Week",
2361
+ value: "week"
2362
+ }, {
2363
+ label: "Month",
2364
+ value: "month"
2365
+ }];
2366
+ /**
2367
+ * Planner
2368
+ */
2369
+
2370
+ var Planner = function Planner(_ref) {
2371
+ var title = _ref.title,
2372
+ _ref$events = _ref.events,
2373
+ events = _ref$events === void 0 ? [] : _ref$events,
2374
+ _ref$lanes = _ref.lanes,
2375
+ lanes = _ref$lanes === void 0 ? [] : _ref$lanes,
2376
+ _ref$navigation = _ref.navigation,
2377
+ navigation = _ref$navigation === void 0 ? true : _ref$navigation;
2378
+
2379
+ var _useState = React.useState("month"),
2380
+ dateRange = _useState[0],
2381
+ setDateRange = _useState[1];
2382
+
2383
+ var _useState2 = React.useState("2021-02-26"),
2384
+ from = _useState2[0],
2385
+ setFrom = _useState2[1];
2386
+
2387
+ var _useState3 = React.useState("2021-04-01"),
2388
+ to = _useState3[0],
2389
+ setTo = _useState3[1];
2390
+
2391
+ React.useEffect(function () {
2392
+ var today = moment__default["default"]();
2393
+ var from_date = today.startOf(dateRange).format("YYYY-MM-DD");
2394
+ var to_date = today.endOf(dateRange).format("YYYY-MM-DD");
2395
+ setFrom(from_date);
2396
+ setTo(to_date);
2397
+ }, [dateRange]);
2398
+
2399
+ function next() {
2400
+ var actual = moment__default["default"](from);
2401
+ var next = actual.add(1, dateRange);
2402
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2403
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2404
+ setFrom(from_date);
2405
+ setTo(to_date);
2406
+ }
2407
+
2408
+ function prev() {
2409
+ var actual = moment__default["default"](from);
2410
+ var next = actual.subtract(1, dateRange);
2411
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2412
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2413
+ setFrom(from_date);
2414
+ setTo(to_date);
2415
+ }
2416
+
2417
+ var period = React.useMemo(function () {
2418
+ var start = ranges(from, "YYYY-MM-DD");
2419
+ var end = ranges(to, "YYYY-MM-DD");
2420
+ var range = ranges.range(start, end);
2421
+ var period = Array.from(range.by("day")).map(function (m) {
2422
+ return {
2423
+ year: m.year(),
2424
+ month: m.month(),
2425
+ day: m.date(),
2426
+ moment: m
2427
+ };
2428
+ });
2429
+ return period;
2430
+ }, [from, to]);
2431
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, {
2432
+ use: "headline6"
2433
+ }, title);
2434
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2435
+ className: "planner-box"
2436
+ }, navigation ? /*#__PURE__*/React__default["default"].createElement(Header, {
2437
+ title: label
2438
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2439
+ icon: "chevron_right",
2440
+ clickable: true,
2441
+ action: next
2442
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2443
+ id: "to",
2444
+ type: "date",
2445
+ label: "To",
2446
+ value: to,
2447
+ onChange: function onChange(id, value) {
2448
+ return setTo(value);
2449
+ }
2450
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2451
+ className: "expand"
2452
+ }), /*#__PURE__*/React__default["default"].createElement(DropDown, {
2453
+ id: "ranges",
2454
+ label: "Date Range",
2455
+ options: DATE_RANGE,
2456
+ value: dateRange,
2457
+ onChange: function onChange(id, value) {
2458
+ return setDateRange(value);
2459
+ }
2460
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2461
+ className: "expand"
2462
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2463
+ id: "from",
2464
+ type: "date",
2465
+ label: "From",
2466
+ value: from,
2467
+ onChange: function onChange(id, value) {
2468
+ return setFrom(value);
2469
+ }
2470
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2471
+ icon: "chevron_left",
2472
+ clickable: true,
2473
+ action: prev
2474
+ })) : null, /*#__PURE__*/React__default["default"].createElement("main", {
2475
+ className: "planner"
2476
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2477
+ className: "column0"
2478
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2479
+ className: "column-header"
2480
+ }), lanes.map(function (lane) {
2481
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2482
+ className: "row-header"
2483
+ }, lane.label);
2484
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2485
+ className: "rows"
2486
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2487
+ className: "row row0"
2488
+ }, period.map(function (date, index) {
2489
+ var first = index === 0 || date.day === 1 ? "first" : "";
2490
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2491
+ className: "column-header"
2492
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2493
+ className: "month-header " + first
2494
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2495
+ use: "overline"
2496
+ }, date.moment.format("MMM"))));
2497
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2498
+ className: "row row1"
2499
+ }, period.map(function (date) {
2500
+ var isWekend = [0, 6].includes(date.moment.day());
2501
+ var weekend = isWekend ? "weekend" : "";
2502
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2503
+ className: "column-header"
2504
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2505
+ className: "date-header " + weekend
2506
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2507
+ use: "headline6"
2508
+ }, date.moment.format("DD")), "\xA0", /*#__PURE__*/React__default["default"].createElement(Text$1, {
2509
+ use: "caption"
2510
+ }, date.moment.format("ddd"))));
2511
+ })), lanes.map(function (lane) {
2512
+ return /*#__PURE__*/React__default["default"].createElement(PlannerRow, {
2513
+ lane: lane,
2514
+ events: events,
2515
+ period: period
2516
+ });
2517
+ }))));
2518
+ };
2519
+ /**
2520
+ * Planner Row
2521
+ */
2522
+
2523
+ var PlannerRow = function PlannerRow(props) {
2524
+ var lane = props.lane,
2525
+ _props$events = props.events,
2526
+ events = _props$events === void 0 ? [] : _props$events,
2527
+ period = props.period;
2528
+ var rowEvents = events.filter(function (event) {
2529
+ return event.lane === lane.id;
2530
+ });
2531
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2532
+ className: "row"
2533
+ }, period.map(function (date) {
2534
+ var slotDate = new Date(date.year, date.month, date.day);
2535
+ slotDate.setHours(0, 0, 0);
2536
+ var cellEvents = rowEvents.filter(function (event) {
2537
+ var eventDate = new Date(event.date);
2538
+ eventDate.setHours(0, 0, 0);
2539
+ return eventDate.getTime() === slotDate.getTime();
2540
+ });
2541
+ return /*#__PURE__*/React__default["default"].createElement(PlannerCell, {
2542
+ date: date,
2543
+ events: cellEvents
2544
+ });
2545
+ }));
2546
+ };
2547
+ /**
2548
+ * Planner Cell
2549
+ */
2550
+
2551
+
2552
+ var PlannerCell = function PlannerCell(_ref3) {
2553
+ var lane = _ref3.lane,
2554
+ date = _ref3.date,
2555
+ onDrop = _ref3.onDrop;
2556
+
2557
+ var _useState4 = React.useState(false),
2558
+ dragOver = _useState4[0],
2559
+ setDragOver = _useState4[1];
2560
+
2561
+ function onDragOver(event) {
2562
+ if (!dragOver) setDragOver(true);
2563
+ event.stopPropagation();
2564
+ event.preventDefault();
2565
+ }
2566
+
2567
+ function onDragLeave(event) {
2568
+ setDragOver(false);
2569
+ event.stopPropagation();
2570
+ event.preventDefault();
2571
+ }
2572
+
2573
+ function drop(event) {
2574
+ event.stopPropagation();
2575
+ event.preventDefault();
2576
+ var id = event.dataTransfer.getData("text");
2577
+ if (onDrop) onDrop({
2578
+ id: id,
2579
+ lane: lane.id,
2580
+ date: date.moment.format("YYYY-MM-DD")
2581
+ });
2582
+ }
2583
+
2584
+ var isWekend = [0, 6].includes(date.moment.day());
2585
+ var weekend = isWekend ? "weekend" : "";
2586
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2587
+ className: "cell " + weekend,
2588
+ onDragOver: onDragOver,
2589
+ onDragLeave: onDragLeave,
2590
+ onDrop: drop
2591
+ }, "c");
2592
+ };
2593
+
2255
2594
  /**
2256
2595
  * Page Context
2257
2596
  */
@@ -5469,6 +5808,7 @@
5469
5808
  exports.Page = Page;
5470
5809
  exports.PageContext = PageContext;
5471
5810
  exports.PageProvider = PageProvider;
5811
+ exports.Planner = Planner;
5472
5812
  exports.Property = Property;
5473
5813
  exports.RadioButton = RadioButton;
5474
5814
  exports.ResetPasswordBox = ResetPasswordBox;
@@ -5485,6 +5825,7 @@
5485
5825
  exports.TablePage = TablePage;
5486
5826
  exports.Tabs = Tabs;
5487
5827
  exports.Text = Text$1;
5828
+ exports.TextArea = TextArea;
5488
5829
  exports.TextField = TextField;
5489
5830
  exports.Thumbnail = Thumbnail;
5490
5831
  exports.TokenField = TokenField;