react-bootstrap-front 3.8.0 → 3.9.4

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.
@@ -3,6 +3,21 @@
3
3
  }
4
4
 
5
5
  .rdw-editor-toolbar {
6
- padding: 5px;
7
- border: 1px solid theme-color('secondary-light');
6
+ padding: 0px;
7
+ border: 0px solid theme-color('secondary-light') !important;
8
+
9
+ .advanced-dropdown-wrapper {
10
+ margin-left: 5px;
11
+ }
12
+
13
+ button {
14
+ height: 100%;
15
+ }
16
+ }
17
+
18
+ .rbf-mailmerge {
19
+ color: #105a1c;
8
20
  }
21
+ .DraftEditor-root {
22
+ overflow: hidden;
23
+ }
@@ -0,0 +1,54 @@
1
+ import React, { Component } from 'react';
2
+ import classnames from 'classnames';
3
+ import PropTypes from 'prop-types';
4
+ import { DropdownWrapper } from '../advanced'
5
+ import { DropdownMenu, DropdownMenuOption } from '../basic';
6
+
7
+ export default class MailMerge extends Component {
8
+ static propTypes = {
9
+ onChange: PropTypes.func,
10
+ };
11
+
12
+ constructor(props) {
13
+ super(props);
14
+ this.state = {
15
+ myRef: React.createRef()
16
+ }
17
+ this.onChange = this.onChange.bind(this);
18
+ }
19
+
20
+ stopPropagation = (event) => {
21
+ event.stopPropagation();
22
+ };
23
+
24
+ onChange = (text) => {
25
+ this.props.onChangeText(text);
26
+ }
27
+
28
+ render() {
29
+ const trigger = (
30
+ <button
31
+ type="button"
32
+ className={classnames(this.props.className, 'btn btn-light')}
33
+ >
34
+ {this.props.icon ? this.props.icon : 'MailMerge' }
35
+ </button>
36
+ );
37
+ const options = this.props.options;
38
+ return (
39
+ <DropdownWrapper trigger={trigger} className="ui-inline-wrapper btn-group pl-2" align="bottom-right" myRef={this.state.myRef}>
40
+ <DropdownMenu>
41
+ {options.map((text, index) =>
42
+ (<DropdownMenuOption
43
+ className="rdw-mailmerge-option"
44
+ onClick={() => this.onChange(text.text_content)}
45
+ key={index}
46
+ >
47
+ {text.text_code}
48
+ </DropdownMenuOption>),
49
+ )}
50
+ </DropdownMenu>
51
+ </DropdownWrapper>
52
+ );
53
+ }
54
+ }
File without changes
@@ -1,4 +1,7 @@
1
1
  export { default as ColorPicker } from "./ColorPicker";
2
2
  export { default as FontSize } from "./FontSize";
3
+ export { default as FontFamily } from "./FontFamily";
3
4
  export { default as Inline } from "./Inline";
5
+ export { default as Image } from "./Image";
6
+ export { default as MailMerge } from "./MailMerge";
4
7
  export { default as InputHtml } from "./InputHtml";
@@ -1,4 +1,7 @@
1
1
  @import './ColorPicker';
2
+ @import './FontFamily';
2
3
  @import './FontSize';
3
4
  @import './Inline';
