@cloudscape-design/components 3.0.1047 → 3.0.1049
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.
- package/app-layout/visual-refresh-toolbar/skeleton/breadcrumbs/index.d.ts.map +1 -1
- package/app-layout/visual-refresh-toolbar/skeleton/breadcrumbs/index.js +4 -2
- package/app-layout/visual-refresh-toolbar/skeleton/breadcrumbs/index.js.map +1 -1
- package/app-layout/visual-refresh-toolbar/skeleton/breadcrumbs/styles.css.js +7 -0
- package/app-layout/visual-refresh-toolbar/skeleton/breadcrumbs/styles.scoped.css +7 -0
- package/app-layout/visual-refresh-toolbar/skeleton/breadcrumbs/styles.selectors.js +8 -0
- package/attribute-editor/styles.css.js +15 -15
- package/attribute-editor/styles.scoped.css +28 -28
- package/attribute-editor/styles.selectors.js +15 -15
- package/breadcrumb-group/item/styles.css.js +7 -7
- package/breadcrumb-group/item/styles.scoped.css +28 -28
- package/breadcrumb-group/item/styles.selectors.js +7 -7
- package/button-dropdown/item-element/styles.css.js +16 -16
- package/button-dropdown/item-element/styles.scoped.css +27 -27
- package/button-dropdown/item-element/styles.selectors.js +16 -16
- package/date-input/index.d.ts +1 -1
- package/date-input/index.d.ts.map +1 -1
- package/date-input/index.js.map +1 -1
- package/date-input/interfaces.d.ts +29 -0
- package/date-input/interfaces.d.ts.map +1 -1
- package/date-input/interfaces.js.map +1 -1
- package/date-input/internal.d.ts +1 -4
- package/date-input/internal.d.ts.map +1 -1
- package/date-input/internal.js +39 -4
- package/date-input/internal.js.map +1 -1
- package/date-input/utils.d.ts +9 -1
- package/date-input/utils.d.ts.map +1 -1
- package/date-input/utils.js +32 -7
- package/date-input/utils.js.map +1 -1
- package/help-panel/styles.css.js +6 -6
- package/help-panel/styles.scoped.css +73 -73
- package/help-panel/styles.selectors.js +6 -6
- package/internal/base-component/styles.scoped.css +1 -1
- package/internal/components/masked-input/index.d.ts.map +1 -1
- package/internal/components/masked-input/index.js +2 -2
- package/internal/components/masked-input/index.js.map +1 -1
- package/internal/components/masked-input/interfaces.d.ts +6 -1
- package/internal/components/masked-input/interfaces.d.ts.map +1 -1
- package/internal/components/masked-input/interfaces.js.map +1 -1
- package/internal/components/masked-input/use-mask.d.ts +1 -1
- package/internal/components/masked-input/use-mask.d.ts.map +1 -1
- package/internal/components/masked-input/use-mask.js +7 -5
- package/internal/components/masked-input/use-mask.js.map +1 -1
- package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
- package/internal/components/masked-input/utils/mask-format.js +19 -20
- package/internal/components/masked-input/utils/mask-format.js.map +1 -1
- package/internal/components/token-list/styles.css.js +10 -10
- package/internal/components/token-list/styles.scoped.css +25 -25
- package/internal/components/token-list/styles.selectors.js +10 -10
- package/internal/environment.js +2 -2
- package/internal/environment.json +2 -2
- package/internal/manifest.json +1 -1
- package/internal/plugins/helpers/use-global-breadcrumbs.d.ts.map +1 -1
- package/internal/plugins/helpers/use-global-breadcrumbs.js +5 -1
- package/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -1
- package/internal/utils/date-time/format-date-iso.d.ts.map +1 -1
- package/internal/utils/date-time/format-date-iso.js.map +1 -1
- package/internal/utils/date-time/interfaces.d.ts +16 -0
- package/internal/utils/date-time/interfaces.d.ts.map +1 -0
- package/internal/utils/date-time/interfaces.js +4 -0
- package/internal/utils/date-time/interfaces.js.map +1 -0
- package/link/index.d.ts.map +1 -1
- package/link/index.js +11 -27
- package/link/interfaces.d.ts +23 -0
- package/link/interfaces.d.ts.map +1 -1
- package/link/interfaces.js.map +1 -1
- package/link/internal-do-not-use-core.js +34 -0
- package/link/internal-do-not-use-core.js.map +1 -0
- package/link/internal.d.ts.map +1 -1
- package/link/internal.js +3 -2
- package/link/internal.js.map +1 -1
- package/link/style.d.ts +2 -0
- package/link/style.d.ts.map +1 -0
- package/link/style.js +21 -0
- package/link/style.js.map +1 -0
- package/link/styles.css.js +20 -20
- package/link/styles.scoped.css +103 -102
- package/link/styles.selectors.js +20 -20
- package/package.json +1 -1
- package/table/body-cell/styles.css.js +47 -47
- package/table/body-cell/styles.scoped.css +374 -375
- package/table/body-cell/styles.selectors.js +47 -47
- package/tag-editor/styles.css.js +3 -3
- package/tag-editor/styles.scoped.css +13 -13
- package/tag-editor/styles.selectors.js +3 -3
- package/text-content/styles.css.js +1 -1
- package/text-content/styles.scoped.css +66 -66
- package/text-content/styles.selectors.js +1 -1
- package/link/index.js.map +0 -1
|
@@ -18,15 +18,16 @@ class MaskFormat {
|
|
|
18
18
|
return this.inputSeparators.indexOf(key) !== -1;
|
|
19
19
|
}
|
|
20
20
|
isValid(value) {
|
|
21
|
+
// No inputSeparators will be present as they are replaced with the separator prior.
|
|
21
22
|
const inputSegments = value.split(this.separator);
|
|
22
23
|
if (inputSegments.length > this.segments.length) {
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
25
26
|
return inputSegments.every((segmentValue, i) => {
|
|
26
27
|
const segment = this.segments[i];
|
|
27
|
-
//
|
|
28
|
+
// Disallow empty segments
|
|
28
29
|
if (segmentValue === '') {
|
|
29
|
-
// except empty last segment (e.g. trailing separator "12:")
|
|
30
|
+
// except empty last segment (e.g. trailing separator "12:").
|
|
30
31
|
if (i === inputSegments.length - 1) {
|
|
31
32
|
return true;
|
|
32
33
|
}
|
|
@@ -34,22 +35,22 @@ class MaskFormat {
|
|
|
34
35
|
return false;
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
//
|
|
38
|
+
// Only allow numerals.
|
|
38
39
|
if (!segmentValue.match(/^\d+$/)) {
|
|
39
40
|
return false;
|
|
40
41
|
}
|
|
41
|
-
//
|
|
42
|
+
// Disallow incomplete segments, except at end.
|
|
42
43
|
if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {
|
|
43
44
|
return false;
|
|
44
45
|
}
|
|
45
|
-
//
|
|
46
|
+
// Limit numerical value.
|
|
46
47
|
const intValue = parseInt(segmentValue, 10);
|
|
47
|
-
//
|
|
48
|
+
// Handle values padded with 0s that are lost during parsing.
|
|
48
49
|
if (segmentValue.length > segment.length) {
|
|
49
50
|
return false;
|
|
50
51
|
}
|
|
51
52
|
if (intValue < segment.min || intValue > segment.max(value)) {
|
|
52
|
-
//
|
|
53
|
+
// Allow incomplete segments in final position.
|
|
53
54
|
if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {
|
|
54
55
|
return true;
|
|
55
56
|
}
|
|
@@ -69,14 +70,12 @@ class MaskFormat {
|
|
|
69
70
|
return '';
|
|
70
71
|
}
|
|
71
72
|
autoComplete(value) {
|
|
72
|
-
// aka [...completeSegments, lastSegment] = value.split(':')
|
|
73
|
-
// but that's not valid :/
|
|
74
73
|
const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();
|
|
75
74
|
const lastSegment = this.segments[completeSegmentValues.length];
|
|
76
|
-
//
|
|
77
|
-
// e.g. 10:1 -> 10:01
|
|
75
|
+
// If the last segment isn't complete, pad it with a preceding 0,
|
|
76
|
+
// e.g. 10:1 -> 10:01.
|
|
78
77
|
const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);
|
|
79
|
-
//
|
|
78
|
+
// Recombine, and pad with extra segments for the full format.
|
|
80
79
|
const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];
|
|
81
80
|
while (partial.length < this.segments.length) {
|
|
82
81
|
const nextSegment = this.segments[partial.length];
|
|
@@ -96,17 +95,17 @@ class MaskFormat {
|
|
|
96
95
|
}
|
|
97
96
|
replaceDigitsWithZeroes(value, cursorStart, cursorEnd) {
|
|
98
97
|
const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;
|
|
99
|
-
//
|
|
98
|
+
// Move selection forwards if it starts with a separator.
|
|
100
99
|
if (this.isCursorAtSeparator(cursorStart)) {
|
|
101
100
|
cursorStart++;
|
|
102
101
|
}
|
|
103
|
-
//
|
|
102
|
+
// First, insert zeros in a partial segment at beginning of selection.
|
|
104
103
|
if (!this.isSegmentStart(cursorStart)) {
|
|
105
104
|
const segment = this.positionFormats.get(cursorStart);
|
|
106
105
|
value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);
|
|
107
106
|
cursorStart = segment.end + 1;
|
|
108
107
|
}
|
|
109
|
-
//
|
|
108
|
+
// Then, loop through remaining segments, filling with zeros.
|
|
110
109
|
let currentSegment;
|
|
111
110
|
while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1))) {
|
|
112
111
|
const insertionEnd = Math.min(cursorEnd, currentSegment.end);
|
|
@@ -188,8 +187,8 @@ class MaskFormat {
|
|
|
188
187
|
const keyArr = text.trim().split('');
|
|
189
188
|
let position = cursorStart;
|
|
190
189
|
let formattedValue = value;
|
|
191
|
-
//
|
|
192
|
-
// we replace it with the value in buffer even if the value in buffer is shorter
|
|
190
|
+
// If a selection range captures the end of the current value,
|
|
191
|
+
// we replace it with the value in buffer even if the value in buffer is shorter.
|
|
193
192
|
if (cursorEnd > cursorStart && cursorEnd === value.length) {
|
|
194
193
|
formattedValue = value.slice(0, cursorStart);
|
|
195
194
|
}
|
|
@@ -249,7 +248,7 @@ class MaskFormat {
|
|
|
249
248
|
}
|
|
250
249
|
}
|
|
251
250
|
value = this.tryAppendSeparator(value);
|
|
252
|
-
// Move cursor in front of separator if behind after overwriting a character
|
|
251
|
+
// Move cursor in front of separator if behind after overwriting a character.
|
|
253
252
|
if (this.isCursorAtSeparator(position)) {
|
|
254
253
|
position++;
|
|
255
254
|
}
|
|
@@ -268,11 +267,11 @@ class MaskFormat {
|
|
|
268
267
|
const max = segment.max;
|
|
269
268
|
const fullSegment = Object.assign(Object.assign({}, segment), { max: typeof max === 'number' ? () => max : max, start: position, end: position + segment.length });
|
|
270
269
|
this.segments.push(fullSegment);
|
|
271
|
-
//
|
|
270
|
+
// Insert this format segment for every char in the max value.
|
|
272
271
|
for (let j = 0; j < fullSegment.length; j++) {
|
|
273
272
|
this.positionFormats.set(position++, fullSegment);
|
|
274
273
|
}
|
|
275
|
-
//
|
|
274
|
+
// Skip a position for separator.
|
|
276
275
|
position++;
|
|
277
276
|
}
|
|
278
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask-format.js","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { padLeftZeros } from '../../../utils/strings';\nimport { insertAt } from './strings';\n\ninterface FormatSegment {\n min: number;\n max: number | ((value: string) => number);\n length: number;\n default?: number;\n}\n\ninterface FormatSegmentFull extends FormatSegment {\n start: number;\n max(value: string): number;\n end: number;\n}\n\nexport interface MaskArgs {\n separator: string;\n inputSeparators?: Array<string>;\n segments: Array<FormatSegment>;\n}\n\ninterface ChangeResult {\n value: string;\n position: number;\n}\n\nclass MaskFormat {\n separator: string;\n private inputSeparators: Array<string>;\n private segments: Array<FormatSegmentFull>;\n private positionFormats = new Map<number, FormatSegmentFull>();\n\n constructor({ separator, inputSeparators = [], segments }: MaskArgs) {\n this.segments = [];\n this.separator = separator;\n\n this.inputSeparators = [...inputSeparators, separator];\n this.enrichSegmentDefinitions(segments);\n }\n\n tryAppendSeparator(value: string) {\n const withSeparator = `${value}${this.separator}`;\n return this.isValid(withSeparator) ? withSeparator : value;\n }\n\n isSeparator(key: string): boolean {\n return this.inputSeparators.indexOf(key) !== -1;\n }\n\n isValid(value: string): boolean {\n const inputSegments = value.split(this.separator);\n\n if (inputSegments.length > this.segments.length) {\n return false;\n }\n\n return inputSegments.every((segmentValue, i) => {\n const segment = this.segments[i];\n\n // disallow empty segments\n if (segmentValue === '') {\n // except empty last segment (e.g. trailing separator \"12:\")\n if (i === inputSegments.length - 1) {\n return true;\n } else {\n return false;\n }\n }\n // only allow numerals\n if (!segmentValue.match(/^\\d+$/)) {\n return false;\n }\n // disallow incomplete segments, except at end\n if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {\n return false;\n }\n // limit numerical value\n const intValue = parseInt(segmentValue, 10);\n\n // Handles values padded with 0s that are lost during parsing\n if (segmentValue.length > segment.length) {\n return false;\n }\n\n if (intValue < segment.min || intValue > segment.max(value)) {\n // allow incomplete segments in final position\n if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {\n return true;\n }\n return false;\n }\n return true;\n });\n }\n\n getValidValue(value: string): string {\n let validValue = value;\n\n do {\n if (this.isValid(validValue)) {\n return this.tryAppendSeparator(validValue);\n }\n\n validValue = validValue.substring(0, validValue.length - 1);\n } while (validValue.length > 0);\n\n return '';\n }\n\n autoComplete(value: string): string {\n // aka [...completeSegments, lastSegment] = value.split(':')\n // but that's not valid :/\n const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();\n const lastSegment = this.segments[completeSegmentValues.length];\n\n // if the last segment isn't complete, pad it with a preceding 0\n // e.g. 10:1 -> 10:01\n const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);\n\n // recombine, and pad with extra segments for the full format\n const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];\n while (partial.length < this.segments.length) {\n const nextSegment = this.segments[partial.length];\n const segmentValue = this.padWithDefaultValue('', nextSegment);\n partial.push(segmentValue);\n }\n value = partial.join(this.separator);\n value = this.correctMinMaxValues(value);\n return value;\n }\n\n getSegmentValueWithAddition(position: number, value: string, enteredDigit: string) {\n const segment = this.positionFormats.get(position)!;\n const segmentValue = value.substr(segment.start, segment.length);\n const segmentPosition = position - segment.start;\n const newValue = insertAt(segmentValue, enteredDigit, segmentPosition, segmentPosition + 1);\n return parseInt(newValue, 10);\n }\n\n replaceDigitsWithZeroes(value: string, cursorStart: number, cursorEnd: number): ChangeResult {\n const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;\n\n // move selection forwards if it starts with a separator\n if (this.isCursorAtSeparator(cursorStart)) {\n cursorStart++;\n }\n\n // first, insert zeros in a partial segment at beginning of selection\n if (!this.isSegmentStart(cursorStart)) {\n const segment = this.positionFormats.get(cursorStart)!;\n value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);\n cursorStart = segment.end + 1;\n }\n\n // then loop through remaining segments, filling with zeros\n let currentSegment: FormatSegmentFull;\n while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1)!)) {\n const insertionEnd = Math.min(cursorEnd, currentSegment.end);\n value = insertAt(\n value,\n padLeftZeros('', insertionEnd - currentSegment.start),\n currentSegment.start,\n insertionEnd\n );\n cursorStart = insertionEnd + 1;\n }\n\n value = this.correctMinMaxValues(value);\n\n return {\n value,\n position,\n };\n }\n\n handleSeparatorInput(value: string, position: number): ChangeResult | void {\n if (position === value.length && !this.isSegmentStart(position)) {\n const segment = this.positionFormats.get(position)!;\n let segmentValue = value.substr(segment.start, segment.length);\n segmentValue = this.padWithDefaultValue(segmentValue, segment);\n value = insertAt(value, segmentValue, segment.start, segment.end);\n value = this.correctMinMaxValues(value);\n return {\n value,\n position: value.length,\n };\n }\n }\n\n isCursorAtSeparator(position: number) {\n return 0 < position && position < this.getMaxLength() && this.positionFormats.get(position) === undefined;\n }\n\n isSegmentStart(position: number) {\n return position === 0 || this.isCursorAtSeparator(position - 1);\n }\n\n getSegmentMaxValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.max(value);\n }\n\n getSegmentMinValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.min;\n }\n\n getMaxLength() {\n const last = this.segments[this.segments.length - 1];\n return last.start + last.length;\n }\n\n deleteSeparator(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 2, position - 1);\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 2,\n };\n }\n\n deleteDigit(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 1, position);\n\n // 23:59|: => backspace => 23:5|\n const length = value.length;\n if (value.slice(length - 2) === '0:') {\n value = value.slice(0, length - 2);\n }\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 1,\n };\n }\n\n correctMinMaxValues(value: string): string {\n let segment = this.positionFormats.get(0);\n while (segment && value.length >= segment.end) {\n const segmentValue = parseInt(value.substr(segment.start, segment.length), 10);\n const segmentMax = segment.max(value);\n if (segmentValue < segment.min) {\n let toInsert = segment.min.toFixed();\n toInsert = padLeftZeros(toInsert, segment.length);\n value = insertAt(value, toInsert, segment.start, segment.end);\n }\n if (segmentValue > segmentMax) {\n value = insertAt(value, segmentMax.toFixed(), segment.start, segment.end);\n }\n segment = this.positionFormats.get(segment.end + 1);\n }\n return value.substr(0, this.segments[this.segments.length - 1].end);\n }\n\n formatPastedText(text: string, value: string, cursorStart: number, cursorEnd: number): string {\n const keyArr = text.trim().split('');\n\n let position = cursorStart;\n\n let formattedValue = value;\n // if a selection range captures the end of the current value\n // we replace it with the value in buffer even if the value in buffer is shorter\n if (cursorEnd > cursorStart && cursorEnd === value.length) {\n formattedValue = value.slice(0, cursorStart);\n }\n\n for (const key of keyArr) {\n if (position >= this.getMaxLength()) {\n break;\n }\n\n const result = this.processKey(formattedValue, key, position);\n formattedValue = result.value;\n position = result.position;\n }\n\n return this.tryAppendSeparator(formattedValue);\n }\n\n processKey(initialValue: string, key: string, initialPosition: number) {\n let value = initialValue;\n let position = initialPosition;\n\n if (this.isSeparator(key)) {\n const result = this.handleSeparatorInput(value, position);\n if (result) {\n value = result.value;\n position = result.position;\n }\n } else {\n const isCursorAtEnd = position === value.length;\n const segmentValue = this.getSegmentValueWithAddition(position, value, key);\n const segmentMaxValue = this.getSegmentMaxValue(value, position);\n const segmentMinValue = this.getSegmentMinValue(value, position);\n const firstDigitGreater = parseInt(key, 10) > parseInt(segmentMaxValue.toFixed()[0], 10);\n const isValidPosition = isCursorAtEnd || segmentValue.toFixed().length === 1;\n const exceedsMaxAtSegmentStart = this.isSegmentStart(position) && isValidPosition && firstDigitGreater;\n\n if (exceedsMaxAtSegmentStart) {\n // 22:| => Enter '9' => 22:09|\n // |1 => Enter '9' => 09|\n value = insertAt(value, `0${key}`, position, position + 2);\n position += 2;\n } else if (segmentValue > segmentMaxValue && this.isSegmentStart(position)) {\n // 22:|22 => Enter '9' => 22:59|\n value = insertAt(value, segmentMaxValue.toFixed(), position, position + segmentMaxValue.toFixed().length);\n position += segmentMaxValue.toFixed().length;\n } else if (segmentValue > segmentMaxValue) {\n // 2|2:22 => Enter '9' => 23:|22\n value = insertAt(value, segmentMaxValue.toFixed(), position - 1, position + 1);\n position += 1;\n } else if (segmentValue < segmentMinValue && !this.isSegmentStart(position)) {\n // 0| => enter '0' => 01:\n value = insertAt(value, segmentMinValue.toFixed(), position, position + 1);\n position += 1;\n } else {\n // 22:| => Enter '5' => 23:5|\n value = insertAt(value, key, position, position + 1);\n position += 1;\n }\n }\n\n value = this.tryAppendSeparator(value);\n\n // Move cursor in front of separator if behind after overwriting a character\n if (this.isCursorAtSeparator(position)) {\n position++;\n }\n\n return { value, position };\n }\n\n private padWithDefaultValue(segmentValue: string, segment: FormatSegmentFull) {\n let defaultValue = (segment.default || segment.min).toFixed();\n defaultValue = padLeftZeros(defaultValue, segment.length);\n return insertAt(defaultValue, segmentValue, segment.length - segmentValue.length, segment.length);\n }\n\n private enrichSegmentDefinitions(segments: FormatSegment[]) {\n this.positionFormats = new Map();\n this.segments = [];\n let position = 0;\n for (const segment of segments) {\n const max = segment.max;\n const fullSegment: FormatSegmentFull = {\n ...segment,\n max: typeof max === 'number' ? () => max : max,\n start: position,\n end: position + segment.length,\n };\n this.segments.push(fullSegment);\n // insert this format segment for every char in the max value\n for (let j = 0; j < fullSegment.length; j++) {\n this.positionFormats.set(position++, fullSegment);\n }\n // skip a position for separator\n position++;\n }\n }\n}\n\nexport default MaskFormat;\n"]}
|
|
1
|
+
{"version":3,"file":"mask-format.js","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { padLeftZeros } from '../../../utils/strings';\nimport { insertAt } from './strings';\n\ninterface FormatSegment {\n min: number;\n max: number | ((value: string) => number);\n length: number;\n default?: number;\n}\n\ninterface FormatSegmentFull extends FormatSegment {\n start: number;\n max(value: string): number;\n end: number;\n}\n\nexport interface MaskArgs {\n separator: string;\n inputSeparators?: Array<string>;\n segments: Array<FormatSegment>;\n}\n\ninterface ChangeResult {\n value: string;\n position: number;\n}\n\nclass MaskFormat {\n separator: string;\n private inputSeparators: Array<string>;\n private segments: Array<FormatSegmentFull>;\n private positionFormats = new Map<number, FormatSegmentFull>();\n\n constructor({ separator, inputSeparators = [], segments }: MaskArgs) {\n this.segments = [];\n this.separator = separator;\n\n this.inputSeparators = [...inputSeparators, separator];\n this.enrichSegmentDefinitions(segments);\n }\n\n tryAppendSeparator(value: string) {\n const withSeparator = `${value}${this.separator}`;\n return this.isValid(withSeparator) ? withSeparator : value;\n }\n\n isSeparator(key: string): boolean {\n return this.inputSeparators.indexOf(key) !== -1;\n }\n\n isValid(value: string): boolean {\n // No inputSeparators will be present as they are replaced with the separator prior.\n const inputSegments = value.split(this.separator);\n\n if (inputSegments.length > this.segments.length) {\n return false;\n }\n\n return inputSegments.every((segmentValue, i) => {\n const segment = this.segments[i];\n\n // Disallow empty segments\n if (segmentValue === '') {\n // except empty last segment (e.g. trailing separator \"12:\").\n if (i === inputSegments.length - 1) {\n return true;\n } else {\n return false;\n }\n }\n // Only allow numerals.\n if (!segmentValue.match(/^\\d+$/)) {\n return false;\n }\n // Disallow incomplete segments, except at end.\n if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {\n return false;\n }\n // Limit numerical value.\n const intValue = parseInt(segmentValue, 10);\n\n // Handle values padded with 0s that are lost during parsing.\n if (segmentValue.length > segment.length) {\n return false;\n }\n\n if (intValue < segment.min || intValue > segment.max(value)) {\n // Allow incomplete segments in final position.\n if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {\n return true;\n }\n return false;\n }\n return true;\n });\n }\n\n getValidValue(value: string): string {\n let validValue = value;\n\n do {\n if (this.isValid(validValue)) {\n return this.tryAppendSeparator(validValue);\n }\n\n validValue = validValue.substring(0, validValue.length - 1);\n } while (validValue.length > 0);\n\n return '';\n }\n\n autoComplete(value: string): string {\n const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();\n const lastSegment = this.segments[completeSegmentValues.length];\n\n // If the last segment isn't complete, pad it with a preceding 0,\n // e.g. 10:1 -> 10:01.\n const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);\n\n // Recombine, and pad with extra segments for the full format.\n const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];\n while (partial.length < this.segments.length) {\n const nextSegment = this.segments[partial.length];\n const segmentValue = this.padWithDefaultValue('', nextSegment);\n partial.push(segmentValue);\n }\n value = partial.join(this.separator);\n value = this.correctMinMaxValues(value);\n return value;\n }\n\n getSegmentValueWithAddition(position: number, value: string, enteredDigit: string) {\n const segment = this.positionFormats.get(position)!;\n const segmentValue = value.substr(segment.start, segment.length);\n const segmentPosition = position - segment.start;\n const newValue = insertAt(segmentValue, enteredDigit, segmentPosition, segmentPosition + 1);\n return parseInt(newValue, 10);\n }\n\n replaceDigitsWithZeroes(value: string, cursorStart: number, cursorEnd: number): ChangeResult {\n const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;\n\n // Move selection forwards if it starts with a separator.\n if (this.isCursorAtSeparator(cursorStart)) {\n cursorStart++;\n }\n\n // First, insert zeros in a partial segment at beginning of selection.\n if (!this.isSegmentStart(cursorStart)) {\n const segment = this.positionFormats.get(cursorStart)!;\n value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);\n cursorStart = segment.end + 1;\n }\n\n // Then, loop through remaining segments, filling with zeros.\n let currentSegment: FormatSegmentFull;\n while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1)!)) {\n const insertionEnd = Math.min(cursorEnd, currentSegment.end);\n value = insertAt(\n value,\n padLeftZeros('', insertionEnd - currentSegment.start),\n currentSegment.start,\n insertionEnd\n );\n cursorStart = insertionEnd + 1;\n }\n\n value = this.correctMinMaxValues(value);\n\n return {\n value,\n position,\n };\n }\n\n handleSeparatorInput(value: string, position: number): ChangeResult | void {\n if (position === value.length && !this.isSegmentStart(position)) {\n const segment = this.positionFormats.get(position)!;\n let segmentValue = value.substr(segment.start, segment.length);\n segmentValue = this.padWithDefaultValue(segmentValue, segment);\n value = insertAt(value, segmentValue, segment.start, segment.end);\n value = this.correctMinMaxValues(value);\n return {\n value,\n position: value.length,\n };\n }\n }\n\n isCursorAtSeparator(position: number) {\n return 0 < position && position < this.getMaxLength() && this.positionFormats.get(position) === undefined;\n }\n\n isSegmentStart(position: number) {\n return position === 0 || this.isCursorAtSeparator(position - 1);\n }\n\n getSegmentMaxValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.max(value);\n }\n\n getSegmentMinValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.min;\n }\n\n getMaxLength() {\n const last = this.segments[this.segments.length - 1];\n return last.start + last.length;\n }\n\n deleteSeparator(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 2, position - 1);\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 2,\n };\n }\n\n deleteDigit(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 1, position);\n\n // 23:59|: => backspace => 23:5|\n const length = value.length;\n if (value.slice(length - 2) === '0:') {\n value = value.slice(0, length - 2);\n }\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 1,\n };\n }\n\n correctMinMaxValues(value: string): string {\n let segment = this.positionFormats.get(0);\n while (segment && value.length >= segment.end) {\n const segmentValue = parseInt(value.substr(segment.start, segment.length), 10);\n const segmentMax = segment.max(value);\n if (segmentValue < segment.min) {\n let toInsert = segment.min.toFixed();\n toInsert = padLeftZeros(toInsert, segment.length);\n value = insertAt(value, toInsert, segment.start, segment.end);\n }\n if (segmentValue > segmentMax) {\n value = insertAt(value, segmentMax.toFixed(), segment.start, segment.end);\n }\n segment = this.positionFormats.get(segment.end + 1);\n }\n return value.substr(0, this.segments[this.segments.length - 1].end);\n }\n\n formatPastedText(text: string, value: string, cursorStart: number, cursorEnd: number): string {\n const keyArr = text.trim().split('');\n\n let position = cursorStart;\n\n let formattedValue = value;\n // If a selection range captures the end of the current value,\n // we replace it with the value in buffer even if the value in buffer is shorter.\n if (cursorEnd > cursorStart && cursorEnd === value.length) {\n formattedValue = value.slice(0, cursorStart);\n }\n\n for (const key of keyArr) {\n if (position >= this.getMaxLength()) {\n break;\n }\n\n const result = this.processKey(formattedValue, key, position);\n formattedValue = result.value;\n position = result.position;\n }\n\n return this.tryAppendSeparator(formattedValue);\n }\n\n processKey(initialValue: string, key: string, initialPosition: number) {\n let value = initialValue;\n let position = initialPosition;\n\n if (this.isSeparator(key)) {\n const result = this.handleSeparatorInput(value, position);\n if (result) {\n value = result.value;\n position = result.position;\n }\n } else {\n const isCursorAtEnd = position === value.length;\n const segmentValue = this.getSegmentValueWithAddition(position, value, key);\n const segmentMaxValue = this.getSegmentMaxValue(value, position);\n const segmentMinValue = this.getSegmentMinValue(value, position);\n const firstDigitGreater = parseInt(key, 10) > parseInt(segmentMaxValue.toFixed()[0], 10);\n const isValidPosition = isCursorAtEnd || segmentValue.toFixed().length === 1;\n const exceedsMaxAtSegmentStart = this.isSegmentStart(position) && isValidPosition && firstDigitGreater;\n\n if (exceedsMaxAtSegmentStart) {\n // 22:| => Enter '9' => 22:09|\n // |1 => Enter '9' => 09|\n value = insertAt(value, `0${key}`, position, position + 2);\n position += 2;\n } else if (segmentValue > segmentMaxValue && this.isSegmentStart(position)) {\n // 22:|22 => Enter '9' => 22:59|\n value = insertAt(value, segmentMaxValue.toFixed(), position, position + segmentMaxValue.toFixed().length);\n position += segmentMaxValue.toFixed().length;\n } else if (segmentValue > segmentMaxValue) {\n // 2|2:22 => Enter '9' => 23:|22\n value = insertAt(value, segmentMaxValue.toFixed(), position - 1, position + 1);\n position += 1;\n } else if (segmentValue < segmentMinValue && !this.isSegmentStart(position)) {\n // 0| => enter '0' => 01:\n value = insertAt(value, segmentMinValue.toFixed(), position, position + 1);\n position += 1;\n } else {\n // 22:| => Enter '5' => 23:5|\n value = insertAt(value, key, position, position + 1);\n position += 1;\n }\n }\n\n value = this.tryAppendSeparator(value);\n\n // Move cursor in front of separator if behind after overwriting a character.\n if (this.isCursorAtSeparator(position)) {\n position++;\n }\n\n return { value, position };\n }\n\n private padWithDefaultValue(segmentValue: string, segment: FormatSegmentFull) {\n let defaultValue = (segment.default || segment.min).toFixed();\n defaultValue = padLeftZeros(defaultValue, segment.length);\n return insertAt(defaultValue, segmentValue, segment.length - segmentValue.length, segment.length);\n }\n\n private enrichSegmentDefinitions(segments: FormatSegment[]) {\n this.positionFormats = new Map();\n this.segments = [];\n let position = 0;\n for (const segment of segments) {\n const max = segment.max;\n const fullSegment: FormatSegmentFull = {\n ...segment,\n max: typeof max === 'number' ? () => max : max,\n start: position,\n end: position + segment.length,\n };\n this.segments.push(fullSegment);\n // Insert this format segment for every char in the max value.\n for (let j = 0; j < fullSegment.length; j++) {\n this.positionFormats.set(position++, fullSegment);\n }\n // Skip a position for separator.\n position++;\n }\n }\n}\n\nexport default MaskFormat;\n"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"root": "
|
|
5
|
-
"horizontal": "
|
|
6
|
-
"vertical": "
|
|
7
|
-
"list": "
|
|
8
|
-
"grid": "
|
|
9
|
-
"list-item": "awsui_list-
|
|
10
|
-
"toggle-container-inline": "awsui_toggle-container-
|
|
11
|
-
"toggle": "
|
|
12
|
-
"description": "
|
|
13
|
-
"separator": "
|
|
4
|
+
"root": "awsui_root_gfwv3_1p5dx_193",
|
|
5
|
+
"horizontal": "awsui_horizontal_gfwv3_1p5dx_196",
|
|
6
|
+
"vertical": "awsui_vertical_gfwv3_1p5dx_202",
|
|
7
|
+
"list": "awsui_list_gfwv3_1p5dx_207",
|
|
8
|
+
"grid": "awsui_grid_gfwv3_1p5dx_226",
|
|
9
|
+
"list-item": "awsui_list-item_gfwv3_1p5dx_238",
|
|
10
|
+
"toggle-container-inline": "awsui_toggle-container-inline_gfwv3_1p5dx_245",
|
|
11
|
+
"toggle": "awsui_toggle_gfwv3_1p5dx_245",
|
|
12
|
+
"description": "awsui_description_gfwv3_1p5dx_337",
|
|
13
|
+
"separator": "awsui_separator_gfwv3_1p5dx_341"
|
|
14
14
|
};
|
|
15
15
|
|
|
@@ -190,21 +190,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
190
190
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
191
191
|
SPDX-License-Identifier: Apache-2.0
|
|
192
192
|
*/
|
|
193
|
-
.
|
|
193
|
+
.awsui_root_gfwv3_1p5dx_193:not(#\9) {
|
|
194
194
|
gap: var(--space-scaled-xs-xwoogq, 8px);
|
|
195
195
|
}
|
|
196
|
-
.
|
|
196
|
+
.awsui_root_gfwv3_1p5dx_193.awsui_horizontal_gfwv3_1p5dx_196:not(#\9) {
|
|
197
197
|
display: flex;
|
|
198
198
|
gap: var(--space-xs-ymlm0b, 8px);
|
|
199
199
|
flex-direction: row;
|
|
200
200
|
flex-wrap: wrap;
|
|
201
201
|
}
|
|
202
|
-
.
|
|
202
|
+
.awsui_root_gfwv3_1p5dx_193.awsui_vertical_gfwv3_1p5dx_202:not(#\9) {
|
|
203
203
|
display: flex;
|
|
204
204
|
flex-direction: column;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
.
|
|
207
|
+
.awsui_list_gfwv3_1p5dx_207:not(#\9) {
|
|
208
208
|
display: contents;
|
|
209
209
|
list-style: none;
|
|
210
210
|
padding-block: 0;
|
|
@@ -212,43 +212,43 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
212
212
|
margin-block: 0;
|
|
213
213
|
margin-inline: 0;
|
|
214
214
|
}
|
|
215
|
-
.
|
|
215
|
+
.awsui_list_gfwv3_1p5dx_207.awsui_horizontal_gfwv3_1p5dx_196:not(#\9), .awsui_list_gfwv3_1p5dx_207.awsui_vertical_gfwv3_1p5dx_202:not(#\9) {
|
|
216
216
|
display: flex;
|
|
217
217
|
gap: var(--space-xs-ymlm0b, 8px);
|
|
218
218
|
}
|
|
219
|
-
.
|
|
219
|
+
.awsui_list_gfwv3_1p5dx_207.awsui_horizontal_gfwv3_1p5dx_196:not(#\9) {
|
|
220
220
|
flex-direction: row;
|
|
221
221
|
flex-wrap: wrap;
|
|
222
222
|
}
|
|
223
|
-
.
|
|
223
|
+
.awsui_list_gfwv3_1p5dx_207.awsui_vertical_gfwv3_1p5dx_202:not(#\9) {
|
|
224
224
|
flex-direction: column;
|
|
225
225
|
}
|
|
226
|
-
.
|
|
226
|
+
.awsui_list_gfwv3_1p5dx_207.awsui_grid_gfwv3_1p5dx_226:not(#\9) {
|
|
227
227
|
display: grid;
|
|
228
228
|
gap: var(--space-xs-ymlm0b, 8px);
|
|
229
229
|
grid-template-columns: repeat(auto-fill, 230px);
|
|
230
230
|
}
|
|
231
231
|
@media (max-width: 688px) {
|
|
232
|
-
.
|
|
232
|
+
.awsui_list_gfwv3_1p5dx_207.awsui_grid_gfwv3_1p5dx_226:not(#\9) {
|
|
233
233
|
display: flex;
|
|
234
234
|
flex-direction: column;
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
.awsui_list-
|
|
238
|
+
.awsui_list-item_gfwv3_1p5dx_238:not(#\9) {
|
|
239
239
|
padding-block: 0;
|
|
240
240
|
padding-inline: 0;
|
|
241
241
|
margin-block: 0;
|
|
242
242
|
margin-inline: 0;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
.awsui_toggle-container-
|
|
245
|
+
.awsui_toggle-container-inline_gfwv3_1p5dx_245:not(#\9) {
|
|
246
246
|
padding-inline-start: var(--space-xs-ymlm0b, 8px);
|
|
247
247
|
display: flex;
|
|
248
248
|
align-items: center;
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
-
.
|
|
251
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9) {
|
|
252
252
|
border-collapse: separate;
|
|
253
253
|
border-spacing: 0;
|
|
254
254
|
box-sizing: border-box;
|
|
@@ -288,7 +288,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
288
288
|
margin-inline-start: -1px;
|
|
289
289
|
text-underline-offset: 0.25em;
|
|
290
290
|
text-decoration-thickness: 1px;
|
|
291
|
-
color: var(--color-text-link-default-1dmm7z, #006ce0);
|
|
291
|
+
color: var(--awsui-style-color-default-kcc2gu, var(--color-text-link-default-1dmm7z, #006ce0));
|
|
292
292
|
font-weight: inherit;
|
|
293
293
|
letter-spacing: normal;
|
|
294
294
|
text-decoration-line: none;
|
|
@@ -299,34 +299,34 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
299
299
|
transition-duration: var(--motion-duration-refresh-only-medium-5rbn3k, 165ms);
|
|
300
300
|
}
|
|
301
301
|
@media (prefers-reduced-motion: reduce) {
|
|
302
|
-
.
|
|
302
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9) {
|
|
303
303
|
animation: none;
|
|
304
304
|
transition: none;
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
|
-
.awsui-motion-disabled .
|
|
307
|
+
.awsui-motion-disabled .awsui_toggle_gfwv3_1p5dx_245:not(#\9), .awsui-mode-entering .awsui_toggle_gfwv3_1p5dx_245:not(#\9) {
|
|
308
308
|
animation: none;
|
|
309
309
|
transition: none;
|
|
310
310
|
}
|
|
311
|
-
.
|
|
311
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9):hover {
|
|
312
312
|
cursor: pointer;
|
|
313
|
-
color: var(--color-text-link-hover-sq1gxg, #002b66);
|
|
313
|
+
color: var(--awsui-style-color-hover-kcc2gu, var(--color-text-link-hover-sq1gxg, #002b66));
|
|
314
314
|
}
|
|
315
|
-
.
|
|
315
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9):focus {
|
|
316
316
|
outline: none;
|
|
317
317
|
}
|
|
318
|
-
.
|
|
319
|
-
color: var(--color-text-link-hover-sq1gxg, #002b66);
|
|
318
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9):active {
|
|
319
|
+
color: var(--awsui-style-color-active-kcc2gu, var(--color-text-link-hover-sq1gxg, #002b66));
|
|
320
320
|
}
|
|
321
|
-
.
|
|
321
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9):active, .awsui_toggle_gfwv3_1p5dx_245:not(#\9):focus, .awsui_toggle_gfwv3_1p5dx_245:not(#\9):hover {
|
|
322
322
|
text-decoration-line: underline;
|
|
323
323
|
text-decoration-color: currentColor;
|
|
324
324
|
}
|
|
325
|
-
.
|
|
325
|
+
.awsui_toggle_gfwv3_1p5dx_245:not(#\9):active, .awsui_toggle_gfwv3_1p5dx_245:not(#\9):focus, .awsui_toggle_gfwv3_1p5dx_245:not(#\9):hover {
|
|
326
326
|
text-decoration: none;
|
|
327
327
|
text-decoration-color: transparent;
|
|
328
328
|
}
|
|
329
|
-
body[data-awsui-focus-visible=true] .
|
|
329
|
+
body[data-awsui-focus-visible=true] .awsui_toggle_gfwv3_1p5dx_245:not(#\9):focus {
|
|
330
330
|
outline: 2px dotted transparent;
|
|
331
331
|
border-block: var(--border-width-button-jm0qg7, 2px) solid var(--color-border-item-focused-uk47pl, #006ce0);
|
|
332
332
|
border-inline: var(--border-width-button-jm0qg7, 2px) solid var(--color-border-item-focused-uk47pl, #006ce0);
|
|
@@ -336,11 +336,11 @@ body[data-awsui-focus-visible=true] .awsui_toggle_gfwv3_nqa8o_245:not(#\9):focus
|
|
|
336
336
|
border-end-end-radius: var(--border-radius-control-default-focus-ring-1uabki, 4px);
|
|
337
337
|
box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-9mjajk, 1px) var(--color-border-item-focused-uk47pl, #006ce0);
|
|
338
338
|
}
|
|
339
|
-
.
|
|
339
|
+
.awsui_toggle_gfwv3_1p5dx_245 > .awsui_description_gfwv3_1p5dx_337:not(#\9) {
|
|
340
340
|
margin-inline-start: var(--space-xxs-hwfkai, 4px);
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
.
|
|
343
|
+
.awsui_separator_gfwv3_1p5dx_341:not(#\9) {
|
|
344
344
|
margin-block: 0;
|
|
345
345
|
margin-inline: var(--space-scaled-m-m892r9, 16px);
|
|
346
346
|
inline-size: var(--border-divider-section-width-uwo8my, 1px);
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"root": "
|
|
6
|
-
"horizontal": "
|
|
7
|
-
"vertical": "
|
|
8
|
-
"list": "
|
|
9
|
-
"grid": "
|
|
10
|
-
"list-item": "awsui_list-
|
|
11
|
-
"toggle-container-inline": "awsui_toggle-container-
|
|
12
|
-
"toggle": "
|
|
13
|
-
"description": "
|
|
14
|
-
"separator": "
|
|
5
|
+
"root": "awsui_root_gfwv3_1p5dx_193",
|
|
6
|
+
"horizontal": "awsui_horizontal_gfwv3_1p5dx_196",
|
|
7
|
+
"vertical": "awsui_vertical_gfwv3_1p5dx_202",
|
|
8
|
+
"list": "awsui_list_gfwv3_1p5dx_207",
|
|
9
|
+
"grid": "awsui_grid_gfwv3_1p5dx_226",
|
|
10
|
+
"list-item": "awsui_list-item_gfwv3_1p5dx_238",
|
|
11
|
+
"toggle-container-inline": "awsui_toggle-container-inline_gfwv3_1p5dx_245",
|
|
12
|
+
"toggle": "awsui_toggle_gfwv3_1p5dx_245",
|
|
13
|
+
"description": "awsui_description_gfwv3_1p5dx_337",
|
|
14
|
+
"separator": "awsui_separator_gfwv3_1p5dx_341"
|
|
15
15
|
};
|
|
16
16
|
|
package/internal/environment.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export var PACKAGE_SOURCE = "components";
|
|
2
|
-
export var PACKAGE_VERSION = "3.0.0 (
|
|
3
|
-
export var GIT_SHA = "
|
|
2
|
+
export var PACKAGE_VERSION = "3.0.0 (991892e2)";
|
|
3
|
+
export var GIT_SHA = "991892e2";
|
|
4
4
|
export var THEME = "open-source-visual-refresh";
|
|
5
5
|
export var SYSTEM = "console";
|
|
6
6
|
export var ALWAYS_VISUAL_REFRESH = true;
|
package/internal/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-global-breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAoC5E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAQ1G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"use-global-breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAoC5E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAQ1G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,oCAiBvD"}
|
|
@@ -45,9 +45,13 @@ export function useGetGlobalBreadcrumbs(enabled) {
|
|
|
45
45
|
if (!enabled) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
const unregisterAppLayout = awsuiPluginsInternal.breadcrumbs.registerAppLayout(breadcrumbs => {
|
|
49
49
|
setDiscoveredBreadcrumbs(breadcrumbs);
|
|
50
50
|
});
|
|
51
|
+
return () => {
|
|
52
|
+
unregisterAppLayout === null || unregisterAppLayout === void 0 ? void 0 : unregisterAppLayout();
|
|
53
|
+
setDiscoveredBreadcrumbs(null);
|
|
54
|
+
};
|
|
51
55
|
}, [enabled]);
|
|
52
56
|
return discoveredBreadcrumbs;
|
|
53
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-global-breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAG9C,SAAS,qCAAqC,CAAC,EAGoB;;QAHpB,EAC7C,sBAAsB,OAE2C,EAD9D,KAAK,cAFqC,0BAG9C,CADS;IAER,MAAM,EAAE,WAAW,EAAE,GAAG,MAAA,UAAU,CAAC,sBAAsB,CAAC,mCAAI,EAAE,CAAC;IACjE,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,0BAA0B,CAAC,mCAAI,IAAI,CAAC;IACvE,MAAM,eAAe,GAAG,MAAM,EAA8D,CAAC;IAC7F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,sBAAsB,IAAI,CAAC,eAAe,EAAE;YAC7D,OAAO;SACR;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAC9F,aAAa,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,CAAC,CACpC,CAAC;QACF,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;QAEvC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,WAAW,EAAE,sBAAsB,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3D,eAAe,CAAC,GAAG,EAAE;;QACnB,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAsC,KAA8B;IACzG,gEAAgE;IAChE,IAAI,CAAC,uBAAuB,EAAE,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,iEAAiE;IACjE,sDAAsD;IACtD,OAAO,qCAAqC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAmC,IAAI,CAAC,CAAC;IAE3G,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,
|
|
1
|
+
{"version":3,"file":"use-global-breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAG9C,SAAS,qCAAqC,CAAC,EAGoB;;QAHpB,EAC7C,sBAAsB,OAE2C,EAD9D,KAAK,cAFqC,0BAG9C,CADS;IAER,MAAM,EAAE,WAAW,EAAE,GAAG,MAAA,UAAU,CAAC,sBAAsB,CAAC,mCAAI,EAAE,CAAC;IACjE,MAAM,eAAe,GAAG,MAAA,UAAU,CAAC,0BAA0B,CAAC,mCAAI,IAAI,CAAC;IACvE,MAAM,eAAe,GAAG,MAAM,EAA8D,CAAC;IAC7F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,sBAAsB,IAAI,CAAC,eAAe,EAAE;YAC7D,OAAO;SACR;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAC9F,aAAa,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,CAAC,CACpC,CAAC;QACF,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;QAEvC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,WAAW,EAAE,sBAAsB,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3D,eAAe,CAAC,GAAG,EAAE;;QACnB,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAsC,KAA8B;IACzG,gEAAgE;IAChE,IAAI,CAAC,uBAAuB,EAAE,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,iEAAiE;IACjE,sDAAsD;IACtD,OAAO,qCAAqC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAmC,IAAI,CAAC,CAAC;IAE3G,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC3F,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,EAAI,CAAC;YACxB,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useAppLayoutFlagEnabled } from '../../../app-layout/utils/feature-flags';\nimport {\n AppLayoutVisibilityContext,\n BreadcrumbsSlotContext,\n} from '../../../app-layout/visual-refresh-toolbar/contexts';\nimport { BreadcrumbGroupProps } from '../../../breadcrumb-group/interfaces';\nimport { awsuiPluginsInternal } from '../api';\nimport { BreadcrumbsGlobalRegistration } from '../controllers/breadcrumbs';\n\nfunction useSetGlobalBreadcrumbsImplementation({\n __disableGlobalization,\n ...props\n}: BreadcrumbGroupProps<any> & { __disableGlobalization?: boolean }) {\n const { isInToolbar } = useContext(BreadcrumbsSlotContext) ?? {};\n const isLayoutVisible = useContext(AppLayoutVisibilityContext) ?? true;\n const registrationRef = useRef<BreadcrumbsGlobalRegistration<BreadcrumbGroupProps> | null>();\n const [registered, setRegistered] = useState(false);\n\n useEffect(() => {\n if (isInToolbar || __disableGlobalization || !isLayoutVisible) {\n return;\n }\n const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, isRegistered =>\n setRegistered(isRegistered ?? true)\n );\n registrationRef.current = registration;\n\n return () => {\n registration.cleanup();\n };\n // subsequent prop changes are handled by another effect\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isInToolbar, __disableGlobalization, isLayoutVisible]);\n\n useLayoutEffect(() => {\n registrationRef.current?.update(props);\n });\n\n return registered;\n}\n\nexport function useSetGlobalBreadcrumbs<T extends BreadcrumbGroupProps.Item>(props: BreadcrumbGroupProps<T>) {\n // avoid additional side effects when this feature is not active\n if (!useAppLayoutFlagEnabled()) {\n return false;\n }\n // getGlobalFlag() value does not change without full page reload\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSetGlobalBreadcrumbsImplementation(props);\n}\n\nexport function useGetGlobalBreadcrumbs(enabled: boolean) {\n const [discoveredBreadcrumbs, setDiscoveredBreadcrumbs] = useState<BreadcrumbGroupProps<any> | null>(null);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n const unregisterAppLayout = awsuiPluginsInternal.breadcrumbs.registerAppLayout(breadcrumbs => {\n setDiscoveredBreadcrumbs(breadcrumbs);\n });\n return () => {\n unregisterAppLayout?.();\n setDiscoveredBreadcrumbs(null);\n };\n }, [enabled]);\n\n return discoveredBreadcrumbs;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-date-iso.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-date-iso.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format-date-iso.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-date-iso.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,WAAW,EACvB,IAAI,EAAE,OAAO,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,GACZ,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,UAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-date-iso.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-date-iso.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;
|
|
1
|
+
{"version":3,"file":"format-date-iso.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-date-iso.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,CAAC,OAAO,WAAW,EACvB,IAAI,EAAE,OAAO,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,GAOZ;IACC,MAAM,eAAe,GAAG,cAAc,IAAI,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpH,IAAI,WAAW,EAAE;QACf,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;KAC7C;IACD,OAAO,OAAO,GAAG,eAAe,CAAC;AACnC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { format, parseISO } from 'date-fns';\n\nimport { formatTimeOffsetISO } from './format-time-offset';\n\nexport default function ({\n date: isoDate,\n hideTimeOffset,\n isDateOnly,\n timeOffset,\n isMonthOnly,\n}: {\n date: string;\n hideTimeOffset?: boolean;\n isDateOnly: boolean;\n isMonthOnly: boolean;\n timeOffset?: number;\n}) {\n const formattedOffset = hideTimeOffset || isDateOnly || isMonthOnly ? '' : formatTimeOffsetISO(isoDate, timeOffset);\n if (isMonthOnly) {\n return format(parseISO(isoDate), 'yyyy-MM');\n }\n return isoDate + formattedOffset;\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Specifies the granularity at which a date will be displayed.
|
|
3
|
+
**/
|
|
4
|
+
export type DateGranularity = 'day' | 'month';
|
|
5
|
+
/**
|
|
6
|
+
* The formats that allow for an editable value:
|
|
7
|
+
* * `iso`: ISO 8601 format without time, e.g.: 2024-01-30 (or 2024-01).
|
|
8
|
+
* * `slashed`: similar to ISO 8601 but with '/' in place of '-'. e.g.: 2024/01/30 (or 2024/01).
|
|
9
|
+
**/
|
|
10
|
+
export type EditableDateFormat = 'iso' | 'slashed';
|
|
11
|
+
/**
|
|
12
|
+
* The format that does note allow for an editable value
|
|
13
|
+
* * `long-localized`: a more human-readable, localized format, e.g.: January 30, 2024 (or January, 2024).
|
|
14
|
+
**/
|
|
15
|
+
export type StaticDateFormat = 'long-localized';
|
|
16
|
+
export type DateFormat = EditableDateFormat | StaticDateFormat;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/interfaces.ts"],"names":[],"mappings":"AAGA;;IAEI;AACJ,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,CAAC;AAE9C;;;;IAII;AACJ,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,SAAS,CAAC;AAEnD;;;IAGI;AACJ,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/interfaces.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Specifies the granularity at which a date will be displayed.\n **/\nexport type DateGranularity = 'day' | 'month';\n\n/**\n * The formats that allow for an editable value:\n * * `iso`: ISO 8601 format without time, e.g.: 2024-01-30 (or 2024-01).\n * * `slashed`: similar to ISO 8601 but with '/' in place of '-'. e.g.: 2024/01/30 (or 2024/01).\n **/\nexport type EditableDateFormat = 'iso' | 'slashed';\n\n/**\n * The format that does note allow for an editable value\n * * `long-localized`: a more human-readable, localized format, e.g.: January 30, 2024 (or January, 2024).\n **/\nexport type StaticDateFormat = 'long-localized';\n\nexport type DateFormat = EditableDateFormat | StaticDateFormat;\n"]}
|
package/link/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,QAAA,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,QAAA,MAAM,IAAI,iFAuCT,CAAC;AAGF,eAAe,IAAI,CAAC"}
|
package/link/index.js
CHANGED
|
@@ -1,34 +1,18 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
'use client';
|
|
4
|
-
import { __rest } from "tslib";
|
|
5
3
|
import React from 'react';
|
|
6
|
-
|
|
7
|
-
import
|
|
4
|
+
|
|
5
|
+
import CoreComponent from './internal-do-not-use-core';
|
|
8
6
|
import { applyDisplayName } from '../internal/utils/apply-display-name';
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
action: 'click',
|
|
17
|
-
detail: {
|
|
18
|
-
label: { root: 'self' },
|
|
19
|
-
external: `${external}`,
|
|
20
|
-
},
|
|
21
|
-
component: {
|
|
22
|
-
name: 'awsui.Link',
|
|
23
|
-
label: { root: 'self' },
|
|
24
|
-
properties: { variant: props.variant || 'secondary' },
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
if (props.href) {
|
|
28
|
-
analyticsMetadata.detail.href = props.href;
|
|
29
|
-
}
|
|
30
|
-
return (React.createElement(InternalLink, Object.assign({ fontSize: fontSize, color: color, external: external }, props, baseComponentProps, { ref: ref }, getAnalyticsMetadataAttribute(analyticsMetadata))));
|
|
7
|
+
import { validateProps } from '../internal/base-component';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const Link = React.forwardRef((props, ref) => {
|
|
12
|
+
validateProps('Link', props, ["style"], {});
|
|
13
|
+
return React.createElement(CoreComponent, {ref,...props});
|
|
31
14
|
});
|
|
15
|
+
|
|
16
|
+
|
|
32
17
|
applyDisplayName(Link, 'Link');
|
|
33
18
|
export default Link;
|
|
34
|
-
//# sourceMappingURL=index.js.map
|