@web-atoms/web-controls 2.1.5 → 2.1.6

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.
Files changed (41) hide show
  1. package/dist/basic/Button.d.ts +19 -0
  2. package/dist/basic/Button.d.ts.map +1 -0
  3. package/dist/basic/Button.js +63 -0
  4. package/dist/basic/Button.js.map +1 -0
  5. package/dist/basic/Checkbox.d.ts +5 -0
  6. package/dist/basic/Checkbox.d.ts.map +1 -0
  7. package/dist/basic/Checkbox.js +39 -0
  8. package/dist/basic/Checkbox.js.map +1 -0
  9. package/dist/basic/IElement.d.ts +11 -0
  10. package/dist/basic/IElement.d.ts.map +1 -0
  11. package/dist/basic/IElement.js +13 -0
  12. package/dist/basic/IElement.js.map +1 -0
  13. package/dist/basic/Input.d.ts +5 -0
  14. package/dist/basic/Input.d.ts.map +1 -0
  15. package/dist/basic/Input.js +30 -0
  16. package/dist/basic/Input.js.map +1 -0
  17. package/dist/basic/Panel.d.ts +6 -0
  18. package/dist/basic/Panel.d.ts.map +1 -0
  19. package/dist/basic/Panel.js +37 -0
  20. package/dist/basic/Panel.js.map +1 -0
  21. package/dist/basic/PopupButton.d.ts +16 -0
  22. package/dist/basic/PopupButton.d.ts.map +1 -0
  23. package/dist/basic/PopupButton.js +118 -0
  24. package/dist/basic/PopupButton.js.map +1 -0
  25. package/dist/basic/Switch.d.ts +7 -0
  26. package/dist/basic/Switch.d.ts.map +1 -0
  27. package/dist/basic/Switch.js +96 -0
  28. package/dist/basic/Switch.js.map +1 -0
  29. package/dist/basic/combineClasses.d.ts +2 -0
  30. package/dist/basic/combineClasses.d.ts.map +1 -0
  31. package/dist/basic/combineClasses.js +17 -0
  32. package/dist/basic/combineClasses.js.map +1 -0
  33. package/package.json +1 -1
  34. package/src/basic/Button.tsx +97 -0
  35. package/src/basic/Checkbox.tsx +48 -0
  36. package/src/basic/IElement.ts +10 -0
  37. package/src/basic/Input.tsx +30 -0
  38. package/src/basic/Panel.tsx +43 -0
  39. package/src/basic/PopupButton.tsx +132 -0
  40. package/src/basic/Switch.tsx +110 -0
  41. package/src/basic/combineClasses.ts +3 -0
