@dvrd/dvr-controls 1.0.6 → 1.0.9

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 (177) hide show
  1. package/package.json +1 -1
  2. package/src/js/button/button.tsx +0 -102
  3. package/src/js/button/buttonController.tsx +0 -179
  4. package/src/js/button/closeButton.tsx +0 -29
  5. package/src/js/button/dvrdButton.tsx +0 -128
  6. package/src/js/button/outlinedButton.tsx +0 -105
  7. package/src/js/button/simpleButton.tsx +0 -163
  8. package/src/js/button/style/button.scss +0 -95
  9. package/src/js/button/style/closeButton.scss +0 -15
  10. package/src/js/button/style/dvrdButton.scss +0 -30
  11. package/src/js/button/style/outlinedButton.scss +0 -84
  12. package/src/js/button/style/simpleButton.scss +0 -80
  13. package/src/js/carousel/DVRCarousel.tsx +0 -163
  14. package/src/js/carousel/DVRCarouselController.tsx +0 -95
  15. package/src/js/carousel/style/DVRCarousel.scss +0 -38
  16. package/src/js/checkbox/checkbox.tsx +0 -147
  17. package/src/js/checkbox/checkboxController.tsx +0 -131
  18. package/src/js/checkbox/style/checkbox.scss +0 -109
  19. package/src/js/colorPicker/colorPicker.tsx +0 -118
  20. package/src/js/colorPicker/style/colorPicker.scss +0 -20
  21. package/src/js/date/dvrdDatePicker.tsx +0 -357
  22. package/src/js/date/style/dvrdDatePicker.scss +0 -307
  23. package/src/js/dialog/dialog.tsx +0 -207
  24. package/src/js/dialog/dialogController.tsx +0 -70
  25. package/src/js/dialog/inlineDialog.tsx +0 -127
  26. package/src/js/dialog/style/dialog.scss +0 -61
  27. package/src/js/events/withEvents.tsx +0 -40
  28. package/src/js/head/DVRHead.tsx +0 -49
  29. package/src/js/header/DVRHeader.tsx +0 -413
  30. package/src/js/header/style/header.scss +0 -206
  31. package/src/js/icon/awesomeIcon.tsx +0 -46
  32. package/src/js/image/imageUpload.tsx +0 -69
  33. package/src/js/image/style/imageUpload.scss +0 -11
  34. package/src/js/info/info.tsx +0 -136
  35. package/src/js/info/style/info.scss +0 -39
  36. package/src/js/input/animated/animatedTextField.tsx +0 -159
  37. package/src/js/input/date/dateField.tsx +0 -360
  38. package/src/js/input/date/dateFieldController.tsx +0 -245
  39. package/src/js/input/date/datePicker/datePicker.tsx +0 -186
  40. package/src/js/input/date/datePicker/style/datePicker.scss +0 -102
  41. package/src/js/input/date/input/dateInput.tsx +0 -213
  42. package/src/js/input/date/style/dateField.scss +0 -40
  43. package/src/js/input/date/timePicker/style/timePicker.scss +0 -95
  44. package/src/js/input/date/timePicker/timePicker.tsx +0 -143
  45. package/src/js/input/editor/DVREditor.tsx +0 -21
  46. package/src/js/input/number/numberInput.tsx +0 -157
  47. package/src/js/input/password/passwordInput.tsx +0 -140
  48. package/src/js/input/password/passwordRules.tsx +0 -48
  49. package/src/js/input/password/style/passwordInput.scss +0 -39
  50. package/src/js/input/password/style/passwordRules.scss +0 -41
  51. package/src/js/input/simple/style/simpleInput.scss +0 -98
  52. package/src/js/input/simple/v2/simpleInputV2.tsx +0 -178
  53. package/src/js/input/style/input.scss +0 -138
  54. package/src/js/input/v2/inputController_v2.tsx +0 -250
  55. package/src/js/input/v2/input_v2.tsx +0 -7
  56. package/src/js/label/label.tsx +0 -196
  57. package/src/js/label/style/label.scss +0 -4
  58. package/src/js/link/link.tsx +0 -38
  59. package/src/js/link/style/link.scss +0 -30
  60. package/src/js/loader/loader.tsx +0 -79
  61. package/src/js/loader/loaderController.tsx +0 -61
  62. package/src/js/loader/style/loader.scss +0 -53
  63. package/src/js/media/media.tsx +0 -72
  64. package/src/js/navigator/navigator.tsx +0 -51
  65. package/src/js/optionsList/dvrdOptionsList.tsx +0 -112
  66. package/src/js/optionsList/style/dvrdOptionsList.scss +0 -84
  67. package/src/js/optionsMenu/optionsMenu.tsx +0 -187
  68. package/src/js/optionsMenu/style/optionsMenu.scss +0 -70
  69. package/src/js/pdf/element/pdfElement.tsx +0 -315
  70. package/src/js/pdf/element/style/pdfElement.scss +0 -111
  71. package/src/js/pdf/history/pdfHistory.ts +0 -57
  72. package/src/js/pdf/image/pdfImage.tsx +0 -175
  73. package/src/js/pdf/image/style/pdfImage.scss +0 -34
  74. package/src/js/pdf/invoiceTable/pdfInvoiceTable.tsx +0 -176
  75. package/src/js/pdf/invoiceTable/style/pdfInvoiceTable.scss +0 -32
  76. package/src/js/pdf/pdfTemplateCreator.tsx +0 -278
  77. package/src/js/pdf/settings/buttons/iconButton.tsx +0 -49
  78. package/src/js/pdf/settings/buttons/style/iconButton.scss +0 -50
  79. package/src/js/pdf/settings/image/pdfImageSettings.tsx +0 -82
  80. package/src/js/pdf/settings/image/style/pdfImageSettings.scss +0 -9
  81. package/src/js/pdf/settings/invoiceTable/pdfInvoiceTableSettings.tsx +0 -141
  82. package/src/js/pdf/settings/invoiceTable/style/pdfInvoiceTableSettings.scss +0 -38
  83. package/src/js/pdf/settings/pdfElementSettings.tsx +0 -86
  84. package/src/js/pdf/settings/style/pdfElementSettings.scss +0 -56
  85. package/src/js/pdf/settings/text/pdfTextSettings.tsx +0 -202
  86. package/src/js/pdf/settings/text/style/pdfTextSettings.scss +0 -94
  87. package/src/js/pdf/style/pdfTemplateCreator.scss +0 -118
  88. package/src/js/pdf/text/pdfText.tsx +0 -267
  89. package/src/js/pdf/text/style/pdfText.scss +0 -22
  90. package/src/js/popup/style/withBackground.scss +0 -29
  91. package/src/js/popup/withBackground.tsx +0 -102
  92. package/src/js/select/async/asyncSelect.tsx +0 -46
  93. package/src/js/select/async/style/asyncSelect.scss +0 -23
  94. package/src/js/select/dvrdSelect.tsx +0 -185
  95. package/src/js/select/dvrdSelectController.tsx +0 -81
  96. package/src/js/select/select.tsx +0 -310
  97. package/src/js/select/selectController.tsx +0 -341
  98. package/src/js/select/style/dvrdSelect.scss +0 -140
  99. package/src/js/select/style/select.scss +0 -199
  100. package/src/js/sidebarMenu/sidebarMenu.tsx +0 -165
  101. package/src/js/sidebarMenu/style/sidebarMenu.scss +0 -161
  102. package/src/js/slider/DVRSlider.tsx +0 -107
  103. package/src/js/slider/style/DVRSlider.scss +0 -88
  104. package/src/js/snackbar/snackbar.tsx +0 -72
  105. package/src/js/snackbar/snackbarController.tsx +0 -104
  106. package/src/js/snackbar/style/snackbar.scss +0 -46
  107. package/src/js/switch/dvrdSwitch.tsx +0 -53
  108. package/src/js/switch/style/dvrdSwitch.scss +0 -47
  109. package/src/js/switch/style/switch.scss +0 -84
  110. package/src/js/switch/switch.tsx +0 -115
  111. package/src/js/switch/switchController.tsx +0 -97
  112. package/src/js/textField/dvrdInput.tsx +0 -217
  113. package/src/js/textField/dvrdInputController.tsx +0 -97
  114. package/src/js/textField/dvrdNumberInput.tsx +0 -141
  115. package/src/js/textField/dvrdPasswordInput.tsx +0 -40
  116. package/src/js/textField/style/dvrdInput.scss +0 -114
  117. package/src/js/textField/style/dvrdPassword.scss +0 -15
  118. package/src/js/topButton/style/topButton.scss +0 -54
  119. package/src/js/topButton/topButton.tsx +0 -135
  120. package/src/js/util/analyticsUtil.ts +0 -41
  121. package/src/js/util/colorUtil.ts +0 -230
  122. package/src/js/util/componentUtil.tsx +0 -59
  123. package/src/js/util/constants.ts +0 -12
  124. package/src/js/util/controlContext.tsx +0 -46
  125. package/src/js/util/controlUtil.ts +0 -107
  126. package/src/js/util/cookieUtil.ts +0 -17
  127. package/src/js/util/eventUtil.ts +0 -65
  128. package/src/js/util/googleUtil.ts +0 -88
  129. package/src/js/util/interfaces.ts +0 -179
  130. package/src/js/util/jwtUtil.ts +0 -72
  131. package/src/js/util/miscUtil.ts +0 -170
  132. package/src/js/util/momentUtil.ts +0 -45
  133. package/src/js/util/pdfUtil.ts +0 -124
  134. package/src/js/util/requestUtil.ts +0 -145
  135. package/src/js/util/responsiveUtil.ts +0 -37
  136. package/src/js/util/validationUtil.ts +0 -13
  137. package/src/res/img/lock-handle.png +0 -0
  138. package/src/res/img/lock-handle.webp +0 -0
  139. package/src/res/img/lock.png +0 -0
  140. package/src/res/img/lock.webp +0 -0
  141. package/src/style/common-icons-variables.scss +0 -140
  142. package/src/style/common-icons.scss +0 -714
  143. package/src/style/common-variables.scss +0 -243
  144. package/src/style/display-breakpoints.scss +0 -141
  145. package/src/style/fonts/common-icons.eot +0 -0
  146. package/src/style/fonts/common-icons.svg +0 -150
  147. package/src/style/fonts/common-icons.ttf +0 -0
  148. package/src/style/fonts/common-icons.woff +0 -0
  149. package/src/style/fonts/common-icons.woff2 +0 -0
  150. package/src/style/fonts/fontAwesome/css/all.css +0 -7003
  151. package/src/style/fonts/fontAwesome/css/all.min.css +0 -6
  152. package/src/style/fonts/fontAwesome/css/brands.css +0 -1423
  153. package/src/style/fonts/fontAwesome/css/brands.min.css +0 -6
  154. package/src/style/fonts/fontAwesome/css/fontawesome.css +0 -5519
  155. package/src/style/fonts/fontAwesome/css/fontawesome.min.css +0 -6
  156. package/src/style/fonts/fontAwesome/css/regular.css +0 -19
  157. package/src/style/fonts/fontAwesome/css/regular.min.css +0 -6
  158. package/src/style/fonts/fontAwesome/css/solid.css +0 -19
  159. package/src/style/fonts/fontAwesome/css/solid.min.css +0 -6
  160. package/src/style/fonts/fontAwesome/css/svg-with-js.css +0 -634
  161. package/src/style/fonts/fontAwesome/css/svg-with-js.min.css +0 -6
  162. package/src/style/fonts/fontAwesome/css/v4-font-face.css +0 -26
  163. package/src/style/fonts/fontAwesome/css/v4-font-face.min.css +0 -6
  164. package/src/style/fonts/fontAwesome/css/v4-shims.css +0 -2146
  165. package/src/style/fonts/fontAwesome/css/v4-shims.min.css +0 -6
  166. package/src/style/fonts/fontAwesome/css/v5-font-face.css +0 -22
  167. package/src/style/fonts/fontAwesome/css/v5-font-face.min.css +0 -6
  168. package/src/style/fonts/fontAwesome/webfonts/fa-brands-400.ttf +0 -0
  169. package/src/style/fonts/fontAwesome/webfonts/fa-brands-400.woff2 +0 -0
  170. package/src/style/fonts/fontAwesome/webfonts/fa-regular-400.ttf +0 -0
  171. package/src/style/fonts/fontAwesome/webfonts/fa-regular-400.woff2 +0 -0
  172. package/src/style/fonts/fontAwesome/webfonts/fa-solid-900.ttf +0 -0
  173. package/src/style/fonts/fontAwesome/webfonts/fa-solid-900.woff2 +0 -0
  174. package/src/style/fonts/fontAwesome/webfonts/fa-v4compatibility.ttf +0 -0
  175. package/src/style/fonts/fontAwesome/webfonts/fa-v4compatibility.woff2 +0 -0
  176. package/src/style/variables.scss +0 -11
  177. package/tsconfig.json +0 -15
