lightning-base-components 1.16.3-alpha → 1.16.5-alpha

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 (111) hide show
  1. package/README.md +7 -0
  2. package/metadata/raptor.json +110 -0
  3. package/package.json +59 -2
  4. package/scopedImports/@salesforce-label-LightningForm.cancel.js +1 -0
  5. package/scopedImports/@salesforce-label-LightningForm.closeError.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningForm.edit.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningForm.editErrorHelp.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningForm.error.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningForm.errorPopoverHeading.js +1 -0
  10. package/scopedImports/@salesforce-label-LightningForm.preview.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningForm.previewHeader.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningForm.reload.js +1 -0
  13. package/scopedImports/@salesforce-label-LightningForm.save.js +1 -0
  14. package/scopedImports/@salesforce-label-LightningForm.saveFieldErrorSummary.js +1 -0
  15. package/scopedImports/@salesforce-label-LightningForm.undo.js +1 -0
  16. package/scopedImports/@salesforce-label-LightningLookup.messageWhenMissingInformation.js +1 -0
  17. package/src/lightning/button/__docs__/button.md +13 -0
  18. package/src/lightning/button/button.slds.css +155 -11
  19. package/src/lightning/buttonGroup/button-group.slds.css +35 -59
  20. package/src/lightning/buttonIcon/button-icon.slds.css +287 -122
  21. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +224 -39
  22. package/src/lightning/buttonStateful/button-stateful.slds.css +3269 -0
  23. package/src/lightning/card/card.slds.css +50 -0
  24. package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +180 -364
  25. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +46 -413
  26. package/src/lightning/datatable/datatable.js +2 -2
  27. package/src/lightning/datatable/rowSelection.js +21 -4
  28. package/src/lightning/datetimepicker/datetimepicker.html +1 -3
  29. package/src/lightning/datetimepicker/datetimepicker.js +5 -0
  30. package/src/lightning/fileDownload/__docs__/fileDownload.md +41 -0
  31. package/src/lightning/helptext/help-text.slds.css +184 -39
  32. package/src/lightning/icon/icon.slds.css +823 -3
  33. package/src/lightning/input/input-checkbox.slds.css +291 -32
  34. package/src/lightning/input/input-text.slds.css +70 -7
  35. package/src/lightning/inputAddress/__docs__/inputAddress.md +1 -1
  36. package/src/lightning/inputAddress/inputAddress.js +2 -1
  37. package/src/lightning/internationalizationLibrary/datetime/intlFormat.js +20 -2
  38. package/src/lightning/iso8601Utils/iso8601Utils.js +2 -3
  39. package/src/lightning/mediaUtils/__docs__/mediaUtils.md +87 -0
  40. package/src/lightning/mediaUtils/mediaUtils.js +321 -0
  41. package/src/lightning/mediaUtils/mediaUtils.js-meta.xml +6 -0
  42. package/src/lightning/modal/__docs__/migration.md +158 -0
  43. package/src/lightning/modal/__docs__/modal.md +414 -0
  44. package/src/lightning/modal/__examples__disabled/all/all.css +7 -0
  45. package/src/lightning/modal/__examples__disabled/all/all.html +9 -0
  46. package/src/lightning/modal/__examples__disabled/all/all.js +25 -0
  47. package/src/lightning/modal/__examples__disabled/allform/allform.css +7 -0
  48. package/src/lightning/modal/__examples__disabled/allform/allform.html +9 -0
  49. package/src/lightning/modal/__examples__disabled/allform/allform.js +49 -0
  50. package/src/lightning/modal/__examples__disabled/allmulti/allmulti.html +24 -0
  51. package/src/lightning/modal/__examples__disabled/allmulti/allmulti.js +12 -0
  52. package/src/lightning/modal/__examples__disabled/basic/basic.css +7 -0
  53. package/src/lightning/modal/__examples__disabled/basic/basic.html +9 -0
  54. package/src/lightning/modal/__examples__disabled/basic/basic.js +27 -0
  55. package/src/lightning/modal/__examples__disabled/demo/demo.html +15 -0
  56. package/src/lightning/modal/__examples__disabled/demo/demo.js +13 -0
  57. package/src/lightning/modal/__examples__disabled/demoall/demoall.html +26 -0
  58. package/src/lightning/modal/__examples__disabled/demoall/demoall.js +13 -0
  59. package/src/lightning/modal/__examples__disabled/demoallform/demoallform.css +3 -0
  60. package/src/lightning/modal/__examples__disabled/demoallform/demoallform.html +146 -0
  61. package/src/lightning/modal/__examples__disabled/demoallform/demoallform.js +240 -0
  62. package/src/lightning/modal/__examples__disabled/demofootless/demofootless.html +17 -0
  63. package/src/lightning/modal/__examples__disabled/demofootless/demofootless.js +11 -0
  64. package/src/lightning/modal/__examples__disabled/demoheadless/demoheadless.html +20 -0
  65. package/src/lightning/modal/__examples__disabled/demoheadless/demoheadless.js +12 -0
  66. package/src/lightning/modal/__examples__disabled/footless/footless.css +7 -0
  67. package/src/lightning/modal/__examples__disabled/footless/footless.html +9 -0
  68. package/src/lightning/modal/__examples__disabled/footless/footless.js +19 -0
  69. package/src/lightning/modal/__examples__disabled/headless/headless.css +7 -0
  70. package/src/lightning/modal/__examples__disabled/headless/headless.html +9 -0
  71. package/src/lightning/modal/__examples__disabled/headless/headless.js +27 -0
  72. package/src/lightning/modal/modal.html +3 -0
  73. package/src/lightning/modal/modal.js +93 -0
  74. package/src/lightning/modal/modal.js-meta.xml +6 -0
  75. package/src/lightning/modalBody/__docs__/modalBody.md +61 -0
  76. package/src/lightning/modalBody/modalBody.html +13 -0
  77. package/src/lightning/modalBody/modalBody.js +203 -0
  78. package/src/lightning/modalBody/modalBody.js-meta.xml +6 -0
  79. package/src/lightning/modalFooter/__docs__/modalFooter.md +72 -0
  80. package/src/lightning/modalFooter/modalFooter.html +8 -0
  81. package/src/lightning/modalFooter/modalFooter.js +161 -0
  82. package/src/lightning/modalFooter/modalFooter.js-meta.xml +6 -0
  83. package/src/lightning/modalHeader/__docs__/modalHeader.md +64 -0
  84. package/src/lightning/modalHeader/modalHeader.html +16 -0
  85. package/src/lightning/modalHeader/modalHeader.js +204 -0
  86. package/src/lightning/modalHeader/modalHeader.js-meta.xml +6 -0
  87. package/src/lightning/primitiveBubble/tooltip.slds.css +45 -1
  88. package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +4 -12
  89. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +2994 -319
  90. package/src/lightning/primitiveDatatableIeditPanel/primitiveDatatableIeditPanel.html +14 -11
  91. package/src/lightning/primitiveDatatableIeditPanel/primitiveDatatableIeditPanel.js +1 -0
  92. package/src/lightning/primitiveIcon/icon.slds.css +823 -3
  93. package/src/lightning/progressStep/base.html +1 -0
  94. package/src/lightning/progressStep/path.html +1 -1
  95. package/src/lightning/radioGroup/input-radio-group.slds.css +168 -379
  96. package/src/lightning/spinner/spinner.slds.css +8 -2
  97. package/src/lightning/timepicker/timepicker.html +1 -4
  98. package/src/lightning/timepicker/timepicker.js +9 -5
  99. package/src/lightning/treeGrid/treeGrid.js +66 -1
  100. package/src/lightning/utilsPrivate/linkUtils.js +1 -1
  101. package/src/lightning/formattedAddress/__component__/formattedAddress.spec.js +0 -61
  102. package/src/lightning/formattedAddress/__component__/formattedAddressDisabled.spec.js +0 -20
  103. package/src/lightning/formattedAddress/__component__/x/basic/basic.html +0 -10
  104. package/src/lightning/formattedAddress/__component__/x/basic/basic.js +0 -17
  105. package/src/lightning/input/__component__/inputCheckbox.spec.js +0 -60
  106. package/src/lightning/input/__component__/inputDateTimePicker.spec.js +0 -60
  107. package/src/lightning/input/__component__/inputNumber.spec.js +0 -75
  108. package/src/lightning/input/__component__/inputSelection.spec.js +0 -83
  109. package/src/lightning/input/__component__/x/tall/tall.css +0 -5
  110. package/src/lightning/input/__component__/x/tall/tall.html +0 -5
  111. package/src/lightning/input/__component__/x/tall/tall.js +0 -7