@@ -0,0 +1,19 @@
1
+ export interface IButton {
2
+ id?: string;
3
+ icon?: string;
4
+ text?: string;
5
+ eventClick?: any;
6
+ href?: string;
7
+ target?: string;
8
+ title?: string;
9
+ styleDisplay?: string;
10
+ class?: string;
11
+ isVisible?: any;
12
+ subClass?: string;
13
+ }
14
+ declare function Button({ id, icon, text, eventClick, href, target, title, styleDisplay, class: className, subClass }: IButton): any;
15
+ declare namespace Button {
16
+ var className: string;
17
+ }
18
+ export default Button;
19
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/basic/Button.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,OAAO;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAqCD,iBAAwB,MAAM,CAAC,EAC3B,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,KAAK,EAAE,SAAS,EAChB,QAAQ,EACX,EAAE,OAAO,OA6BT;kBAxCuB,MAAM;;;eAAN,MAAM"}
@@ -0,0 +1,63 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/styles/CSS"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const Colors_1 = require("@web-atoms/core/dist/core/Colors");
13
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
14
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
15
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
16
+ const css = (0, CSS_1.default)((0, StyleRule_1.default)()
17
+ .padding(8)
18
+ .marginLeft(3)
19
+ .marginRight(3)
20
+ .roundBorderFull()
21
+ .display("inline-block")
22
+ .height(40)
23
+ .minWidth(40)
24
+ .defaultBoxShadow()
25
+ .cursor("pointer")
26
+ .backgroundColor(Colors_1.default.transparent)
27
+ .hoverBackgroundColor(Colors_1.default.lightGreen)
28
+ .and((0, StyleRule_1.default)(".pressed")
29
+ .backgroundColor(Colors_1.default.lightSteelBlue))
30
+ .child((0, StyleRule_1.default)("label.label")
31
+ .display("flex")
32
+ .alignItems("center")
33
+ .gap("5px")
34
+ .child((0, StyleRule_1.default)(".fad")
35
+ .fontSize(18)
36
+ .width("100%")
37
+ .color(Colors_1.default.purple.withAlphaPercent(0.5))
38
+ .cursor("pointer")
39
+ .and((0, StyleRule_1.default)(".red")
40
+ .color(Colors_1.default.red)))
41
+ .child((0, StyleRule_1.default)("span")
42
+ .whiteSpace("nowrap"))));
43
+ function Button({ id, icon, text, eventClick, href, target, title, styleDisplay, class: className, subClass }) {
44
+ const cn = className !== null && className !== void 0 ? className : (subClass
45
+ ? subClass + " " + css
46
+ : css);
47
+ if (href) {
48
+ if (text) {
49
+ return XNode_1.default.create("a", { id: id, class: cn, target: target, title: title, styleDisplay: styleDisplay },
50
+ XNode_1.default.create("label", { class: "label" },
51
+ XNode_1.default.create("i", { class: icon }),
52
+ text && XNode_1.default.create("span", { text: text })));
53
+ }
54
+ }
55
+ return XNode_1.default.create("button", { id: id, class: cn, eventClick: eventClick, title: title, styleDisplay: styleDisplay },
56
+ XNode_1.default.create("label", { class: "label" },
57
+ XNode_1.default.create("i", { class: icon }),
58
+ text && XNode_1.default.create("span", { text: text })));
59
+ }
60
+ exports.default = Button;
61
+ Button.className = css;
62
+ });
63
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/basic/Button.tsx"],"names":[],"mappings":";;;;;;;;;;;IAAA,6DAAsD;IACtD,2DAAoD;IACpD,oEAA6D;IAC7D,6DAAsD;IAgBtD,MAAM,GAAG,GAAG,IAAA,aAAG,EACX,IAAA,mBAAS,GAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,UAAU,CAAC,CAAC,CAAC;SACb,WAAW,CAAC,CAAC,CAAC;SACd,eAAe,EAAE;SACjB,OAAO,CAAC,cAAc,CAAC;SACvB,MAAM,CAAC,EAAE,CAAC;SACV,QAAQ,CAAC,EAAE,CAAC;SACZ,gBAAgB,EAAE;SAClB,MAAM,CAAC,SAAS,CAAC;SACjB,eAAe,CAAC,gBAAM,CAAC,WAAW,CAAC;SACnC,oBAAoB,CAAC,gBAAM,CAAC,UAAU,CAAC;SACvC,GAAG,CAAC,IAAA,mBAAS,EAAC,UAAU,CAAC;SACrB,eAAe,CAAC,gBAAM,CAAC,cAAc,CAAC,CAC1C;SACA,KAAK,CAAC,IAAA,mBAAS,EAAC,aAAa,CAAC;SAC1B,OAAO,CAAC,MAAM,CAAC;SACf,UAAU,CAAC,QAAQ,CAAC;SACpB,GAAG,CAAC,KAAK,CAAC;SACV,KAAK,CAAC,IAAA,mBAAS,EAAC,MAAM,CAAC;SACnB,QAAQ,CAAC,EAAE,CAAC;SACZ,KAAK,CAAC,MAAM,CAAC;SACb,KAAK,CAAC,gBAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAC1C,MAAM,CAAC,SAAS,CAAC;SACjB,GAAG,CAAC,IAAA,mBAAS,EAAC,MAAM,CAAC;SACjB,KAAK,CAAC,gBAAM,CAAC,GAAG,CAAC,CACrB,CACJ;SACA,KAAK,CAAC,IAAA,mBAAS,EAAC,MAAM,CAAC;SACnB,UAAU,CAAC,QAAQ,CAAC,CACxB,CACJ,CACJ,CAAC;IAEF,SAAwB,MAAM,CAAC,EAC3B,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,KAAK,EAAE,SAAS,EAChB,QAAQ,EACF;QAEN,MAAM,EAAE,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,CAAE,QAAQ;YAC9B,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG;YACtB,CAAC,CAAC,GAAG,CACR,CAAC;QAEF,IAAI,IAAI,EAAE;YAEN,IAAI,IAAI,EAAE;gBACN,OAAO,8BAAG,EAAE,EAAE,EAAE,EACZ,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY;oBAE1B,kCAAO,KAAK,EAAC,OAAO;wBAChB,8BAAG,KAAK,EAAE,IAAI,GAAG;wBACf,IAAI,IAAI,iCAAM,IAAI,EAAE,IAAI,GAAG,CACzB,CACR,CAAC;aACR;SACJ;QACD,OAAO,mCAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY;YAC1F,kCAAO,KAAK,EAAC,OAAO;gBAChB,8BAAG,KAAK,EAAE,IAAI,GAAG;gBACf,IAAI,IAAI,iCAAM,IAAI,EAAE,IAAI,GAAG,CACzB,CACH,CAAC;IAClB,CAAC;IAxCD,yBAwCC;IAED,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC"}
@@ -0,0 +1,5 @@
1
+ export default function Checkbox({ checked, text }: {
2
+ checked: any;
3
+ text: string;
4
+ }): any;
5
+ //# sourceMappingURL=Checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/basic/Checkbox.tsx"],"names":[],"mappings":"AA+BA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC7B,OAAO,EACP,IAAI,EACP,EAAE;IACC,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,CAAA;CACf,OAUA"}
@@ -0,0 +1,39 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/styles/CSS"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
13
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
14
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
15
+ const css = (0, CSS_1.default)((0, StyleRule_1.default)("check-box")
16
+ .display("inline-block")
17
+ .child((0, StyleRule_1.default)("label")
18
+ .display("flex")
19
+ .paddingLeft(5)
20
+ .paddingRight(5)
21
+ .child((0, StyleRule_1.default)("input[type=checkbox]")
22
+ .borderRadius(3)
23
+ .margin(0)
24
+ .padding(0)
25
+ .alignSelf("center"))
26
+ .child((0, StyleRule_1.default)("span")
27
+ .alignSelf("center")
28
+ .whiteSpace("nowrap")
29
+ .marginLeft(5)
30
+ .flexStretch())));
31
+ function Checkbox({ checked, text }) {
32
+ return XNode_1.default.create("div", { class: css },
33
+ XNode_1.default.create("label", null,
34
+ XNode_1.default.create("input", { type: "checkbox", checked: checked }),
35
+ XNode_1.default.create("span", { text: text })));
36
+ }
37
+ exports.default = Checkbox;
38
+ });
39
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/basic/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;IACA,2DAAoD;IACpD,oEAA6D;IAC7D,6DAAsD;IAEtD,MAAM,GAAG,GAAG,IAAA,aAAG,EACX,IAAA,mBAAS,EAAC,WAAW,CAAC;SACrB,OAAO,CAAC,cAAc,CAAC;SACvB,KAAK,CACF,IAAA,mBAAS,EAAC,OAAO,CAAC;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,CAAC,CAAC;SACd,YAAY,CAAC,CAAC,CAAC;SACf,KAAK,CAEF,IAAA,mBAAS,EAAC,sBAAsB,CAAC;SAChC,YAAY,CAAC,CAAC,CAAC;SACf,MAAM,CAAC,CAAC,CAAC;SACT,OAAO,CAAC,CAAC,CAAC;SACV,SAAS,CAAC,QAAQ,CAAC,CACvB;SACA,KAAK,CACF,IAAA,mBAAS,EAAC,MAAM,CAAC;SAChB,SAAS,CAAC,QAAQ,CAAC;SACnB,UAAU,CAAC,QAAQ,CAAC;SACpB,UAAU,CAAC,CAAC,CAAC;SACb,WAAW,EAAE,CAEjB,CAAC,CACT,CAAC;IAEF,SAAwB,QAAQ,CAAC,EAC7B,OAAO,EACP,IAAI,EAIP;QACG,OAAO,gCAAK,KAAK,EAAE,GAAG;YAClB;gBACI,kCACI,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,GAAG;gBACvB,iCACI,IAAI,EAAE,IAAI,GAAS,CACnB,CACN,CAAC;IACX,CAAC;IAhBD,2BAgBC"}
@@ -0,0 +1,11 @@
1
+ export default interface IElement {
2
+ subClass?: string;
3
+ icon?: string;
4
+ class?: string;
5
+ title?: string;
6
+ eventClick?: string;
7
+ href?: string;
8
+ text?: string;
9
+ styleDisplay?: any;
10
+ }
11
+ //# sourceMappingURL=IElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IElement.d.ts","sourceRoot":"","sources":["../../src/basic/IElement.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,QAAQ;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB"}
@@ -0,0 +1,13 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ });
13
+ //# sourceMappingURL=IElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IElement.js","sourceRoot":"","sources":["../../src/basic/IElement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export default function Input({ value, placeholder }: {
2
+ value: string;
3
+ placeholder: string;
4
+ }): any;
5
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/basic/Input.tsx"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC1B,KAAK,EACL,WAAW,EACd,EAAC;IACE,KAAK,EAAC,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAA;CACtB,OAKA"}
@@ -0,0 +1,30 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/styles/CSS"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
13
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
14
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
15
+ const css = (0, CSS_1.default)((0, StyleRule_1.default)("input")
16
+ .display("inline-block")
17
+ .child((0, StyleRule_1.default)("input[type=input]")
18
+ .margin(0)
19
+ .padding(5)
20
+ .height(25)
21
+ .marginRight(5)
22
+ .outline("none")
23
+ .alignSelf("center")));
24
+ function Input({ value, placeholder }) {
25
+ return XNode_1.default.create("div", { class: css },
26
+ XNode_1.default.create("input", { type: "input", placeholder: placeholder }));
27
+ }
28
+ exports.default = Input;
29
+ });
30
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/basic/Input.tsx"],"names":[],"mappings":";;;;;;;;;;;IAAA,2DAAoD;IACpD,oEAA6D;IAC7D,6DAAsD;IAEtD,MAAM,GAAG,GAAG,IAAA,aAAG,EACX,IAAA,mBAAS,EAAC,OAAO,CAAC;SACjB,OAAO,CAAC,cAAc,CAAC;SACvB,KAAK,CACF,IAAA,mBAAS,EAAC,mBAAmB,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC;SACT,OAAO,CAAC,CAAC,CAAC;SACV,MAAM,CAAC,EAAE,CAAC;SACV,WAAW,CAAC,CAAC,CAAC;SACd,OAAO,CAAC,MAAM,CAAC;SACf,SAAS,CAAC,QAAQ,CAAC,CACvB,CACJ,CAAC;IAEF,SAAwB,KAAK,CAAC,EAC1B,KAAK,EACL,WAAW,EAId;QACG,OAAO,gCAAK,KAAK,EAAE,GAAG;YACf,kCAAO,IAAI,EAAC,OAAO,EACnB,WAAW,EAAE,WAAW,GAAI,CAC7B,CAAC;IACX,CAAC;IAXD,wBAWC"}
@@ -0,0 +1,6 @@
1
+ export interface IPanelAttributes {
2
+ header?: string;
3
+ class?: string;
4
+ }
5
+ export default function Panel({ header, class: className }: IPanelAttributes, ...children: any[]): any;
6
+ //# sourceMappingURL=Panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/basic/Panel.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAcD,MAAM,CAAC,OAAO,UAAU,KAAK,CACzB,EACI,MAAM,EACN,KAAK,EAAE,SAAS,EACnB,EAAE,gBAAgB,EACnB,GAAI,QAAQ,EAAE,GAAG,EAAE,OAetB"}
@@ -0,0 +1,37 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/styles/CSS"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const Colors_1 = require("@web-atoms/core/dist/core/Colors");
13
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
14
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
15
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
16
+ const css = (0, CSS_1.default)((0, StyleRule_1.default)("panel")
17
+ .display("inline-block")
18
+ .padding(5)
19
+ .margin(3)
20
+ .borderRadius(9999)
21
+ .defaultBoxShadow()
22
+ .child((0, StyleRule_1.default)(".header")
23
+ .backgroundColor(Colors_1.default.lightGray)
24
+ .borderRadius(5)
25
+ .padding(5)));
26
+ function Panel({ header, class: className }, ...children) {
27
+ className = className ? css + " " + className : css;
28
+ if (header) {
29
+ return XNode_1.default.create("div", { class: className },
30
+ XNode_1.default.create("label", { class: "header" }, header),
31
+ ...children);
32
+ }
33
+ return XNode_1.default.create("div", { class: className }, ...children);
34
+ }
35
+ exports.default = Panel;
36
+ });
37
+ //# sourceMappingURL=Panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../src/basic/Panel.tsx"],"names":[],"mappings":";;;;;;;;;;;IAAA,6DAAsD;IACtD,2DAAoD;IACpD,oEAA6D;IAC7D,6DAAsD;IAOtD,MAAM,GAAG,GAAG,IAAA,aAAG,EAAC,IAAA,mBAAS,EAAC,OAAO,CAAC;SAC7B,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,CAAC,CAAC;SACV,MAAM,CAAC,CAAC,CAAC;SACT,YAAY,CAAC,IAAI,CAAC;SAClB,gBAAgB,EAAE;SAClB,KAAK,CAAC,IAAA,mBAAS,EAAC,SAAS,CAAC;SACtB,eAAe,CAAC,gBAAM,CAAC,SAAS,CAAC;SACjC,YAAY,CAAC,CAAC,CAAC;SACf,OAAO,CAAC,CAAC,CAAC,CACd,CAAC,CAAC;IAEP,SAAwB,KAAK,CACzB,EACI,MAAM,EACN,KAAK,EAAE,SAAS,EACD,EACnB,GAAI,QAAe;QAEnB,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAEpD,IAAI,MAAM,EAAE;YACR,OAAO,gCAAK,KAAK,EAAE,SAAS;gBACxB,kCAAO,KAAK,EAAC,QAAQ,IAAE,MAAM,CAAS;mBAChC,QAAQ,CACZ,CAAC;SACV;QAED,OAAO,gCAAK,KAAK,EAAE,SAAS,OAClB,QAAQ,CACZ,CAAC;IAEX,CAAC;IApBD,wBAoBC"}
@@ -0,0 +1,16 @@
1
+ import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
2
+ import IElement from "./IElement";
3
+ export interface IMenuItem {
4
+ label?: string;
5
+ icon?: string;
6
+ eventClick?: any;
7
+ href?: string;
8
+ target?: string;
9
+ }
10
+ export declare function MenuItem(menu: IMenuItem): IMenuItem;
11
+ export declare class MenuItemTemplate extends AtomControl {
12
+ data: IMenuItem;
13
+ create(): void;
14
+ }
15
+ export default function PopupButton(props: IElement, ...menus: IMenuItem[]): any;
16
+ //# sourceMappingURL=PopupButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupButton.d.ts","sourceRoot":"","sources":["../../src/basic/PopupButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAM5E,OAAO,QAAQ,MAAM,YAAY,CAAC;AAYlC,MAAM,WAAW,SAAS;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,aAUvC;AAED,qBAAa,gBAAiB,SAAQ,WAAW;IAEtC,IAAI,EAAE,SAAS,CAAC;IAEhB,MAAM;CAahB;AAiED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,KAAK,EAAE,QAAQ,EAAG,GAAI,KAAK,EAAE,SAAS,EAAE,OAK5E"}
@@ -0,0 +1,118 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ (function (factory) {
11
+ if (typeof module === "object" && typeof module.exports === "object") {
12
+ var v = factory(require, exports);
13
+ if (v !== undefined) module.exports = v;
14
+ }
15
+ else if (typeof define === "function" && define.amd) {
16
+ define(["require", "exports", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/controls/AtomItemsControl", "@web-atoms/core/dist/web/services/PopupService", "@web-atoms/core/dist/web/styles/CSS", "./combineClasses", "./Button"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.MenuItemTemplate = exports.MenuItem = void 0;
22
+ const Bind_1 = require("@web-atoms/core/dist/core/Bind");
23
+ const BindableProperty_1 = require("@web-atoms/core/dist/core/BindableProperty");
24
+ const Colors_1 = require("@web-atoms/core/dist/core/Colors");
25
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
26
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
27
+ const AtomControl_1 = require("@web-atoms/core/dist/web/controls/AtomControl");
28
+ const AtomItemsControl_1 = require("@web-atoms/core/dist/web/controls/AtomItemsControl");
29
+ const PopupService_1 = require("@web-atoms/core/dist/web/services/PopupService");
30
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
31
+ const combineClasses_1 = require("./combineClasses");
32
+ const Button_1 = require("./Button");
33
+ const menuCss = (0, CSS_1.default)((0, StyleRule_1.default)()
34
+ .child((0, StyleRule_1.default)(".menu")
35
+ .padding(5)
36
+ .margin(3)
37
+ .borderRadius(5)
38
+ .cursor("pointer")
39
+ .hoverBackgroundColor(Colors_1.default.lightGreen)));
40
+ function MenuItem(menu) {
41
+ // removing undefined.. as binding will ignore undefined
42
+ var _a, _b, _c, _d, _e;
43
+ (_a = menu.label) !== null && _a !== void 0 ? _a : (menu.label = null);
44
+ (_b = menu.icon) !== null && _b !== void 0 ? _b : (menu.icon = null);
45
+ (_c = menu.eventClick) !== null && _c !== void 0 ? _c : (menu.eventClick = null);
46
+ (_d = menu.href) !== null && _d !== void 0 ? _d : (menu.href = null);
47
+ (_e = menu.target) !== null && _e !== void 0 ? _e : (menu.target = null);
48
+ return menu;
49
+ }
50
+ exports.MenuItem = MenuItem;
51
+ class MenuItemTemplate extends AtomControl_1.AtomControl {
52
+ create() {
53
+ this.render(XNode_1.default.create("div", { class: "menu", eventClick: Bind_1.default.event(() => this.app.runAsync(() => this.data.eventClick())) },
54
+ XNode_1.default.create("i", { styleDisplay: Bind_1.default.oneWay(() => this.data.icon ? "" : "none"), class: Bind_1.default.oneWay(() => this.data.icon) }),
55
+ XNode_1.default.create("span", { styleDisplay: Bind_1.default.oneWay(() => this.data.label ? "" : "none"), text: Bind_1.default.oneWay(() => this.data.label) })));
56
+ }
57
+ }
58
+ exports.MenuItemTemplate = MenuItemTemplate;
59
+ class PopupMenuButton extends AtomControl_1.AtomControl {
60
+ constructor(app, e) {
61
+ super(app, e !== null && e !== void 0 ? e : document.createElement("button"));
62
+ }
63
+ preCreate() {
64
+ super.preCreate();
65
+ this.popup = null;
66
+ this.text = null;
67
+ this.icon = null;
68
+ this.subClass = null;
69
+ this.render(XNode_1.default.create("button", { class: Bind_1.default.oneWay(() => (0, combineClasses_1.default)(Button_1.default.className, this.popup ? "pressed" : null, this.subClass)), eventClick: Bind_1.default.event(() => this.openPopup()) },
70
+ XNode_1.default.create("label", { class: "label" },
71
+ XNode_1.default.create("i", { class: Bind_1.default.oneWay(() => this.icon) }),
72
+ XNode_1.default.create("span", { styleDisplay: Bind_1.default.oneWay(() => this.text ? "" : "none"), text: Bind_1.default.oneWay(() => this.text) }))));
73
+ }
74
+ openPopup() {
75
+ if (this.popup) {
76
+ this.popup.dispose();
77
+ return;
78
+ }
79
+ const items = new AtomItemsControl_1.AtomItemsControl(this.app, document.createElement("div"));
80
+ items.element.classList.add(menuCss);
81
+ items.itemTemplate = MenuItemTemplate;
82
+ items.items = this.menus;
83
+ items.registerDisposable({
84
+ dispose: () => {
85
+ this.popup = null;
86
+ }
87
+ });
88
+ items.bindEvent(items.element, "click", () => {
89
+ setTimeout(() => {
90
+ this.openPopup();
91
+ }, 100);
92
+ });
93
+ const popupService = this.app.resolve(PopupService_1.default);
94
+ this.popup = popupService.show(this.element, items);
95
+ }
96
+ }
97
+ __decorate([
98
+ BindableProperty_1.BindableProperty,
99
+ __metadata("design:type", String)
100
+ ], PopupMenuButton.prototype, "subClass", void 0);
101
+ __decorate([
102
+ BindableProperty_1.BindableProperty,
103
+ __metadata("design:type", String)
104
+ ], PopupMenuButton.prototype, "icon", void 0);
105
+ __decorate([
106
+ BindableProperty_1.BindableProperty,
107
+ __metadata("design:type", String)
108
+ ], PopupMenuButton.prototype, "text", void 0);
109
+ __decorate([
110
+ BindableProperty_1.BindableProperty,
111
+ __metadata("design:type", Array)
112
+ ], PopupMenuButton.prototype, "menus", void 0);
113
+ function PopupButton(props, ...menus) {
114
+ return XNode_1.default.create(PopupMenuButton, Object.assign({}, props, { menus: menus }));
115
+ }
116
+ exports.default = PopupButton;
117
+ });
118
+ //# sourceMappingURL=PopupButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupButton.js","sourceRoot":"","sources":["../../src/basic/PopupButton.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface ISwitch {
2
+ checked: any;
3
+ onLabel?: string;
4
+ offLabel?: string;
5
+ }
6
+ export default function Switch({ checked, onLabel, offLabel }: ISwitch): any;
7
+ //# sourceMappingURL=Switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/basic/Switch.tsx"],"names":[],"mappings":"AA4FA,MAAM,WAAW,OAAO;IACvB,OAAO,MAAC;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,EAAE,OAAO,OAOT"}
@@ -0,0 +1,96 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/styles/CSS"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
13
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
14
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
15
+ /**
16
+ * Original source = https://www.htmllion.com/css3-toggle-switch-button.html
17
+ */
18
+ const css = (0, CSS_1.default)((0, StyleRule_1.default)()
19
+ .position("relative")
20
+ .display("inline-block")
21
+ .verticalAlign("top")
22
+ .width(70)
23
+ .height(30)
24
+ .padding(3)
25
+ .margin("0 10px 10px 0")
26
+ .background("linear-gradient(to bottom, #eeeeee, #FFFFFF 25px)")
27
+ .backgroundImage("-webkit-linear-gradient(top, #eeeeee, #FFFFFF 25px)")
28
+ .borderRadius(18)
29
+ .boxShadow("inset 0 -1px white, inset 0 1px 1px rgba(0, 0, 0, 0.05)")
30
+ .cursor("pointer")
31
+ .boxSizing("content-box")
32
+ .child((0, StyleRule_1.default)(".switch-input")
33
+ .absolutePosition({ top: 0, left: 0 })
34
+ .opacity(0)
35
+ .boxSizing("content-box"))
36
+ .child((0, StyleRule_1.default)(".switch-label")
37
+ .position("relative")
38
+ .display("block")
39
+ .height("inherit")
40
+ .fontSize(10)
41
+ .textTransform("uppercase")
42
+ .backgroundColor("#eceeef")
43
+ .borderRadius("inherit")
44
+ .boxShadow("inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.15)")
45
+ .boxSizing("content-box")
46
+ .and((0, StyleRule_1.default)(":before, .switch-label:after")
47
+ .position("absolute")
48
+ .top("50%")
49
+ .marginTop("-.5em")
50
+ .lineHeight("1")
51
+ .webkitTransition("inherit")
52
+ .transition("inherit")
53
+ .boxSizing("content-box"))
54
+ .and((0, StyleRule_1.default)(":before")
55
+ .content("attr(data-off)")
56
+ .right(11)
57
+ .color("#aaaaaa")
58
+ .textShadow("0 1px rgba(255, 255, 255, 0.5)"))
59
+ .and((0, StyleRule_1.default)(":after")
60
+ .content("attr(data-on)")
61
+ .left(11)
62
+ .color("#FFFFFF")
63
+ .textShadow("0 1px rgba(0, 0, 0, 0.2)")
64
+ .opacity("0")))
65
+ .child((0, StyleRule_1.default)(".switch-input:checked ~ .switch-label")
66
+ .backgroundColor("#E1B42B")
67
+ .boxShadow("inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 3px rgba(0, 0, 0, 0.2)"))
68
+ .child((0, StyleRule_1.default)(".switch-input:checked ~ .switch-label:before")
69
+ .opacity("0"))
70
+ .child((0, StyleRule_1.default)(".switch-input:checked ~ .switch-label:after")
71
+ .opacity("1"))
72
+ .child((0, StyleRule_1.default)(".switch-handle")
73
+ .absolutePosition({ top: 4, left: 4, width: 28, height: 28 })
74
+ .background("linear-gradient(to bottom, #FFFFFF 40%, #f0f0f0)")
75
+ .borderRadius("100%")
76
+ .boxShadow("1px 1px 5px rgba(0, 0, 0, 0.2)")
77
+ .and((0, StyleRule_1.default)(":before")
78
+ .content("")
79
+ .absolutePosition({ top: "50%", left: "50%", width: 12, height: 12 })
80
+ .background("linear-gradient(to bottom, #eeeeee, #FFFFFF)")
81
+ .borderRadius(6)
82
+ .boxShadow("inset 0 1px rgba(0, 0, 0, 0.02)")))
83
+ .child((0, StyleRule_1.default)(".switch-input:checked ~ .switch-handle")
84
+ .left(44)
85
+ .boxShadow("-1px 1px 5px rgba(0, 0, 0, 0.2)"))
86
+ .child((0, StyleRule_1.default)(".switch-label, .switch-handle")
87
+ .transition("All 0.3s ease")));
88
+ function Switch({ checked, onLabel, offLabel }) {
89
+ return XNode_1.default.create("label", { class: css },
90
+ XNode_1.default.create("input", { class: "switch-input", type: "checkbox", checked: checked }),
91
+ XNode_1.default.create("span", { class: "switch-label", "data-on": onLabel !== null && onLabel !== void 0 ? onLabel : "On", "data-off": offLabel !== null && offLabel !== void 0 ? offLabel : "Off" }),
92
+ XNode_1.default.create("span", { class: "switch-handle" }));
93
+ }
94
+ exports.default = Switch;
95
+ });
96
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../src/basic/Switch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export default function combineClasses(...names: string[]): string;
2
+ //# sourceMappingURL=combineClasses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineClasses.d.ts","sourceRoot":"","sources":["../../src/basic/combineClasses.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,GAAI,KAAK,EAAE,MAAM,EAAE,UAEzD"}
@@ -0,0 +1,17 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ function combineClasses(...names) {
13
+ return names.filter((n) => n).join(" ");
14
+ }
15
+ exports.default = combineClasses;
16
+ });
17
+ //# sourceMappingURL=combineClasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineClasses.js","sourceRoot":"","sources":["../../src/basic/combineClasses.ts"],"names":[],"mappings":";;;;;;;;;;;IAAA,SAAwB,cAAc,CAAC,GAAI,KAAe;QACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAFD,iCAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web-atoms/web-controls",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "description": "HTML controls for web atoms core",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -0,0 +1,97 @@
1
+ import Colors from "@web-atoms/core/dist/core/Colors";
2
+ import XNode from "@web-atoms/core/dist/core/XNode";
3
+ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
4
+ import CSS from "@web-atoms/core/dist/web/styles/CSS";
5
+
6
+ export interface IButton {
7
+ id?: string;
8
+ icon?: string;
9
+ text?: string;
10
+ eventClick?: any;
11
+ href?: string;
12
+ target?: string;
13
+ title?: string;
14
+ styleDisplay?: string;
15
+ class?: string;
16
+ isVisible?: any;
17
+ subClass?: string;
18
+ }
19
+
20
+ const css = CSS(
21
+ StyleRule()
22
+ .padding(8)
23
+ .marginLeft(3)
24
+ .marginRight(3)
25
+ .roundBorderFull()
26
+ .display("inline-block")
27
+ .height(40)
28
+ .minWidth(40)
29
+ .defaultBoxShadow()
30
+ .cursor("pointer")
31
+ .backgroundColor(Colors.transparent)
32
+ .hoverBackgroundColor(Colors.lightGreen)
33
+ .and(StyleRule(".pressed")
34
+ .backgroundColor(Colors.lightSteelBlue)
35
+ )
36
+ .child(StyleRule("label.label")
37
+ .display("flex")
38
+ .alignItems("center")
39
+ .gap("5px")
40
+ .child(StyleRule(".fad")
41
+ .fontSize(18)
42
+ .width("100%")
43
+ .color(Colors.purple.withAlphaPercent(0.5))
44
+ .cursor("pointer")
45
+ .and(StyleRule(".red")
46
+ .color(Colors.red)
47
+ )
48
+ )
49
+ .child(StyleRule("span")
50
+ .whiteSpace("nowrap")
51
+ )
52
+ )
53
+ );
54
+
55
+ export default function Button({
56
+ id,
57
+ icon,
58
+ text,
59
+ eventClick,
60
+ href,
61
+ target,
62
+ title,
63
+ styleDisplay,
64
+ class: className,
65
+ subClass
66
+ }: IButton) {
67
+
68
+ const cn = className ?? ( subClass
69
+ ? subClass + " " + css
70
+ : css
71
+ );
72
+
73
+ if (href) {
74
+
75
+ if (text) {
76
+ return <a id={id}
77
+ class={cn}
78
+ target={target}
79
+ title={title}
80
+ styleDisplay={styleDisplay}
81
+ >
82
+ <label class="label">
83
+ <i class={icon}/>
84
+ { text && <span text={text}/> }
85
+ </label>
86
+ </a>;
87
+ }
88
+ }
89
+ return <button id={id} class={cn} eventClick={eventClick} title={title} styleDisplay={styleDisplay}>
90
+ <label class="label">
91
+ <i class={icon}/>
92
+ { text && <span text={text}/> }
93
+ </label>
94
+ </button>;
95
+ }
96
+
97
+ Button.className = css;
@@ -0,0 +1,48 @@
1
+ import Colors from "@web-atoms/core/dist/core/Colors";
2
+ import XNode from "@web-atoms/core/dist/core/XNode";
3
+ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
4
+ import CSS from "@web-atoms/core/dist/web/styles/CSS";
5
+
6
+ const css = CSS(
7
+ StyleRule("check-box")
8
+ .display("inline-block")
9
+ .child(
10
+ StyleRule("label")
11
+ .display("flex")
12
+ .paddingLeft(5)
13
+ .paddingRight(5)
14
+ .child(
15
+
16
+ StyleRule("input[type=checkbox]")
17
+ .borderRadius(3)
18
+ .margin(0)
19
+ .padding(0)
20
+ .alignSelf("center")
21
+ )
22
+ .child(
23
+ StyleRule("span")
24
+ .alignSelf("center")
25
+ .whiteSpace("nowrap")
26
+ .marginLeft(5)
27
+ .flexStretch()
28
+
29
+ ))
30
+ );
31
+
32
+ export default function Checkbox({
33
+ checked,
34
+ text
35
+ }: {
36
+ checked: any,
37
+ text: string
38
+ }) {
39
+ return <div class={css}>
40
+ <label>
41
+ <input
42
+ type="checkbox"
43
+ checked={checked}/>
44
+ <span
45
+ text={text}></span>
46
+ </label>
47
+ </div>;
48
+ }
@@ -0,0 +1,10 @@
1
+ export default interface IElement {
2
+ subClass?: string;
3
+ icon?: string;
4
+ class?: string;
5
+ title?: string;
6
+ eventClick?: string;
7
+ href?: string;
8
+ text?: string;
9
+ styleDisplay?: any;
10
+ }
@@ -0,0 +1,30 @@
1
+ import XNode from "@web-atoms/core/dist/core/XNode";
2
+ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
3
+ import CSS from "@web-atoms/core/dist/web/styles/CSS";
4
+
5
+ const css = CSS(
6
+ StyleRule("input")
7
+ .display("inline-block")
8
+ .child(
9
+ StyleRule("input[type=input]")
10
+ .margin(0)
11
+ .padding(5)
12
+ .height(25)
13
+ .marginRight(5)
14
+ .outline("none")
15
+ .alignSelf("center")
16
+ )
17
+ );
18
+
19
+ export default function Input({
20
+ value,
21
+ placeholder
22
+ }:{
23
+ value:string,
24
+ placeholder: string
25
+ }){
26
+ return <div class={css}>
27
+ <input type="input"
28
+ placeholder={placeholder} />
29
+ </div>;
30
+ }
@@ -0,0 +1,43 @@
1
+ import Colors from "@web-atoms/core/dist/core/Colors";
2
+ import XNode from "@web-atoms/core/dist/core/XNode";
3
+ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
4
+ import CSS from "@web-atoms/core/dist/web/styles/CSS";
5
+
6
+ export interface IPanelAttributes {
7
+ header?: string;
8
+ class?: string;
9
+ }
10
+
11
+ const css = CSS(StyleRule("panel")
12
+ .display("inline-block")
13
+ .padding(5)
14
+ .margin(3)
15
+ .borderRadius(9999)
16
+ .defaultBoxShadow()
17
+ .child(StyleRule(".header")
18
+ .backgroundColor(Colors.lightGray)
19
+ .borderRadius(5)
20
+ .padding(5)
21
+ ));
22
+
23
+ export default function Panel(
24
+ {
25
+ header,
26
+ class: className
27
+ }: IPanelAttributes,
28
+ ... children: any[]) {
29
+
30
+ className = className ? css + " " + className : css;
31
+
32
+ if (header) {
33
+ return <div class={className}>
34
+ <label class="header">{header}</label>
35
+ { ... children }
36
+ </div>;
37
+ }
38
+
39
+ return <div class={className}>
40
+ { ... children }
41
+ </div>;
42
+
43
+ }
@@ -0,0 +1,132 @@
1
+ import Bind from "@web-atoms/core/dist/core/Bind";
2
+ import { BindableProperty } from "@web-atoms/core/dist/core/BindableProperty";
3
+ import Colors from "@web-atoms/core/dist/core/Colors";
4
+ import { IDisposable } from "@web-atoms/core/dist/core/types";
5
+ import XNode from "@web-atoms/core/dist/core/XNode";
6
+ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
7
+ import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
8
+ import { AtomItemsControl } from "@web-atoms/core/dist/web/controls/AtomItemsControl";
9
+ import PopupService from "@web-atoms/core/dist/web/services/PopupService";
10
+ import CSS from "@web-atoms/core/dist/web/styles/CSS";
11
+ import combineClasses from "./combineClasses";
12
+ import Button from "./Button";
13
+ import IElement from "./IElement";
14
+
15
+ const menuCss = CSS(StyleRule()
16
+ .child(StyleRule(".menu")
17
+ .padding(5)
18
+ .margin(3)
19
+ .borderRadius(5)
20
+ .cursor("pointer")
21
+ .hoverBackgroundColor(Colors.lightGreen)
22
+ )
23
+ );
24
+
25
+ export interface IMenuItem {
26
+ label?: string;
27
+ icon?: string;
28
+ eventClick?: any;
29
+ href?: string;
30
+ target?: string;
31
+ }
32
+
33
+ export function MenuItem(menu: IMenuItem) {
34
+
35
+ // removing undefined.. as binding will ignore undefined
36
+
37
+ menu.label ??= null;
38
+ menu.icon ??= null;
39
+ menu.eventClick ??= null;
40
+ menu.href ??= null;
41
+ menu.target ??= null;
42
+ return menu;
43
+ }
44
+
45
+ export class MenuItemTemplate extends AtomControl {
46
+
47
+ public data: IMenuItem;
48
+
49
+ public create() {
50
+ this.render(<div
51
+ class="menu"
52
+ eventClick={Bind.event(() => this.app.runAsync(() => this.data.eventClick()))}
53
+ >
54
+ <i
55
+ styleDisplay={Bind.oneWay(() => this.data.icon ? "" : "none")}
56
+ class={Bind.oneWay(() => this.data.icon)}/>
57
+ <span
58
+ styleDisplay={Bind.oneWay(() => this.data.label ? "" : "none")}
59
+ text={Bind.oneWay(() => this.data.label)}></span>
60
+ </div>);
61
+ }
62
+ }
63
+
64
+ class PopupMenuButton extends AtomControl {
65
+
66
+ @BindableProperty
67
+ public subClass: string;
68
+
69
+ @BindableProperty
70
+ public icon: string;
71
+
72
+ @BindableProperty
73
+ public text: string;
74
+
75
+ @BindableProperty
76
+ public menus: IMenuItem[];
77
+
78
+ private popup: IDisposable;
79
+
80
+ constructor(app, e) {
81
+ super(app, e ?? document.createElement("button"));
82
+ }
83
+
84
+ public preCreate() {
85
+ super.preCreate();
86
+ this.popup = null;
87
+ this.text = null;
88
+ this.icon = null;
89
+ this.subClass = null;
90
+ this.render(<button
91
+ class={Bind.oneWay(() => combineClasses(Button.className, this.popup ? "pressed" : null, this.subClass))}
92
+ eventClick={Bind.event(() => this.openPopup())}>
93
+ <label class="label">
94
+ <i class={Bind.oneWay(() => this.icon)}/>
95
+ <span
96
+ styleDisplay={Bind.oneWay(() => this.text ? "" : "none")}
97
+ text={Bind.oneWay(() => this.text)}/>
98
+ </label>
99
+ </button>);
100
+ }
101
+
102
+ private openPopup() {
103
+ if (this.popup) {
104
+ this.popup.dispose();
105
+ return;
106
+ }
107
+
108
+ const items = new AtomItemsControl(this.app, document.createElement("div"));
109
+ items.element.classList.add(menuCss);
110
+ items.itemTemplate = MenuItemTemplate;
111
+ items.items = this.menus;
112
+ items.registerDisposable({
113
+ dispose: () => {
114
+ this.popup = null;
115
+ }
116
+ });
117
+ items.bindEvent(items.element, "click", () => {
118
+ setTimeout(() => {
119
+ this.openPopup();
120
+ }, 100);
121
+ });
122
+ const popupService = this.app.resolve(PopupService);
123
+ this.popup = popupService.show(this.element, items);
124
+ }
125
+ }
126
+
127
+ export default function PopupButton( props: IElement, ... menus: IMenuItem[]) {
128
+ return <PopupMenuButton
129
+ { ... props }
130
+ menus={menus}
131
+ />;
132
+ }
@@ -0,0 +1,110 @@
1
+ import XNode from "@web-atoms/core/dist/core/XNode";
2
+ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
3
+ import CSS from "@web-atoms/core/dist/web/styles/CSS";
4
+
5
+ /**
6
+ * Original source = https://www.htmllion.com/css3-toggle-switch-button.html
7
+ */
8
+
9
+ const css = CSS(StyleRule()
10
+ .position("relative")
11
+ .display("inline-block")
12
+ .verticalAlign("top")
13
+ .width(70)
14
+ .height(30)
15
+ .padding(3)
16
+ .margin("0 10px 10px 0")
17
+ .background("linear-gradient(to bottom, #eeeeee, #FFFFFF 25px)" as any)
18
+ .backgroundImage("-webkit-linear-gradient(top, #eeeeee, #FFFFFF 25px)")
19
+ .borderRadius(18)
20
+ .boxShadow("inset 0 -1px white, inset 0 1px 1px rgba(0, 0, 0, 0.05)")
21
+ .cursor("pointer")
22
+ .boxSizing("content-box")
23
+ .child(StyleRule(".switch-input")
24
+ .absolutePosition({ top: 0, left: 0})
25
+ .opacity(0 as any)
26
+ .boxSizing("content-box")
27
+ )
28
+ .child(StyleRule(".switch-label")
29
+ .position("relative")
30
+ .display("block")
31
+ .height("inherit")
32
+ .fontSize(10)
33
+ .textTransform("uppercase")
34
+ .backgroundColor("#eceeef")
35
+ .borderRadius("inherit")
36
+ .boxShadow("inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.15)")
37
+ .boxSizing("content-box")
38
+ .and(StyleRule(":before, .switch-label:after")
39
+ .position("absolute")
40
+ .top("50%")
41
+ .marginTop("-.5em")
42
+ .lineHeight("1")
43
+ .webkitTransition("inherit")
44
+ .transition("inherit")
45
+ .boxSizing("content-box")
46
+ )
47
+ .and(StyleRule(":before")
48
+ .content("attr(data-off)" as any)
49
+ .right(11)
50
+ .color("#aaaaaa")
51
+ .textShadow("0 1px rgba(255, 255, 255, 0.5)")
52
+ )
53
+ .and(StyleRule(":after")
54
+ .content("attr(data-on)" as any)
55
+ .left(11)
56
+ .color("#FFFFFF")
57
+ .textShadow("0 1px rgba(0, 0, 0, 0.2)")
58
+ .opacity("0")
59
+ )
60
+ )
61
+ .child(StyleRule(".switch-input:checked ~ .switch-label")
62
+ .backgroundColor("#E1B42B")
63
+ .boxShadow("inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 3px rgba(0, 0, 0, 0.2)")
64
+ )
65
+ .child(StyleRule(".switch-input:checked ~ .switch-label:before")
66
+ .opacity("0")
67
+ )
68
+ .child(StyleRule(".switch-input:checked ~ .switch-label:after")
69
+ .opacity("1")
70
+ )
71
+ .child(StyleRule(".switch-handle")
72
+ .absolutePosition({top: 4, left: 4, width: 28, height: 28})
73
+ .background("linear-gradient(to bottom, #FFFFFF 40%, #f0f0f0)" as any)
74
+ .borderRadius("100%")
75
+ .boxShadow("1px 1px 5px rgba(0, 0, 0, 0.2)")
76
+ .and(StyleRule(":before")
77
+ .content("")
78
+ .absolutePosition({ top: "50%", left: "50%", width: 12, height: 12 })
79
+ .background("linear-gradient(to bottom, #eeeeee, #FFFFFF)" as any)
80
+ .borderRadius(6)
81
+ .boxShadow("inset 0 1px rgba(0, 0, 0, 0.02)")
82
+ )
83
+ )
84
+ .child(StyleRule(".switch-input:checked ~ .switch-handle")
85
+ .left(44)
86
+ .boxShadow("-1px 1px 5px rgba(0, 0, 0, 0.2)")
87
+ )
88
+ .child(StyleRule(".switch-label, .switch-handle")
89
+ .transition("All 0.3s ease")
90
+ )
91
+ );
92
+
93
+ export interface ISwitch {
94
+ checked;
95
+ onLabel?: string;
96
+ offLabel?: string;
97
+ }
98
+
99
+ export default function Switch({
100
+ checked,
101
+ onLabel,
102
+ offLabel
103
+ }: ISwitch) {
104
+
105
+ return <label class={css}>
106
+ <input class="switch-input" type="checkbox" checked={checked} />
107
+ <span class="switch-label" data-on={onLabel ?? "On"} data-off={offLabel ?? "Off"}></span>
108
+ <span class="switch-handle"></span>
109
+ </label>;
110
+ }
@@ -0,0 +1,3 @@
1
+ export default function combineClasses(... names: string[]) {
2
+ return names.filter((n) => n).join(" ");
3
+ }