@@ -1,95 +0,0 @@
1
- /*
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- import React, {PureComponent, ReactElement} from 'react';
6
- import DVRCarousel from "./DVRCarousel";
7
- import {debug} from "../../..";
8
-
9
- interface Props {
10
- children: ReactElement[];
11
- showControls: boolean;
12
- infinite: boolean;
13
- lazy: boolean;
14
- autoPlay: boolean;
15
- variableWidth: boolean;
16
- visibleItems?: number;
17
- slidePer: number;
18
- autoPlayInterval: number;
19
- className: string;
20
- }
21
-
22
- interface State {
23
- currentIndex: number;
24
- }
25
-
26
- export default class DVRCarouselController extends PureComponent<Props, State> {
27
- static defaultProps = {
28
- showControls: true,
29
- infinite: true,
30
- lazy: true,
31
- autoPlay: false,
32
- variableWidth: true,
33
- autoPlayInterval: 3000,
34
- className: '',
35
- slidePer: 1,
36
- }
37
-
38
- state: State = {
39
- currentIndex: 0,
40
- };
41
-
42
- private playTimeout: number | null = null;
43
-
44
- onClickNext = () => {
45
- const {children, slidePer} = this.props, {currentIndex} = this.state;
46
- let nextIndex = currentIndex + slidePer;
47
- if (currentIndex + this.getActualVisibleItems() > children.length) nextIndex = 0;
48
- this.setState({currentIndex: nextIndex});
49
- };
50
-
51
- onClickPrev = () => {
52
- const {slidePer} = this.props, {currentIndex} = this.state;
53
- this.setState({currentIndex: Math.max(0, currentIndex - slidePer)});
54
- };
55
-
56
- getActualVisibleItems = (): number => {
57
- const {visibleItems, children} = this.props;
58
- return visibleItems === undefined ? Math.min(children.length, 3) : visibleItems;
59
- };
60
-
61
- play = () => {
62
- const {autoPlayInterval} = this.props;
63
- this.playTimeout = window.setTimeout(this.slide, autoPlayInterval);
64
- };
65
-
66
- stop = () => {
67
- if (this.playTimeout !== null) {
68
- window.clearTimeout(this.playTimeout);
69
- this.playTimeout = null;
70
- }
71
- };
72
-
73
- slide = () => {
74
- this.onClickNext();
75
- if (this.props.autoPlay) this.play();
76
- }
77
-
78
- componentDidMount = () => {
79
- if (this.props.autoPlay) this.play();
80
- };
81
-
82
- componentWillUnmount = () => {
83
- this.stop();
84
- }
85
-
86
- render = () => {
87
- const {currentIndex} = this.state, {variableWidth, lazy, className, showControls, infinite, children} = this.props;
88
- return (
89
- <DVRCarousel onClickNext={this.onClickNext} onClickPrev={this.onClickPrev} currentIndex={currentIndex}
90
- visibleItems={this.getActualVisibleItems()} lazy={lazy} className={className}
91
- showControls={showControls} variableWidth={variableWidth}
92
- infinite={infinite}>{children}</DVRCarousel>
93
- )
94
- };
95
- }
@@ -1,38 +0,0 @@
1
- /*!
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- @import '../../../style/variables';
6
-
7
- .dvr-carousel {
8
- display: grid;
9
- grid-template-columns: 2rem auto 2rem;
10
- align-items: center;
11
- justify-items: center;
12
-
13
- .carousel-control {
14
- color: $color-gray-5;
15
- font-size: 1rem;
16
- }
17
-
18
- .carousel-items-container {
19
- //transition: width .2s ease-in-out;
20
- overflow: hidden;
21
-
22
- .items-container {
23
- display: flex;
24
- align-items: center;
25
- transition: transform .2s ease-in-out;
26
-
27
- .carousel-item {
28
- padding: .5rem;
29
- transition: visibility;
30
-
31
- &.hidden {
32
- visibility: hidden;
33
- transition-delay: .2s;
34
- }
35
- }
36
- }
37
- }
38
- }
@@ -1,147 +0,0 @@
1
- /*
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- import './style/checkbox.scss';
6
-
7
- import React from 'react';
8
- import {MouseEventHandler} from 'react';
9
- import classNames from 'classnames';
10
- import AwesomeIcon from '../icon/awesomeIcon';
11
- import {findDarkestColor, convertColor, editColor} from "../util/colorUtil";
12
- import {isNotNull, isNull} from "../util/controlUtil";
13
- import {ControlContext} from "../util/controlContext";
14
-
15
- interface CheckboxProps {
16
- onCheck: MouseEventHandler;
17
- onMouseEnter: any,
18
- onMouseLeave: any,
19
- checked: boolean,
20
- disabled: boolean,
21
- isHovered: boolean,
22
- label: string,
23
- labelPosition: 'left' | 'right',
24
- containerClass: string,
25
- labelClass: string,
26
- checkboxClass: string,
27
- checkClass: string,
28
- errorClass: string,
29
- id: string,
30
- error: string | null,
31
- checkIcon: React.ReactNode
32
- baseColor?: string;
33
- contrastColor?: string;
34
- title?: string;
35
- useDarkestColor: boolean;
36
- }
37
-
38
- export class Checkbox extends React.Component<CheckboxProps> {
39
- declare context: React.ContextType<typeof ControlContext>;
40
- static contextType = ControlContext;
41
-
42
- getContainerClass = (): string => {
43
- const {disabled, containerClass, error, label} = this.props, classes = ['checkboxContainer'];
44
-
45
- if (disabled) classes.push('disabled');
46
- if (isNotNull(error)) classes.push('error');
47
- if (!label.length) classes.push('no-label');
48
-
49
- classes.push(containerClass);
50
- return classNames(classes);
51
- };
52
-
53
- getLabelClass = (position: 'left' | 'right'): string => {
54
- const {disabled, labelClass, error} = this.props, classes = ['checkboxLabel', position];
55
- if (disabled) classes.push('disabled');
56
- if (isNotNull(error)) classes.push('error');
57
- classes.push(labelClass);
58
- return classNames(classes);
59
- };
60
-
61
- getCheckboxClass = (): string => {
62
- const {disabled, checkboxClass} = this.props, classes = ['checkbox'];
63
- if (disabled) classes.push('disabled');
64
- classes.push(checkboxClass);
65
- return classNames(classes);
66
- };
67
-
68
- getCheckClass = (): string => {
69
- const {disabled, checkClass, checked} = this.props, classes = ['checkbox-check'];
70
- if (disabled) classes.push('disabled');
71
- if (checked) classes.push('checked');
72
- classes.push(checkClass);
73
- return classNames(classes);
74
- };
75
-
76
- getCheckboxStyle = (): object => {
77
- const {isHovered, error, disabled, useDarkestColor} = this.props;
78
- let color: string;
79
- if (isNotNull(error)) color = 'red';
80
- else if (disabled) color = 'color-gray-4';
81
- else {
82
- if (useDarkestColor)
83
- color = findDarkestColor(this.getBaseColor(), this.getContrastColor());
84
- else color = this.getBaseColor();
85
- if (isHovered) color = editColor(-.2, color);
86
- }
87
- return {borderColor: convertColor(color)};
88
- };
89
-
90
- getCheckStyle = (): object => {
91
- const {error, disabled, useDarkestColor} = this.props;
92
- let color: string;
93
- if (isNotNull(error)) color = 'red';
94
- else if (disabled) color = 'color-gray-4';
95
- else if (useDarkestColor) color = findDarkestColor(this.getBaseColor(), this.getContrastColor());
96
- else color = this.getBaseColor();
97
- return {color: convertColor(color)};
98
- };
99
-
100
- getBaseColor = (): string => convertColor(this.props.baseColor || this.context.baseColor);
101
- getContrastColor = (): string => convertColor(this.props.contrastColor || this.context.contrastColor);
102
-
103
- getMainColor = () => this.props.useDarkestColor ? findDarkestColor(this.getBaseColor(), this.getContrastColor()) : this.getBaseColor();
104
-
105
- renderLabel = (position: 'left' | 'right'): React.ReactNode => {
106
- const {label, labelPosition} = this.props;
107
- if (isNull(label) || labelPosition !== position) return null;
108
- return <label className={this.getLabelClass(position)}>{label}</label>
109
- };
110
-
111
- renderCheckbox = (): React.ReactNode => {
112
- return (
113
- <div className={this.getCheckboxClass()} style={this.getCheckboxStyle()}>
114
- <div className='ripple' style={{backgroundColor: this.getMainColor()}}/>
115
- {this.renderCheck()}
116
- </div>
117
- )
118
- };
119
-
120
- renderCheck = () => {
121
- const {checkIcon} = this.props;
122
- if (React.isValidElement(checkIcon)) return React.cloneElement(checkIcon, {
123
- className: classNames(checkIcon.props.className, this.getCheckClass()),
124
- style: {...checkIcon.props.style, ...this.getCheckStyle()}
125
- });
126
- const checkName = typeof checkIcon === 'string' ? checkIcon : 'check';
127
- return <AwesomeIcon name={checkName} className={this.getCheckClass()} style={this.getCheckStyle()}/>;
128
- };
129
-
130
- renderError = (): React.ReactNode => {
131
- const {error, errorClass} = this.props;
132
- return <label className={classNames('error', errorClass)}>{error}</label>;
133
- };
134
-
135
- render = () => {
136
- const {id, onCheck, onMouseLeave, onMouseEnter, title} = this.props;
137
- return (
138
- <div className={this.getContainerClass()} id={id} onClick={onCheck} onMouseEnter={onMouseEnter}
139
- title={title} onMouseLeave={onMouseLeave}>
140
- {this.renderLabel('left')}
141
- {this.renderCheckbox()}
142
- {this.renderLabel('right')}
143
- {this.renderError()}
144
- </div>
145
- )
146
- }
147
- }
@@ -1,131 +0,0 @@
1
- /*
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- import React from 'react';
6
- import {Checkbox} from "./checkbox";
7
- import {ControlContext} from "../util/controlContext";
8
- import {generateComponentId} from '../../..';
9
-
10
- interface Props {
11
- onCheck: Function;
12
- onMouseEnter?: Function;
13
- onMouseLeave?: Function;
14
- checked: boolean;
15
- disabled: boolean;
16
- label: string;
17
- labelPosition: 'left' | 'right';
18
- containerClass: string;
19
- labelClass: string;
20
- checkboxClass: string;
21
- checkClass: string;
22
- errorClass: string;
23
- baseColor?: string;
24
- contrastColor?: string;
25
- error: string | null;
26
- id?: string;
27
- checkIcon: React.ReactNode;
28
- unControlled: boolean;
29
- title?: string;
30
- useDarkestColor: boolean;
31
- }
32
-
33
- interface CheckboxState {
34
- isHovered: boolean;
35
- internalValue: boolean;
36
- }
37
-
38
- export default class CheckboxController extends React.Component<Props, CheckboxState> {
39
- static contextType = ControlContext;
40
-
41
- static defaultProps = {
42
- disabled: false,
43
- label: '',
44
- labelPosition: 'right',
45
- containerClass: '',
46
- labelClass: '',
47
- checkboxClass: '',
48
- checkClass: '',
49
- errorClass: '',
50
- checkIcon: null,
51
- error: null,
52
- unControlled: false,
53
- useDarkestColor: true,
54
- };
55
-
56
- private getContainer = (): HTMLElement | null => {
57
- return document.getElementById(this.id);
58
- };
59
-
60
- private getRipple = (): HTMLElement | null => {
61
- const container = this.getContainer();
62
- if (container === null) return null;
63
- return container.querySelector('div.ripple');
64
- };
65
-
66
- private id: string = generateComponentId(this.props.id);
67
-
68
- state = {isHovered: false, internalValue: this.props.checked};
69
-
70
- onCheck = (evt: React.MouseEvent<Element, Event>) => {
71
- const {checked, onCheck, disabled, unControlled} = this.props;
72
- if (disabled) return;
73
- if (unControlled) {
74
- evt.stopPropagation();
75
- evt.persist();
76
- this.setState({internalValue: !this.state.internalValue}, () => {
77
- onCheck(this.state.internalValue, evt);
78
- });
79
- } else onCheck(!checked, evt);
80
- this.addRipple();
81
- };
82
-
83
- onMouseEnter = () => {
84
- if (this.props.disabled) return;
85
- this.setState({isHovered: true});
86
- };
87
-
88
- onMouseLeave = () => {
89
- if (this.props.disabled) return;
90
- this.setState({isHovered: false});
91
- };
92
-
93
- addRipple = () => {
94
- const container = this.getContainer();
95
- if (container !== null) {
96
- const ripple = this.getRipple();
97
- if (ripple !== null) {
98
- if (container.classList.contains('rippling'))
99
- container.classList.remove('rippling');
100
- ripple.addEventListener('transitionend', this.removeRipple);
101
- container.classList.add('rippling');
102
- }
103
- }
104
- };
105
-
106
- removeRipple = () => {
107
- const ripple = this.getRipple();
108
- const container = this.getContainer();
109
- if (ripple !== null && container !== null) {
110
- ripple.removeEventListener('transitionend', this.removeRipple);
111
- container.classList.remove('rippling');
112
- }
113
- };
114
-
115
- componentWillUnmount = () => {
116
- this.removeRipple();
117
- };
118
-
119
- render = () => {
120
- const {
121
- checked, disabled, label, labelPosition, containerClass, labelClass, checkboxClass, checkClass, checkIcon,
122
- error, errorClass, unControlled, title, baseColor, contrastColor, useDarkestColor,
123
- } = this.props, {isHovered, internalValue} = this.state, isChecked = unControlled ? internalValue : checked;
124
- return <Checkbox onCheck={this.onCheck} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}
125
- checked={isChecked} disabled={disabled} isHovered={isHovered} label={label}
126
- labelPosition={labelPosition} containerClass={containerClass} labelClass={labelClass}
127
- checkboxClass={checkboxClass} checkClass={checkClass} id={this.id} checkIcon={checkIcon}
128
- error={error} errorClass={errorClass} title={title} baseColor={baseColor}
129
- contrastColor={contrastColor} useDarkestColor={useDarkestColor}/>
130
- }
131
- }
@@ -1,109 +0,0 @@
1
- /*!
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- @import '../../../style/variables';
6
-
7
- .checkboxContainer {
8
- display: grid;
9
- grid-template-columns: 22px auto;
10
- grid-column-gap: .5rem;
11
- align-items: center;
12
- //padding: .2rem;
13
- cursor: pointer;
14
- position: relative;
15
- margin-bottom: 0;
16
- transition: margin-bottom .2s ease-in-out;
17
-
18
- .checkboxLabel {
19
- font-size: .9rem;
20
- color: $color-gray-5;
21
- cursor: inherit;
22
- user-select: none;
23
- transition: color .2s ease;
24
- margin-bottom: -.2rem;
25
-
26
- &.error {
27
- color: red;
28
- }
29
- }
30
-
31
- .checkbox {
32
- @include borderRadius(.2rem);
33
- position: relative;
34
- height: 22px;
35
- width: 22px;
36
- border: 2px solid;
37
- cursor: inherit;
38
- background-color: white;
39
- box-sizing: border-box;
40
-
41
- .checkboxCheck, .checkbox-check {
42
- @include centerXY;
43
- top: 55%;
44
- font-size: .9rem;
45
- cursor: inherit;
46
- visibility: hidden;
47
- opacity: 0;
48
- transition: opacity .1s ease-in-out, visibility .1s ease-in-out;
49
- user-select: none;
50
-
51
- &.checked {
52
- visibility: visible;
53
- opacity: 1;
54
- }
55
- }
56
-
57
- .ripple {
58
- @include centerXY;
59
- @include borderRadius(50%);
60
- opacity: 1;
61
- width: 8px;
62
- height: 8px;
63
- visibility: hidden;
64
- pointer-events: none;
65
- }
66
- }
67
-
68
- .error {
69
- position: absolute;
70
- left: 0;
71
- bottom: -1.4rem;
72
- color: red;
73
- font-size: .9rem;
74
- pointer-events: none;
75
- visibility: hidden;
76
- opacity: 0;
77
- transition: visibility .2s ease-in-out, opacity .2s ease-in-out;
78
- }
79
-
80
- &.rippling {
81
- .checkbox {
82
- .ripple {
83
- width: 56px;
84
- height: 56px;
85
- visibility: visible;
86
- opacity: 0;
87
- transition: opacity .5s ease-in-out, opacity .5s ease, width .5s ease-in-out, height .5s ease-in-out;
88
- }
89
- }
90
- }
91
-
92
- &.disabled {
93
- cursor: not-allowed;
94
- }
95
-
96
- &.error {
97
- margin-bottom: 1.4rem;
98
-
99
- .error {
100
- visibility: visible;
101
- opacity: 1;
102
- }
103
- }
104
-
105
- &.no-label {
106
- grid-template-columns: 22px;
107
- grid-column-gap: unset;
108
- }
109
- }
@@ -1,118 +0,0 @@
1
- /*
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- import './style/colorPicker.scss';
6
-
7
- import React from 'react';
8
- import {MouseEventHandler, PureComponent} from 'react';
9
- import {
10
- BlockPicker, ChromePicker, CirclePicker, Color, ColorPickerProps, ColorResult, CompactPicker, PhotoshopPicker,
11
- SketchPicker, TwitterPicker,
12
- } from "react-color";
13
- import {ColorPickerResultType, ColorPickerType} from "../util/interfaces";
14
- import WithBackground from "../popup/withBackground";
15
- import {Button} from "../../../index";
16
-
17
- interface Props extends ColorPickerProps<any> {
18
- onSubmit: (color: Color) => void;
19
- onPreChange?: (color: Color) => void;
20
- onClose: MouseEventHandler;
21
- pickerType: ColorPickerType;
22
- resultType: ColorPickerResultType;
23
- visible: boolean;
24
- transparent: boolean;
25
- closeable: boolean;
26
- }
27
-
28
- interface State {
29
- color: Color;
30
- }
31
-
32
- export default class ColorPicker extends PureComponent<Props, State> {
33
- static defaultProps = {
34
- pickerType: ColorPickerType.SKETCH,
35
- resultType: ColorPickerResultType.HEX,
36
- transparent: false,
37
- closeable: true,
38
- };
39
-
40
- state: State = {
41
- color: this.props.color || '#000',
42
- };
43
-
44
- onSubmit = () => {
45
- const {onSubmit} = this.props, {color} = this.state;
46
- onSubmit(color);
47
- };
48
-
49
- onChange = (color: ColorResult) => {
50
- let newColor: Color;
51
- switch (this.props.resultType) {
52
- case ColorPickerResultType.HEX:
53
- newColor = color.hex;
54
- break;
55
- case ColorPickerResultType.HSL:
56
- newColor = color.hsl;
57
- break;
58
- case ColorPickerResultType.RGB:
59
- newColor = color.rgb;
60
- break;
61
- }
62
- this.setState({color: newColor});
63
- };
64
-
65
- onPreChange = (color: ColorResult) => {
66
- const {onPreChange} = this.props;
67
- if (!onPreChange) return;
68
- switch (this.props.resultType) {
69
- case ColorPickerResultType.HEX:
70
- onPreChange(color.hex);
71
- break;
72
- case ColorPickerResultType.HSL:
73
- onPreChange(color.hsl);
74
- break;
75
- case ColorPickerResultType.RGB:
76
- onPreChange(color.rgb);
77
- break;
78
- }
79
- };
80
-
81
- getPicker = () => {
82
- const {pickerType} = this.props, {color} = this.state,
83
- props = {color, onChangeComplete: this.onChange, onChange: this.onPreChange};
84
- switch (pickerType) {
85
- case ColorPickerType.BLOCK:
86
- return <BlockPicker {...props}/>;
87
- case ColorPickerType.CHROME:
88
- return <ChromePicker {...props}/>;
89
- case ColorPickerType.CIRCLE:
90
- return <CirclePicker {...props}/>;
91
- case ColorPickerType.COMPACT:
92
- return <CompactPicker {...props}/>;
93
- case ColorPickerType.PHOTOSHOP:
94
- return <PhotoshopPicker {...props}/>;
95
- case ColorPickerType.SKETCH:
96
- return <SketchPicker {...props}/>;
97
- case ColorPickerType.TWITTER:
98
- return <TwitterPicker {...props}/>;
99
- default:
100
- return <SketchPicker {...props}/>;
101
- }
102
- };
103
-
104
- render = () => {
105
- const {onClose, visible, transparent, className, closeable} = this.props;
106
- return (
107
- <WithBackground onClose={onClose} active={visible} transparent={transparent} backgroundClass={className}>
108
- <div className='color-picker-container'>
109
- {this.getPicker()}
110
- <div className='buttons-container'>
111
- {closeable && <Button onClick={onClose} label='Sluit' type='outlined'/>}
112
- <Button onClick={this.onSubmit} label='Kies' containerClass='submit-color'/>
113
- </div>
114
- </div>
115
- </WithBackground>
116
- )
117
- };
118
- }
@@ -1,20 +0,0 @@
1
- /*!
2
- * Copyright (c) 2021. Dave van Rijn Development
3
- */
4
-
5
- @import '../../../style/variables';
6
-
7
- .color-picker-container {
8
- display: flex;
9
- flex-direction: column;
10
-
11
- .buttons-container {
12
- display: flex;
13
- justify-content: space-between;
14
- padding: .5rem;
15
- margin-top: -.2rem;
16
- background-color: rgba(white, 1);
17
- border-bottom-left-radius: .25rem;
18
- border-bottom-right-radius: .25rem;
19
- }
20
- }