@@ -1,421 +1,12 @@
1
1
  /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
2
2
  Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
3
3
 
4
- /* Document
5
- * --------------------- */
6
-
7
- /**
8
- * Normalize box sizing to border box for all browsers.
9
- */
10
-
11
- *,
12
- ::before,
13
- ::after {
14
- box-sizing: border-box;
15
- }
16
-
17
- /* Grouping Content
18
- * --------------------- */
19
-
20
- /**
21
- * Add the correct display in IE.
22
- */
23
-
24
- main {
25
- display: block;
26
- }
27
-
28
- /**
29
- * 1. Remove the margin in all browsers.
30
- * 2. Remove the padding in all browsers.
31
- * 3. Normalize font sizes in all browsers.
32
- * 4. Normalize font weight in all browsers.
33
- */
34
-
35
- h1,
36
- h2,
37
- h3,
38
- h4,
39
- h5,
40
- h6 {
41
- font-size: 0.875rem; /* 3 */
42
- font-weight: normal; /* 4 */
43
- margin: 0; /* 1 */
44
- padding: 0; /* 2 */
45
- }
46
-
47
- /**
48
- * Remove the margin in all browsers.
49
- */
50
-
51
- p {
52
- margin: 0;
53
- }
54
-
55
- /**
56
- * 1. Remove the margin in all browsers.
57
- * 2. Normalize border styles in all browsers.
58
- */
59
-
60
- hr {
61
- margin: 0; /* 1 */
62
- border: 0; /* 2 */
63
- border-top-width: 1px; /* 2 */
64
- border-style: solid; /* 2 */
65
- border-color: inherit; /* 2 */
66
- }
67
-
68
- /**
69
- * 1. Remove the margin in all browsers.
70
- * 2. Remove the padding in all browsers.
71
- * 3. Remove the list-style in all browsers, sub-system dependant.
72
- */
73
-
74
- ol,
75
- ul {
76
- list-style: none; /* 3 */
77
- padding: 0; /* 2 */
78
- margin: 0; /* 1 */
79
- }
80
-
81
- /**
82
- * Remove the margin in all browsers.
83
- */
84
-
85
- dl,
86
- dt,
87
- dd {
88
- margin: 0;
89
- }
90
-
91
- /* Form Controls
92
- * --------------------- */
93
-
94
- /**
95
- * Remove the margin in all browsers.
96
- */
97
-
98
- form {
99
- margin: 0;
100
- }
101
-
102
- /**
103
- * 1. Correct font properties not being inherited.
104
- * 2. Remove the margin in Firefox and Safari.
105
- * 3. Fix correct color not being inherited.
106
- */
107
-
108
- button,
109
- input,
110
- optgroup,
111
- select,
112
- textarea {
113
- font: inherit; /* 1 */
114
- margin: 0; /* 2 */
115
- color: inherit; /* 3 */
116
- }
117
-
118
- /**
119
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
120
- */
121
-
122
- button,
123
- select {
124
- text-transform: none;
125
- }
126
-
127
- /**
128
- * 1. Correct inability to style clickable `input` types in iOS.
129
- * 2. Normalizes cursor indicator on clickable elements.
130
- */
131
-
132
- button,:host([data-render-mode="shadow"])
133
- [type='button'],:host([data-render-mode="shadow"])
134
- [type='reset'],:host([data-render-mode="shadow"])
135
- [type='submit'] {
136
- -webkit-appearance: button; /* 1 */
137
- appearance: button; /* 1 */
138
- cursor: pointer; /* 2 */
139
- }
140
-
141
- /**
142
- * Prevent option or optgroup to increase the width of a select.
143
- */
144
-
145
- select {
146
- max-width: 100%;
147
- }
148
-
149
- /**
150
- * Correct the outline style in Safari.
151
- */
152
-
153
- input:focus,
154
- button:focus,
155
- select:focus,
156
- textarea:focus {
157
- outline-offset: 0;
158
- }
159
-
160
- /**
161
- * Remove the inner border and padding in Firefox.
162
- */
163
-
164
- ::-moz-focus-inner {
165
- border-style: none;
166
- padding: 0;
167
- }
168
-
169
- /**
170
- * 1. Correct the text wrapping in Edge 18- and IE.
171
- * 2. Correct the color inheritance from `fieldset` elements in IE.
172
- * 3. Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
173
- */
174
-
175
- legend {
176
- color: inherit; /* 2 */
177
- display: table; /* 1 */
178
- max-width: 100%; /* 1 */
179
- white-space: normal; /* 1 */
180
- padding: 0; /* 3 */
181
- }
182
-
183
- /**
184
- * Add the correct vertical alignment in Chrome and Firefox.
185
- */
186
-
187
- progress {
188
- vertical-align: baseline;
189
- }
190
-
191
- /**
192
- * Correct the cursor style of increment and decrement buttons in Safari.
193
- */
194
-
195
- ::-webkit-inner-spin-button,
196
- ::-webkit-outer-spin-button {
197
- height: auto;
198
- }
199
-
200
- /**
201
- * 1. Correct the odd appearance in Chrome and Safari.
202
- * 2. Correct the outline style in Safari.
203
- */
204
-
205
- :host([data-render-mode="shadow"]) [type='search'] {
206
- -webkit-appearance: textfield; /* 1 */
207
- outline-offset: -2px; /* 2 */
208
- }
209
-
210
- /**
211
- * Remove the inner padding in Chrome and Safari on macOS.
212
- */
213
-
214
- ::-webkit-search-decoration {
215
- -webkit-appearance: none;
216
- }
217
-
218
- /**
219
- * 1. Correct the inability to style clickable types in iOS and Safari.
220
- * 2. Change font properties to 'inherit' in Safari.
221
- */
222
-
223
- ::-webkit-file-upload-button {
224
- -webkit-appearance: button; /* 1 */
225
- font: inherit; /* 2 */
226
- }
227
-
228
- /**
229
- * Restore the focus styles unset by the previous rule.
230
- */
231
-
232
- :-moz-focusring {
233
- outline: 1px dotted ButtonText;
234
- }
235
-
236
- /**
237
- * Remove the additional ':invalid' styles in Firefox.
238
- * See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
239
- */
240
-
241
- :-moz-ui-invalid {
242
- box-shadow: none;
243
- }
244
-
245
- /* Text-level semantics
246
- * --------------------- */
247
-
248
- /**
249
- * Normalizes cursor indicator on clickable elements.
250
- */
251
-
252
- a {
253
- cursor: pointer;
254
- }
255
-
256
- /**
257
- * Add the correct text decoration in Chrome, Edge, and Safari.
258
- */
259
-
260
- abbr[title] {
261
- text-decoration: underline dotted;
262
- cursor: help;
263
- }
264
-
265
- /**
266
- * Add the correct font weight in Edge and Safari.
267
- */
268
-
269
- b,
270
- strong {
271
- font-weight: bolder;
272
- }
273
-
274
- /**
275
- * 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
276
- * 2. Correct the odd 'em' font sizing in all browsers.
277
- * 3. Remove the margin in all browsers.
278
- */
279
-
280
- code,
281
- kbd,
282
- samp,
283
- pre {
284
- font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace; /* 1 */
285
- font-size: 1em; /* 2 */
286
- margin: 0; /* 3 */
287
- }
288
-
289
- /**
290
- * Prevent overflow of the container in all browsers
291
- */
292
-
293
- pre {
294
- overflow: auto;
295
- -ms-overflow-style: scrollbar;
296
- }
297
-
298
- /**
299
- * Add the correct font size in all browsers.
300
- */
301
-
302
- small {
303
- font-size: 80%;
304
- }
305
-
306
- /**
307
- * Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
308
- */
309
-
310
- sub,
311
- sup {
312
- font-size: 75%;
313
- line-height: 0;
314
- position: relative;
315
- vertical-align: baseline;
316
- }
317
-
318
- sub {
319
- bottom: -0.25em;
320
- }
321
-
322
- sup {
323
- top: -0.5em;
324
- }
325
-
326
- /* Embedded content
327
- * --------------------- */
328
-
329
- /**
330
- * Change the alignment on media elements in all browsers.
331
- */
332
-
333
- audio,
334
- canvas,
335
- iframe,
336
- img,
337
- svg,
338
- video {
339
- vertical-align: middle;
340
- }
341
-
342
- /**
343
- * Make images responsive by default.
344
- */
345
-
346
- img,:host([data-render-mode="shadow"])
347
- [type='image'] {
348
- max-width: 100%;
349
- height: auto;
350
- }
351
-
352
- /**
353
- * Remove the border on iframes in all browsers.
354
- */
355
-
356
- iframe {
357
- border-style: none;
358
- }
359
-
360
- /**
361
- * Change the fill color to match the text color in all browsers.
362
- */
363
-
364
- svg:not([fill]) {
365
- fill: currentColor;
366
- }
367
-
368
- /* Tabular data
369
- * --------------------- */
370
-
371
- /**
372
- * 1. Remove text indentation from table contents in Chrome and Safari. [Chromium Bug 999088](https://bugs.chromium.org/p/chromium/issues/detail?id=999088), [Webkit Bug 201297](https://bugs.webkit.org/show_bug.cgi?id=201297)
373
- * 2. Correct table border color inheritance in all Chrome and Safari. [Chromium Bug 935729](https://bugs.chromium.org/p/chromium/issues/detail?id=935729), [Webkit Bug 195016](https://bugs.webkit.org/show_bug.cgi?id=195016)
374
- * 3. Collapse border spacing in all browsers
375
- */
376
-
377
- table {
378
- text-indent: 0; /* 1 */
379
- border-color: inherit; /* 2 */
380
- border-collapse: collapse; /* 3 */
381
- }
382
-
383
- /* Shadow host
384
- * --------------------- */
385
-
386
- /**
387
- * 1. Change the line height in all browsers
388
- * 2. Change the base font size in all browsers, inherit 100% from `html`
389
- * 3. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS
390
- * 4. Remove the grey highlight on links in iOS
391
- * 5. Font Stack:
392
- * a. Safari for OS X and iOS (San Francisco)
393
- * b. Chrome < 56 for OS X (San Francisco)
394
- * c. Windows
395
- * d. Android
396
- * e. Web Fallback
397
- * f. Emoji font stack [Mac, Windows, Linux]
398
- */
399
-
400
- :host([data-render-mode="shadow"]) {
401
- line-height: 1.5;
402
- font-size: 0.875rem;
403
- -webkit-tap-highlight-color: transparent;
404
- -ms-text-size-adjust: 100%;
405
- -webkit-text-size-adjust: 100%;
406
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, 'Helvetica Neue', Arial, sans-serif,
407
- 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
408
- }
409
-
410
- /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
411
- Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
412
-
413
4
  :host([data-render-mode="shadow"]:focus) {
414
5
  outline: 0;
415
6
  }