4
- @import './InputHtml';
5
+ @import './Image';
6
+ @import './MailMerge';
7
+ @import './InputHtml';
@@ -213,6 +213,7 @@ export default class FilterBuilder extends Component {
213
213
  onChange={this.props.onChange}
214
214
  calIcon={this.props.calIcon}
215
215
  delIcon={this.props.delIcon}
216
+ allowNull={true}
216
217
  />
217
218
  </div>
218
219
  {colOper === FILTER_OPER_BETWEEN && this.props.onUpdate &&
@@ -124,7 +124,7 @@ export default class ActionButton extends Component {
124
124
  if (elem) {
125
125
  return (
126
126
  <DropdownMenuOption
127
- key={`elem-${action.label}`}
127
+ key={`elem-${elem.label}`}
128
128
  label={elem.label}
129
129
  onClick={ev => {
130
130
  if (ev) {
@@ -166,7 +166,7 @@ export default class ActionButton extends Component {
166
166
  {this.state.options.map(elem => {
167
167
  return (
168
168
  <DropdownMenuOption
169
- key={`elem-${action.label}`}
169
+ key={`elem-${elem.label}`}
170
170
  label={elem.label}
171
171
  onClick={ev => {
172
172
  if (ev) {
@@ -198,13 +198,13 @@ export default class DefaultHeader extends Component {
198
198
  )}
199
199
  >
200
200
  <Row>
201
- <Col size={{ xs: 10, sm: 16, md: 10, lg: 14 }}>
201
+ <Col size={{ xs: 10, sm: 10, md: 10, lg: 14 }}>
202
202
  <div className="pl-2" style={{ display: 'inline-block', float: 'left' }}>
203
203
  <span style={iconstyle} className={classnames('no-selector', 'text-' + this.props.headerTextTheme)}>
204
204
  {this.props.icon && this.props.icon}
205
205
  </span>
206
206
  </div>
207
- <div className="pl-2" style={{ display: 'inline-block', float: 'left' }}>
207
+ <div className="pl-2 col-xs-none col-md-flex" style={{ display: 'inline-block', float: 'left' }}>
208
208
  <span style={titlestyle} className={classnames('no-selector', 'text-' + this.props.headerTextTheme)}>
209
209
  {this.props.title}
210
210
  </span>
@@ -223,7 +223,7 @@ export default class DefaultHeader extends Component {
223
223
  </div>
224
224
  )}
225
225
  </Col>
226
- <Col size={{ xs: 0, md: 12, lg: 8 }}>
226
+ <Col size={{ xs: 10, sm: 12, md: 12, lg: 8 }}>
227
227
  <Highlight
228
228
  className="w-100"
229
229
  style={sortStyle}
@@ -234,7 +234,7 @@ export default class DefaultHeader extends Component {
234
234
  {this.props.quickSearch}
235
235
  </Highlight>
236
236
  </Col>
237
- <Col size={{ xs: 16, sm: 20, md: 14, lg: 14 }} className="text-right">
237
+ <Col size={{ xs: 16, sm: 14, md: 14, lg: 14 }} className="text-right">
238
238
  <ul className="nav justify-content-end rbf-list-default-header-nav">
239
239
  <li className="nav-item">
240
240
  <Highlight
@@ -74,7 +74,11 @@ export default class DesktopListLine extends Component {
74
74
  }
75
75
  this.props.inlineActions.forEach(action => {
76
76
  if (action.role === 'MODIFY') {
77
- action.onClick(this.props.id);
77
+ if (action.param === 'object') {
78
+ action.onClick(this.props.item);
79
+ } else {
80
+ action.onClick(this.props.id);
81
+ }
78
82
  }
79
83
  });
80
84
  return false;
@@ -101,7 +101,7 @@ export default class MobileList extends Component {
101
101
  col.card.position = 99;
102
102
  }
103
103
  });
104
- dispCols = dispCols.filter(col => !col.hidden);
104
+ //dispCols = dispCols.filter(col => !col.hidden);
105
105
  let mobileCols = dispCols.filter(col => col.card);
106
106
  mobileCols.sort((a, b) => {
107
107
  if ((a.card.position && b.card.position && a.card.position > b.card.position) || !a.card.position) {
@@ -113,7 +113,7 @@ export default class MobilePage extends Component {
113
113
  return (
114
114
  <div id="page-root" className="full-page">
115
115
  <Container size="xs" className="display-mobile">
116
- <CSSTransition in={this.state.menuUserOpen} timeout={duration}>
116
+ <CSSTransition in={this.state.menuUserOpen && this.props.authenticated} timeout={duration}>
117
117
  {state => (
118
118
  <div>
119
119
  <div className="bg-white" style={{ ...userMenuDefaultStyles, ...userMenuStyles[state] }}>
@@ -44,6 +44,26 @@
44
44
  @return $not;
45
45
  }
46
46
 
47
+ @function container-col-show-not($start, $end, $breakpoints: $container-breakpoints, $prefix: 'col') {
48
+ $not: '';
49
+ $started: 0;
50
+ @each $breakpoint in map-keys($breakpoints) {
51
+ @if $breakpoint == $start {
52
+ $started: 1;
53
+ }
54
+ @if $breakpoint == $end {
55
+ $started: 2;
56
+ }
57
+ @if $started >= 1 {
58
+ $not: $not + ':not([class*=\'#{$prefix}-#{$breakpoint}-flex\']):not([class*=\'#{$prefix}-#{$breakpoint}-block\'])';
59
+ @if $started == 2 {
60
+ @return $not;
61
+ }
62
+ }
63
+ }
64
+ @return $not;
65
+ }
66
+
47
67
  @function container-d-none-not($start, $end, $breakpoints: $container-breakpoints, $prefix: 'd') {
48
68
  $not: '';
49
69
  $started: 0;
@@ -77,8 +97,9 @@
77
97
 
78
98
  $infix: container-infix($breakpoint, $breakpoints);
79
99
  $notCol: container-col-none-not($breakpoint, $current, $breakpoints);
100
+ $notShow: container-col-show-not($breakpoint, $current, $breakpoints);
80
101
  $notD: container-d-none-not($breakpoint, $current, $breakpoints);
81
- .col#{$infix}-none#{$notCol} {
102
+ .col#{$infix}-none#{$notCol}#{$notShow} {
82
103
  display: none !important;
83
104
  }
84
105
  .col#{$infix}-flex {