ywana-core8 0.0.238 → 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.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
 
@@ -882,7 +883,7 @@
882
883
  }
883
884
 
884
885
  function focus() {
885
- if (site) {
886
+ if (site && site.changeFocus) {
886
887
  site.changeFocus({
887
888
  lose: function lose() {// DO NOTHING
888
889
  }
@@ -896,7 +897,7 @@
896
897
 
897
898
  var borderStyle = outlined ? "textfield-outlined" : "textfield";
898
899
  var labelStyle = label ? "" : "no-label";
899
- var style = labelStyle + " " + borderStyle;
900
+ var style = labelStyle + " " + borderStyle + " textfield-" + type;
900
901
  var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
901
902
  return /*#__PURE__*/React__default["default"].createElement("div", {
902
903
  className: "" + style,
@@ -920,6 +921,79 @@
920
921
  className: "bar"
921
922
  }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
922
923
  };
924
+ /**
925
+ * Text Area
926
+ */
927
+
928
+ var TextArea = function TextArea(props) {
929
+ var site = React.useContext(SiteContext);
930
+ var id = props.id,
931
+ _props$type2 = props.type,
932
+ type = _props$type2 === void 0 ? 'text' : _props$type2,
933
+ label = props.label,
934
+ placeholder = props.placeholder,
935
+ value = props.value,
936
+ _props$readOnly2 = props.readOnly,
937
+ readOnly = _props$readOnly2 === void 0 ? false : _props$readOnly2,
938
+ _props$canClear2 = props.canClear,
939
+ canClear = _props$canClear2 === void 0 ? true : _props$canClear2,
940
+ onChange = props.onChange,
941
+ onEnter = props.onEnter,
942
+ onClick = props.onClick;
943
+
944
+ function onKeyPress(event) {
945
+ var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
946
+
947
+ if (key == 13) {
948
+ if (onEnter) onEnter();
949
+ }
950
+ }
951
+
952
+ function change(event) {
953
+ event.stopPropagation();
954
+ event.preventDefault();
955
+ var value = event.target.value;
956
+ console.log(value);
957
+ if (onChange) onChange(id, value);
958
+ }
959
+
960
+ function focus() {
961
+ if (site && site.changeFocus) {
962
+ site.changeFocus({
963
+ lose: function lose() {// DO NOTHING
964
+ }
965
+ });
966
+ }
967
+ }
968
+
969
+ function clear() {
970
+ if (onChange) onChange(id, "");
971
+ }
972
+
973
+ var labelStyle = label ? "" : "no-label";
974
+ var style = "textarea " + labelStyle + " textarea-" + type;
975
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
976
+ return /*#__PURE__*/React__default["default"].createElement("div", {
977
+ className: "" + style,
978
+ onClick: onClick
979
+ }, /*#__PURE__*/React__default["default"].createElement("textarea", {
980
+ id: id,
981
+ placeholder: placeholder,
982
+ value: value,
983
+ required: true,
984
+ onChange: change,
985
+ onKeyDown: onKeyPress,
986
+ onFocus: focus,
987
+ readOnly: readOnly
988
+ }), !readOnly && canClear && value && value.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Icon, {
989
+ icon: "close",
990
+ clickable: true,
991
+ size: "small",
992
+ action: clear
993
+ }) : null, /*#__PURE__*/React__default["default"].createElement("span", {
994
+ className: "bar"
995
+ }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
996
+ };
923
997
  /**
924
998
  * Dropdown
925
999
  */
@@ -933,8 +1007,8 @@
933
1007
  onChange = props.onChange,
934
1008
  _props$canFilter = props.canFilter,
935
1009
  canFilter = _props$canFilter === void 0 ? false : _props$canFilter,
936
- _props$readOnly2 = props.readOnly,
937
- readOnly = _props$readOnly2 === void 0 ? false : _props$readOnly2;
1010
+ _props$readOnly3 = props.readOnly,
1011
+ readOnly = _props$readOnly3 === void 0 ? false : _props$readOnly3;
938
1012
 
939
1013
  var _useState = React.useState(false),
940
1014
  open = _useState[0],
@@ -965,7 +1039,7 @@
965
1039
  }
966
1040
 
967
1041
  function toggle() {
968
- if (site) {
1042
+ if (site && site.changeFocus) {
969
1043
  site.changeFocus({
970
1044
  lose: function lose() {
971
1045
  setOpen(false);
@@ -2252,6 +2326,242 @@
2252
2326
  }));
2253
2327
  };
2254
2328
 
2329
+ var ranges = momentRange.extendMoment(moment__default["default"]);
2330
+ var DATE_RANGE = [{
2331
+ label: "Week",
2332
+ value: "week"
2333
+ }, {
2334
+ label: "Month",
2335
+ value: "month"
2336
+ }];
2337
+ /**
2338
+ * Planner
2339
+ */
2340
+
2341
+ var Planner = function Planner(_ref) {
2342
+ var title = _ref.title,
2343
+ _ref$events = _ref.events,
2344
+ events = _ref$events === void 0 ? [] : _ref$events,
2345
+ _ref$lanes = _ref.lanes,
2346
+ lanes = _ref$lanes === void 0 ? [] : _ref$lanes,
2347
+ _ref$navigation = _ref.navigation,
2348
+ navigation = _ref$navigation === void 0 ? true : _ref$navigation;
2349
+
2350
+ var _useState = React.useState("month"),
2351
+ dateRange = _useState[0],
2352
+ setDateRange = _useState[1];
2353
+
2354
+ var _useState2 = React.useState("2021-02-26"),
2355
+ from = _useState2[0],
2356
+ setFrom = _useState2[1];
2357
+
2358
+ var _useState3 = React.useState("2021-04-01"),
2359
+ to = _useState3[0],
2360
+ setTo = _useState3[1];
2361
+
2362
+ React.useEffect(function () {
2363
+ var today = moment__default["default"]();
2364
+ var from_date = today.startOf(dateRange).format("YYYY-MM-DD");
2365
+ var to_date = today.endOf(dateRange).format("YYYY-MM-DD");
2366
+ setFrom(from_date);
2367
+ setTo(to_date);
2368
+ }, [dateRange]);
2369
+
2370
+ function next() {
2371
+ var actual = moment__default["default"](from);
2372
+ var next = actual.add(1, dateRange);
2373
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2374
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2375
+ setFrom(from_date);
2376
+ setTo(to_date);
2377
+ }
2378
+
2379
+ function prev() {
2380
+ var actual = moment__default["default"](from);
2381
+ var next = actual.subtract(1, dateRange);
2382
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2383
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2384
+ setFrom(from_date);
2385
+ setTo(to_date);
2386
+ }
2387
+
2388
+ var period = React.useMemo(function () {
2389
+ var start = ranges(from, "YYYY-MM-DD");
2390
+ var end = ranges(to, "YYYY-MM-DD");
2391
+ var range = ranges.range(start, end);
2392
+ var period = Array.from(range.by("day")).map(function (m) {
2393
+ return {
2394
+ year: m.year(),
2395
+ month: m.month(),
2396
+ day: m.date(),
2397
+ moment: m
2398
+ };
2399
+ });
2400
+ return period;
2401
+ }, [from, to]);
2402
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, {
2403
+ use: "headline6"
2404
+ }, title);
2405
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2406
+ className: "planner-box"
2407
+ }, navigation ? /*#__PURE__*/React__default["default"].createElement(Header, {
2408
+ title: label
2409
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2410
+ icon: "chevron_right",
2411
+ clickable: true,
2412
+ action: next
2413
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2414
+ id: "to",
2415
+ type: "date",
2416
+ label: "To",
2417
+ value: to,
2418
+ onChange: function onChange(id, value) {
2419
+ return setTo(value);
2420
+ }
2421
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2422
+ className: "expand"
2423
+ }), /*#__PURE__*/React__default["default"].createElement(DropDown, {
2424
+ id: "ranges",
2425
+ label: "Date Range",
2426
+ options: DATE_RANGE,
2427
+ value: dateRange,
2428
+ onChange: function onChange(id, value) {
2429
+ return setDateRange(value);
2430
+ }
2431
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2432
+ className: "expand"
2433
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2434
+ id: "from",
2435
+ type: "date",
2436
+ label: "From",
2437
+ value: from,
2438
+ onChange: function onChange(id, value) {
2439
+ return setFrom(value);
2440
+ }
2441
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2442
+ icon: "chevron_left",
2443
+ clickable: true,
2444
+ action: prev
2445
+ })) : null, /*#__PURE__*/React__default["default"].createElement("main", {
2446
+ className: "planner"
2447
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2448
+ className: "column0"
2449
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2450
+ className: "column-header"
2451
+ }), lanes.map(function (lane) {
2452
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2453
+ className: "row-header"
2454
+ }, lane.label);
2455
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2456
+ className: "rows"
2457
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2458
+ className: "row row0"
2459
+ }, period.map(function (date, index) {
2460
+ var first = index === 0 || date.day === 1 ? "first" : "";
2461
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2462
+ className: "column-header"
2463
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2464
+ className: "month-header " + first
2465
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2466
+ use: "overline"
2467
+ }, date.moment.format("MMM"))));
2468
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
2469
+ className: "row row1"
2470
+ }, period.map(function (date) {
2471
+ var isWekend = [0, 6].includes(date.moment.day());
2472
+ var weekend = isWekend ? "weekend" : "";
2473
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2474
+ className: "column-header"
2475
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2476
+ className: "date-header " + weekend
2477
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
2478
+ use: "headline6"
2479
+ }, date.moment.format("DD")), "\xA0", /*#__PURE__*/React__default["default"].createElement(Text$1, {
2480
+ use: "caption"
2481
+ }, date.moment.format("ddd"))));
2482
+ })), lanes.map(function (lane) {
2483
+ return /*#__PURE__*/React__default["default"].createElement(PlannerRow, {
2484
+ lane: lane,
2485
+ events: events,
2486
+ period: period
2487
+ });
2488
+ }))));
2489
+ };
2490
+ /**
2491
+ * Planner Row
2492
+ */
2493
+
2494
+ var PlannerRow = function PlannerRow(props) {
2495
+ var lane = props.lane,
2496
+ _props$events = props.events,
2497
+ events = _props$events === void 0 ? [] : _props$events,
2498
+ period = props.period;
2499
+ var rowEvents = events.filter(function (event) {
2500
+ return event.lane === lane.id;
2501
+ });
2502
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2503
+ className: "row"
2504
+ }, period.map(function (date) {
2505
+ var slotDate = new Date(date.year, date.month, date.day);
2506
+ slotDate.setHours(0, 0, 0);
2507
+ var cellEvents = rowEvents.filter(function (event) {
2508
+ var eventDate = new Date(event.date);
2509
+ eventDate.setHours(0, 0, 0);
2510
+ return eventDate.getTime() === slotDate.getTime();
2511
+ });
2512
+ return /*#__PURE__*/React__default["default"].createElement(PlannerCell, {
2513
+ date: date,
2514
+ events: cellEvents
2515
+ });
2516
+ }));
2517
+ };
2518
+ /**
2519
+ * Planner Cell
2520
+ */
2521
+
2522
+
2523
+ var PlannerCell = function PlannerCell(_ref3) {
2524
+ var lane = _ref3.lane,
2525
+ date = _ref3.date,
2526
+ onDrop = _ref3.onDrop;
2527
+
2528
+ var _useState4 = React.useState(false),
2529
+ dragOver = _useState4[0],
2530
+ setDragOver = _useState4[1];
2531
+
2532
+ function onDragOver(event) {
2533
+ if (!dragOver) setDragOver(true);
2534
+ event.stopPropagation();
2535
+ event.preventDefault();
2536
+ }
2537
+
2538
+ function onDragLeave(event) {
2539
+ setDragOver(false);
2540
+ event.stopPropagation();
2541
+ event.preventDefault();
2542
+ }
2543
+
2544
+ function drop(event) {
2545
+ event.stopPropagation();
2546
+ event.preventDefault();
2547
+ var id = event.dataTransfer.getData("text");
2548
+ if (onDrop) onDrop({
2549
+ id: id,
2550
+ lane: lane.id,
2551
+ date: date.moment.format("YYYY-MM-DD")
2552
+ });
2553
+ }
2554
+
2555
+ var isWekend = [0, 6].includes(date.moment.day());
2556
+ var weekend = isWekend ? "weekend" : "";
2557
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2558
+ className: "cell " + weekend,
2559
+ onDragOver: onDragOver,
2560
+ onDragLeave: onDragLeave,
2561
+ onDrop: drop
2562
+ }, "c");
2563
+ };
2564
+
2255
2565
  /**
2256
2566
  * Page Context
2257
2567
  */
@@ -5469,6 +5779,7 @@
5469
5779
  exports.Page = Page;
5470
5780
  exports.PageContext = PageContext;
5471
5781
  exports.PageProvider = PageProvider;
5782
+ exports.Planner = Planner;
5472
5783
  exports.Property = Property;
5473
5784
  exports.RadioButton = RadioButton;
5474
5785
  exports.ResetPasswordBox = ResetPasswordBox;
@@ -5485,6 +5796,7 @@
5485
5796
  exports.TablePage = TablePage;
5486
5797
  exports.Tabs = Tabs;
5487
5798
  exports.Text = Text$1;
5799
+ exports.TextArea = TextArea;
5488
5800
  exports.TextField = TextField;
5489
5801
  exports.Thumbnail = Thumbnail;
5490
5802
  exports.TokenField = TokenField;