416
7
 
417
8
  :host([data-render-mode="shadow"]) [part~='button'] {
418
- display: var(--sds-c-button-display, inline-flex);
9
+ display: inline-flex;
419
10
  position: relative;
420
11
  background: none;
421
12
  background-color: var(--sds-c-button-color-background, var(--sds-s-button-color-background, transparent));
@@ -440,14 +31,56 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
440
31
  border-width: var(--sds-c-button-sizing-border, var(--sds-s-button-sizing-border, 1px));
441
32
  border-style: solid;
442
33
  border-color: var(--sds-c-button-color-border, var(--sds-s-button-color-border, transparent));
443
- border-radius: var(--sds-c-button-radius-border, var(--sds-c-button-radius-border, 0.25rem));
34
+ border-start-start-radius: var(
35
+ --sds-c-button-radius-border-startstart,
36
+ var(
37
+ --sds-c-button-radius-border,
38
+ var(
39
+ --sds-s-button-radius-border-startstart,
40
+ var(--sds-s-button-radius-border, var(--sds-g-radius-border-2, 0.25rem))
41
+ )
42
+ )
43
+ );
44
+ border-start-end-radius: var(
45
+ --sds-c-button-radius-border-startend,
46
+ var(
47
+ --sds-c-button-radius-border,
48
+ var(
49
+ --sds-s-button-radius-border-startend,
50
+ var(--sds-s-button-radius-border, var(--sds-g-radius-border-2, 0.25rem))
51
+ )
52
+ )
53
+ );
54
+ border-end-start-radius: var(
55
+ --sds-c-button-radius-border-endstart,
56
+ var(
57
+ --sds-c-button-radius-border,
58
+ var(
59
+ --sds-s-button-radius-border-endstart,
60
+ var(--sds-s-button-radius-border, var(--sds-g-radius-border-2, 0.25rem))
61
+ )
62
+ )
63
+ );
64
+ border-end-end-radius: var(
65
+ --sds-c-button-radius-border-endend,
66
+ var(
67
+ --sds-c-button-radius-border,
68
+ var(
69
+ --sds-s-button-radius-border-endend,
70
+ var(--sds-s-button-radius-border, var(--sds-g-radius-border-2, 0.25rem))
71
+ )
72
+ )
73
+ );
444
74
  box-shadow: var(--sds-c-button-shadow, var(--sds-s-button-shadow));
445
- width: var(--sds-c-button-width);
75
+ width: var(--sds-c-button-sizing-width);
76
+
77
+ /* this line height hook is incorrect but is used in core - need to get teams to change */
78
+ /* stylelint-disable-next-line sds-stylelint-plugin/styling-hooks-pattern */
446
79
  line-height: var(--sds-c-button-line-height);
447
80
  white-space: normal;
448
81
  user-select: none;
449
82
  align-items: center;
450
- text-decoration: var(--sds-c-button-text-decoration, none);
83
+ text-decoration: var(--sds-c-button-font-decoration, none);
451
84
  appearance: none;
452
85
  }
