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/__reactpreview__/Wrapper.tsx +16 -7
- package/dist/index.cjs +319 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +364 -3
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +318 -7
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +321 -9
- package/dist/index.umd.js.map +1 -1
- package/package.json +3 -1
- package/src/html/header.css +2 -1
- package/src/html/index.js +1 -1
- package/src/html/textarea.css +158 -0
- package/src/html/textfield.css +7 -2
- package/src/html/textfield.js +57 -3
- package/src/html/textfield.test.js +21 -0
- package/src/site/page.css +1 -0
- package/src/site/site.css +1 -0
- package/src/widgets/index.js +2 -1
- package/src/widgets/kanban/Kanban.test.js +18 -0
- package/src/widgets/planner/Planner.css +179 -0
- package/src/widgets/planner/Planner.js +208 -0
- package/src/widgets/planner/Planner.test.js +25 -0
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$
|
937
|
-
readOnly = _props$
|
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;
|