5htp-core 0.5.9-52 → 0.5.9-53

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.
@@ -92,6 +92,10 @@
92
92
 
93
93
  &.menu {
94
94
  padding: @cardPaddingLong;
95
+
96
+ &.popover {
97
+ padding: @cardPaddingMini;
98
+ }
95
99
  }
96
100
 
97
101
  /*----------------------------------
@@ -1,6 +1,10 @@
1
1
  .table {
2
+
2
3
  overflow: auto;
3
- max-height: 90vh;
4
+
5
+ &.scrollable {
6
+ max-height: 90vh;
7
+ }
4
8
 
5
9
  > table {
6
10
  border-collapse: collapse;
@@ -27,7 +31,6 @@ table {
27
31
 
28
32
  // By default, chrome disables text inherits
29
33
  line-height: inherit;
30
- font-size: 0.9em;
31
34
 
32
35
  th {
33
36
  font-weight: 500;
@@ -74,7 +77,7 @@ table {
74
77
  top: 0;
75
78
  background: var(--cBg);
76
79
  white-space: break-spaces;
77
- z-index: 5;
80
+ z-index: 2;
78
81
  }
79
82
 
80
83
  tbody {
@@ -30,7 +30,8 @@ export type Choice = ComboboxItem;
30
30
 
31
31
  const ensureChoice = (
32
32
  choice: ComboboxItem | string,
33
- choices: ComboboxItem[]
33
+ choices: ComboboxItem[],
34
+ current: ComboboxItem | ComboboxItem[] | null
34
35
  ): ComboboxItem => {
35
36
 
36
37
  // Allready a choice
@@ -38,8 +39,13 @@ const ensureChoice = (
38
39
  return choice;
39
40
  }
40
41
 
42
+ // Complete list of the choices
43
+ const allChoices = [...choices];
44
+ if (Array.isArray(current))
45
+ allChoices.push(...current);
46
+
41
47
  // Find the choice
42
- const found = choices.find( c => c.value === choice);
48
+ const found = allChoices.find( c => c.value === choice);
43
49
  if (found)
44
50
  return found;
45
51
 
@@ -72,16 +78,16 @@ export default (initProps: Props) => {
72
78
  if (choicesViaFunc)
73
79
  enableSearch = true;
74
80
  else
75
- initChoices = initChoices?.map( c => ensureChoice(c, []) ) || [];
81
+ initChoices = initChoices?.map( c => ensureChoice(c, [], current) ) || [];
76
82
 
77
83
  if (enableSearch)
78
84
  props.searchable = true;
79
85
 
80
86
  let [choices, setChoices] = React.useState<ComboboxItem[]>( choicesViaFunc
81
87
  ? (Array.isArray(current)
82
- ? current.map( c => ensureChoice(c, []) )
88
+ ? current.map( c => ensureChoice(c, [], current) )
83
89
  : current
84
- ? [ensureChoice(current, [])]
90
+ ? [ensureChoice(current, [], [])]
85
91
  : []
86
92
  ) || []
87
93
  : initChoices
@@ -130,13 +136,13 @@ export default (initProps: Props) => {
130
136
  let Component: typeof MantineSelect | typeof MantineMultiSelect;
131
137
  if (multiple) {
132
138
  Component = MantineMultiSelect;
133
- props.value = current ? current.map( c => ensureChoice(c, choices).value ) : [];
139
+ props.value = current ? current.map( c => ensureChoice(c, choices, current).value ) : [];
134
140
  props.onChange = (value: string[]) => {
135
141
  onChange( value.map(valueToChoice) )
136
142
  };
137
143
  } else {
138
144
  Component = MantineSelect;
139
- props.value = current ? ensureChoice(current, choices).value : '';
145
+ props.value = current ? ensureChoice(current, choices, current).value : '';
140
146
  props.onChange = (value: string) => onChange( valueToChoice(value) );
141
147
  }
142
148
 
@@ -136,33 +136,37 @@ export default function Liste<TRow extends TDonneeInconnue>({
136
136
  }
137
137
  }
138
138
 
139
- const isCurrentlySorted = sort && sorted && sorted.id === sort.id;
140
- const isSortable = sort && onSort;
141
- if (isSortable) {
142
- classe += ' clickable';
143
- cellProps.onClick = () => {
144
- if (isCurrentlySorted)
145
- onSort(null, sort.order);
146
- else
147
- onSort(sort.id, sort.order);
139
+ if (iDonnee === 0) {
140
+
141
+ const headerProps = { className: '', ...cellProps };
142
+ const isCurrentlySorted = sort && sorted && sorted.id === sort.id;
143
+ const isSortable = sort && onSort;
144
+ if (isSortable) {
145
+ headerProps.className += ' clickable';
146
+ headerProps.onClick = () => {
147
+ if (isCurrentlySorted)
148
+ onSort(null, sort.order);
149
+ else
150
+ onSort(sort.id, sort.order);
151
+ }
148
152
  }
153
+
154
+ renduColonnes.push(
155
+ <th {...headerProps}>
156
+ <div class="row sp-btw">
157
+
158
+ {isSortable ? (
159
+ <a>{label}</a>
160
+ ) : label}
161
+
162
+ {isCurrentlySorted && (
163
+ <i src={sort.order === "asc" ? "caret-up" : "caret-down"} />
164
+ )}
165
+ </div>
166
+ </th>
167
+ );
149
168
  }
150
169
 
151
- if (iDonnee === 0) renduColonnes.push(
152
- <th class={classe} {...cellProps}>
153
- <div class="row sp-btw">
154
-
155
- {isSortable ? (
156
- <a>{label}</a>
157
- ) : label}
158
-
159
- {isCurrentlySorted && (
160
- <i src={sort.order === "asc" ? "caret-up" : "caret-down"} />
161
- )}
162
- </div>
163
- </th>
164
- );
165
-
166
170
  let render: ComponentChild;
167
171
  if (Array.isArray(cell)) {
168
172
 
@@ -113,7 +113,7 @@ export default (props: Props) => {
113
113
  renderedContent = React.cloneElement(
114
114
  content,
115
115
  {
116
- className: 'card popover pd-1'
116
+ className: 'card popover'
117
117
  + (position ? ' pos_' + position.cote : '')
118
118
  + ' ' + (content.props.className || ''),
119
119
 
@@ -29,7 +29,7 @@
29
29
 
30
30
  list-style: none;
31
31
  text-align: left;
32
- line-height: 2rem;
32
+ //line-height: 2rem; Why ?
33
33
 
34
34
  overflow: auto;
35
35
 
@@ -103,6 +103,7 @@ export {
103
103
  Progress,
104
104
  Radio,
105
105
  Rating,
106
+ RangeSlider,
106
107
  RingProgress,
107
108
  SegmentedControl,
108
109
  //Select,
@@ -57,7 +57,7 @@ const sizeAdapter = {
57
57
  }
58
58
 
59
59
  export function useMantineInput<TProps extends __BaseInputProps & InputBaseProps<any>, TValue>({
60
- title, wrapper, hint, errors, icon, iconR, minimal, onChange, value, ...props
60
+ title, wrapper, hint, errors, icon, iconR, prefix, suffix, minimal, onChange, value, ...props
61
61
  }: InputBaseProps<TValue> & TProps): [
62
62
  InputBaseProps<any>,
63
63
  TProps
@@ -74,11 +74,11 @@ export function useMantineInput<TProps extends __BaseInputProps & InputBaseProps
74
74
  props.description = hint;
75
75
  }
76
76
  // Prefix
77
- if (props.leftSection === undefined && icon !== undefined)
78
- props.leftSection = <i src={icon} />;
77
+ if (props.leftSection === undefined)
78
+ props.leftSection = icon !== undefined ? <i src={icon} /> : prefix;
79
79
  // Suffix
80
- if (props.rightSection === undefined && iconR !== undefined)
81
- props.rightSection = <i src={iconR} />;
80
+ if (props.rightSection === undefined)
81
+ props.rightSection = iconR !== undefined ? <i src={iconR} /> : suffix;
82
82
 
83
83
  // Errors
84
84
  if (errors?.length)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "5htp-core",
3
3
  "description": "Convenient TypeScript framework designed for Performance and Productivity.",
4
- "version": "0.5.9-52",
4
+ "version": "0.5.9-53",
5
5
  "author": "Gaetan Le Gac (https://github.com/gaetanlegac)",
6
6
  "repository": "git://github.com/gaetanlegac/5htp-core.git",
7
7
  "license": "MIT",
@@ -220,13 +220,13 @@ export default abstract class AuthService<
220
220
  // Insufficient permissions
221
221
  } else if (!user.roles.includes(role)) {
222
222
 
223
- console.warn(LogPrefix, "Refusé: " + role + " pour " + user.name + " (" + (user.roles ? user.roles.join(', ') : 'role inconnu') + ")");
223
+ console.warn(LogPrefix, "Refusé: " + role + " pour " + user.name + " (" + (user.roles || 'role inconnu') + ")");
224
224
 
225
225
  throw new Forbidden("You do not have sufficient permissions to access this resource.");
226
226
 
227
227
  } else {
228
228
 
229
- console.warn(LogPrefix, "Autorisé " + role + " pour " + user.name + " (" + user.roles.join(', ') + ")");
229
+ console.warn(LogPrefix, "Autorisé " + role + " pour " + user.name + " (" + user.roles + ")");
230
230
 
231
231
  }
232
232
 
package/types/icons.d.ts CHANGED
@@ -1 +1 @@
1
- export type TIcones = "times"|"solid/spinner-third"|"long-arrow-right"|"sack-dollar"|"bell"|"bullseye"|"project-diagram"|"user-friends"|"eye"|"lock"|"comments"|"phone"|"chalkboard-teacher"|"rocket"|"chart-bar"|"planet-ringed"|"brands/linkedin"|"user-circle"|"crosshairs"|"plus-circle"|"comments-alt"|"arrow-right"|"user-shield"|"shield-alt"|"chart-line"|"money-bill-wave"|"star"|"link"|"file-alt"|"long-arrow-left"|"key"|"user"|"at"|"user-plus"|"mouse-pointer"|"thumbs-up"|"dollar-sign"|"times-circle"|"calendar-alt"|"paper-plane"|"search"|"lightbulb"|"magnet"|"angle-up"|"angle-down"|"solid/crown"|"brands/discord"|"pen"|"plus"|"file"|"envelope"|"binoculars"|"info-circle"|"check-circle"|"exclamation-circle"|"check"|"arrow-left"|"trash"|"meh-rolling-eyes"|"bars"|"solid/star"|"solid/star-half-alt"|"regular/star"|"chevron-left"|"cog"|"power-off"|"question-circle"|"play"|"minus-circle"|"external-link"|"plane-departure"|"wind"|"map-marker-alt"|"clock"|"arrow-to-bottom"|"ellipsis-h"|"usd-circle"|"users"|"home-alt"|"trophy"|"building"|"unlink"|"bold"|"italic"|"underline"|"strikethrough"|"subscript"|"superscript"|"code"|"font"|"empty-set"|"horizontal-rule"|"page-break"|"image"|"table"|"poll"|"columns"|"sticky-note"|"caret-right"|"align-left"|"align-center"|"align-right"|"align-justify"|"indent"|"outdent"|"list-ul"|"check-square"|"h1"|"h2"|"h3"|"h4"|"list-ol"|"paragraph"|"quote-left"
1
+ export type TIcones = "long-arrow-right"|"times"|"solid/spinner-third"|"sack-dollar"|"bell"|"bullseye"|"project-diagram"|"user-friends"|"eye"|"lock"|"comments"|"phone"|"chalkboard-teacher"|"rocket"|"chart-bar"|"planet-ringed"|"crosshairs"|"brands/linkedin"|"plus-circle"|"comments-alt"|"user-circle"|"arrow-right"|"user-shield"|"shield-alt"|"chart-line"|"money-bill-wave"|"star"|"link"|"file-alt"|"long-arrow-left"|"user-plus"|"mouse-pointer"|"thumbs-up"|"dollar-sign"|"key"|"user"|"at"|"times-circle"|"calendar-alt"|"paper-plane"|"search"|"lightbulb"|"magnet"|"solid/crown"|"brands/discord"|"pen"|"plus"|"file"|"envelope"|"angle-up"|"angle-down"|"binoculars"|"info-circle"|"check-circle"|"exclamation-circle"|"check"|"meh-rolling-eyes"|"trash"|"arrow-left"|"bars"|"solid/star"|"solid/star-half-alt"|"regular/star"|"chevron-left"|"cog"|"power-off"|"question-circle"|"play"|"minus-circle"|"external-link"|"plane-departure"|"wind"|"usd-circle"|"users"|"home-alt"|"trophy"|"arrow-to-bottom"|"map-marker-alt"|"clock"|"ellipsis-h"|"building"|"bold"|"italic"|"underline"|"strikethrough"|"subscript"|"superscript"|"code"|"unlink"|"font"|"empty-set"|"horizontal-rule"|"page-break"|"image"|"table"|"poll"|"columns"|"sticky-note"|"caret-right"|"align-left"|"align-center"|"align-right"|"align-justify"|"indent"|"outdent"|"list-ul"|"check-square"|"h1"|"h2"|"h3"|"h4"|"list-ol"|"paragraph"|"quote-left"