453
86
 
@@ -1542,9 +1542,9 @@ export default class LightningDatatable extends LightningElement {
1542
1542
 
1543
1543
  /************************ EVENT DISPATCHERS **************************/
1544
1544
 
1545
- fireSelectedRowsChange(selectedRows) {
1545
+ fireSelectedRowsChange(selectedRows, config) {
1546
1546
  const event = new CustomEvent('rowselection', {
1547
- detail: { selectedRows },
1547
+ detail: { selectedRows, config: config || {} },
1548
1548
  });
1549
1549
 
1550
1550
  this.dispatchEvent(event);
@@ -32,6 +32,13 @@ export {
32
32
 
33
33
  const MAX_ROW_SELECTION_DEFAULT = undefined;
34
34
 
35
+ const ROWS_ACTION = {
36
+ SELECT_ALL_ROWS: 'selectAllRows',
37
+ DESELECT_ALL_ROWS: 'deselectAllRows',
38
+ ROW_SELECT: 'rowSelect',
39
+ ROW_DESELECT: 'rowDeselect',
40
+ };
41
+
35
42
  /************************** EVENT HANDLERS **************************/
36
43
 
37
44
  /**
@@ -43,7 +50,9 @@ const MAX_ROW_SELECTION_DEFAULT = undefined;
43
50
  export function handleSelectAllRows(event) {
44
51
  event.stopPropagation();
45
52
  markAllRowsSelected(this.state);
46
- this.fireSelectedRowsChange(this.getSelectedRows());
53
+ this.fireSelectedRowsChange(this.getSelectedRows(), {
54
+ selection: ROWS_ACTION.SELECT_ALL_ROWS,
55
+ });
47
56
  }
48
57
 
49
58
  /**
@@ -54,7 +63,9 @@ export function handleSelectAllRows(event) {
54
63
  export function handleDeselectAllRows(event) {
55
64
  event.stopPropagation();
56
65
  markAllRowsDeselected(this.state);
57
- this.fireSelectedRowsChange(this.getSelectedRows());
66
+ this.fireSelectedRowsChange(this.getSelectedRows(), {
67
+ selection: ROWS_ACTION.DESELECT_ALL_ROWS,
68
+ });
58
69
  }
59
70
 
60
71
  /**
@@ -77,7 +88,10 @@ export function handleSelectRow(event) {
77
88
 
78
89
  markSelectedRowsInterval(this.state, fromRowKey, rowKeyValue);
79
90
  setLastRowSelection(this.state, rowKeyValue);
80
- this.fireSelectedRowsChange(this.getSelectedRows());
91
+ this.fireSelectedRowsChange(this.getSelectedRows(), {
92
+ selection: ROWS_ACTION.ROW_SELECT,
93
+ value: rowKeyValue,
94
+ });
81
95
  }
82
96
 
83
97
  /**
@@ -100,7 +114,10 @@ export function handleDeselectRow(event) {
100
114
 
101
115
  markDeselectedRowsInterval(this.state, fromRowKey, rowKeyValue);
102
116
  setLastRowSelection(this.state, rowKeyValue);
103
- this.fireSelectedRowsChange(this.getSelectedRows());
117
+ this.fireSelectedRowsChange(this.getSelectedRows(), {
118
+ selection: ROWS_ACTION.ROW_DESELECT,
119
+ value: rowKeyValue,
120
+ });
104
121
  }
105
122
 
106
123
  /**
@@ -48,9 +48,7 @@
48
48
  </div>
49
49
  </div>
50
50
  </div>
51
- <template if:true={customErrorMessage}>
52
- <div data-error-message id="errormessage" class="slds-form-element__help" aria-live="assertive">{customErrorMessage}</div>
53
- </template>
51
+ <div data-error-message id="errormessage" class={computedClass} aria-live="assertive">{customErrorMessage}</div>
54
52
 
55
53
  </fieldset>
56
54
  </div>
@@ -335,6 +335,11 @@ export default class LightningDateTimePicker extends LightningElement {
335
335
  return this._dateMax;
336
336
  }
337
337
 
338
+ get computedClass() {
339
+ let displayClass = this._customErrorMessage ? 'slds-show' : 'slds-hide';
340
+ return 'slds-form-element__help ' + displayClass;
341
+ }
342
+
338
343
  get errorMessageElementId() {
339
344
  return getRealDOMId(
340
345
  this.template.querySelector('[data-error-message]')
@@ -0,0 +1,41 @@
1
+ Add file downloads to Experience Cloud sites that use the Build Your Own (LWR) template.
2
+
3
+ To create a component that downloads a file, import `generateUrl` from `lightning/fileDownload`. Use the `generateUrl` function and pass in the record ID number of the files that you want to download. This function supports Content Document, Content Version, Attachment, or Document record IDs.
4
+
5
+ This example returns a download URL that you can pass into `window.open` to download the file.
6
+
7
+ ```javascript
8
+ import { generateUrl } from 'lightning/fileDownload';
9
+ const url = generateUrl(recordId);
10
+ window.open(url);
11
+ ```
12
+
13
+ In this example, clicking a download button on a record generates a URL and uses it to download the record's files.
14
+
15
+ ```HTML
16
+ <template>
17
+ <div>
18
+ <lightning-input type="text" label="File download for the record" value={recordId}></lightning-input>
19
+ <lightning-button label="Download" onclick={handleClick} class="slds-m-left_x-small"></lightning-button>
20
+ </div>
21
+ </template>
22
+ ```
23
+
24
+ ```Javascript
25
+ import { LightningElement } from 'lwc';
26
+ import { generateUrl } from 'lightning/fileDownload';
27
+ export default class Download extends LightningElement {
28
+ recordId;
29
+ url;
30
+ handleClick() {
31
+ this.url = generateUrl(this.recordId);
32
+ window.open(this.url)
33
+ }
34
+ }
35
+ ```
36
+
37
+ #### Considerations
38
+
39
+ - Authenticated users can download any files they have access to. Unauthenticated users can only download Content Document files that they can access with a Library membership.
40
+
41
+ - The `recordId` parameter in `generateUrl` accepts IDs for Content Document, Content Version, Attachment, or Document files.