@warp-ds/elements 1.3.1-next.1 → 1.3.2-next.1
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/README.md +1 -1
- package/dist/index.js +199 -129
- package/dist/index.js.map +4 -4
- package/dist/packages/affix/index.js +139 -62
- package/dist/packages/affix/index.js.map +4 -4
- package/dist/packages/alert/index.js +148 -71
- package/dist/packages/alert/index.js.map +4 -4
- package/dist/packages/attention/index.d.ts +1 -1
- package/dist/packages/attention/index.js +139 -62
- package/dist/packages/attention/index.js.map +4 -4
- package/dist/packages/badge/index.js +114 -46
- package/dist/packages/badge/index.js.map +3 -3
- package/dist/packages/box/index.js +105 -39
- package/dist/packages/box/index.js.map +3 -3
- package/dist/packages/breadcrumbs/index.js +142 -65
- package/dist/packages/breadcrumbs/index.js.map +4 -4
- package/dist/packages/broadcast/index.js.map +1 -1
- package/dist/packages/button/index.js +139 -62
- package/dist/packages/button/index.js.map +4 -4
- package/dist/packages/card/index.js +112 -46
- package/dist/packages/card/index.js.map +3 -3
- package/dist/packages/expandable/index.js +139 -62
- package/dist/packages/expandable/index.js.map +4 -4
- package/dist/packages/pill/index.js +141 -64
- package/dist/packages/pill/index.js.map +4 -4
- package/dist/packages/select/index.js +153 -80
- package/dist/packages/select/index.js.map +4 -4
- package/dist/packages/textfield/index.d.ts +0 -1
- package/dist/packages/textfield/index.js +119 -55
- package/dist/packages/textfield/index.js.map +3 -3
- package/dist/packages/toast/index.js +146 -69
- package/dist/packages/toast/index.js.map +4 -4
- package/package.json +25 -37
|
@@ -1054,26 +1054,27 @@ function fclasses(definition) {
|
|
|
1054
1054
|
return classMap(defn);
|
|
1055
1055
|
}
|
|
1056
1056
|
|
|
1057
|
-
// node_modules/.pnpm/@warp-ds+css@1.
|
|
1057
|
+
// node_modules/.pnpm/@warp-ds+css@1.9.1/node_modules/@warp-ds/css/component-classes/index.js
|
|
1058
1058
|
var box = {
|
|
1059
1059
|
box: "group block relative break-words last-child:mb-0 p-16 rounded-8",
|
|
1060
1060
|
// Relative here enables w-clickable
|
|
1061
1061
|
bleed: "-mx-16 sm:mx-0 rounded-l-0 rounded-r-0 sm:rounded-8",
|
|
1062
1062
|
// We target L and R to override the default rounded-8
|
|
1063
|
-
info: "
|
|
1064
|
-
neutral: "
|
|
1065
|
-
bordered: "border-2
|
|
1066
|
-
infoClickable: "hover:
|
|
1067
|
-
neutralClickable: "hover:
|
|
1068
|
-
borderedClickable: "hover:
|
|
1063
|
+
info: "s-bg-info-subtle",
|
|
1064
|
+
neutral: "bg-[--w-s-color-surface-sunken]",
|
|
1065
|
+
bordered: "border-2 s-border s-bg",
|
|
1066
|
+
infoClickable: "hover:s-bg-info-subtle-hover active:s-bg-info-subtle-hover",
|
|
1067
|
+
neutralClickable: "hover:s-bg-subtle-hover active:s-bg-subtle-hover",
|
|
1068
|
+
borderedClickable: "hover:s-bg-hover active:s-bg-hover hover:s-border-hover active:s-border-hover"
|
|
1069
1069
|
};
|
|
1070
1070
|
var buttonReset = "focus:outline-none appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block";
|
|
1071
1071
|
var expandable = {
|
|
1072
1072
|
expandable: "will-change-height",
|
|
1073
|
-
expandableTitle: "font-bold
|
|
1074
|
-
expandableBox: "
|
|
1073
|
+
expandableTitle: "font-bold s-text",
|
|
1074
|
+
expandableBox: "s-bg-subtle hover:s-bg-subtle-hover py-0 px-0 " + box.box,
|
|
1075
|
+
expandableInfo: "s-bg-info-subtle! hover:s-bg-info-subtle-hover!",
|
|
1075
1076
|
expandableBleed: box.bleed,
|
|
1076
|
-
chevron: "inline-block align-middle
|
|
1077
|
+
chevron: "inline-block align-middle s-icon",
|
|
1077
1078
|
chevronNonBox: "ml-8",
|
|
1078
1079
|
chevronBox: "",
|
|
1079
1080
|
chevronTransform: "transform transition-transform transform-gpu ease-in-out",
|
|
@@ -1093,17 +1094,17 @@ var expandable = {
|
|
|
1093
1094
|
};
|
|
1094
1095
|
var buttonDefaultStyling = "font-bold focusable justify-center transition-colors ease-in-out";
|
|
1095
1096
|
var buttonColors = {
|
|
1096
|
-
primary: "
|
|
1097
|
-
secondary: "
|
|
1098
|
-
utility: "
|
|
1099
|
-
destructive: "
|
|
1100
|
-
pill: "
|
|
1101
|
-
disabled: "
|
|
1102
|
-
quiet: "
|
|
1103
|
-
utilityQuiet: "
|
|
1104
|
-
negativeQuiet: "
|
|
1105
|
-
loading: "
|
|
1106
|
-
link: "
|
|
1097
|
+
primary: "s-text-inverted bg-[--w-color-button-primary-background] hover:bg-[--w-color-button-primary-background-hover] active:bg-[--w-color-button-primary-background-active]",
|
|
1098
|
+
secondary: "s-text-link s-border s-bg hover:s-bg-hover hover:s-border-hover active:s-bg-active",
|
|
1099
|
+
utility: "s-text s-bg hover:s-bg-hover active:s-bg-active s-border hover:s-border-hover active:s-border-active",
|
|
1100
|
+
destructive: "s-bg-negative s-text-inverted hover:s-bg-negative-hover active:s-bg-negative-active",
|
|
1101
|
+
pill: "s-icon hover:s-icon-hover active:s-icon-active bg-transparent hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]",
|
|
1102
|
+
disabled: "s-text-inverted s-bg-disabled",
|
|
1103
|
+
quiet: "bg-transparent s-text-link hover:s-bg-hover active:s-bg-active",
|
|
1104
|
+
utilityQuiet: "s-text bg-transparent hover:s-bg-hover active:s-bg-active",
|
|
1105
|
+
negativeQuiet: "bg-transparent s-text-negative hover:s-bg-negative-subtle-hover active:s-bg-negative-subtle-active",
|
|
1106
|
+
loading: "s-text s-bg-subtle",
|
|
1107
|
+
link: "s-text-link"
|
|
1107
1108
|
};
|
|
1108
1109
|
var buttonTypes = {
|
|
1109
1110
|
primary: `border-0 rounded-8 ${buttonDefaultStyling}`,
|
|
@@ -1207,10 +1208,10 @@ var button = {
|
|
|
1207
1208
|
contentWidth: "max-w-max"
|
|
1208
1209
|
};
|
|
1209
1210
|
var modal = {
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
backdrop: "fixed inset-0 flex sm:place-content-center sm:place-items-center items-end z-30 [--w-modal-max-height:80%] [--w-modal-width:640px]",
|
|
1213
|
-
modal: "pb-safe-[32]
|
|
1211
|
+
transparentBg: "",
|
|
1212
|
+
//TODO: Remove in v2 - previously used for opacity before changing to a rgba background in backdrop
|
|
1213
|
+
backdrop: "fixed inset-0 flex sm:place-content-center sm:place-items-center items-end z-30 [--w-modal-max-height:80%] [--w-modal-width:640px] bg-[--w-black/25]",
|
|
1214
|
+
modal: "pb-safe-[32] shadow-m max-h-[--w-modal-max-height] min-h-[--w-modal-min-height] w-[--w-modal-width] h-[--w-modal-height] relative transition-300 ease-in-out backface-hidden will-change-height rounded-8 mx-0 sm:mx-16 bg-[--w-s-color-surface-elevated-100] flex flex-col overflow-hidden outline-none space-y-16 pt-8 sm:pt-32 sm:pb-32 rounded-b-0 sm:rounded-b-8",
|
|
1214
1215
|
content: "block overflow-y-auto overflow-x-hidden last-child:mb-0 grow shrink px-16 sm:px-32 relative",
|
|
1215
1216
|
footer: "flex justify-end shrink-0 px-16 sm:px-32",
|
|
1216
1217
|
transitionTitle: "transition-all duration-300",
|
|
@@ -1225,22 +1226,79 @@ var modal = {
|
|
|
1225
1226
|
titleButtonIconRotated: "transform rotate-90"
|
|
1226
1227
|
};
|
|
1227
1228
|
var label = {
|
|
1228
|
-
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer
|
|
1229
|
-
|
|
1230
|
-
|
|
1229
|
+
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",
|
|
1230
|
+
optional: "pl-8 font-normal text-s s-text-subtle",
|
|
1231
|
+
labelInvalid: "s-text-negative"
|
|
1232
|
+
// TODO: Remove in v2 - kept for backwards compatibility
|
|
1231
1233
|
};
|
|
1232
|
-
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1234
|
+
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1233
1235
|
var suffix = {
|
|
1234
1236
|
wrapper: prefixSuffixWrapperBase + "right-0",
|
|
1235
1237
|
wrapperWithLabel: "w-max pr-12",
|
|
1236
1238
|
wrapperWithIcon: "w-40",
|
|
1237
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1239
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1238
1240
|
};
|
|
1239
1241
|
var prefix = {
|
|
1240
1242
|
wrapper: prefixSuffixWrapperBase + "left-0",
|
|
1241
1243
|
wrapperWithLabel: "w-max pl-12",
|
|
1242
1244
|
wrapperWithIcon: "w-40",
|
|
1243
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1245
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1246
|
+
};
|
|
1247
|
+
var toggle = {
|
|
1248
|
+
// wrapper classes
|
|
1249
|
+
field: "relative text-m",
|
|
1250
|
+
// true
|
|
1251
|
+
wrapper: "relative py-1",
|
|
1252
|
+
// true
|
|
1253
|
+
wrapperRadioButtons: "inline-flex font-bold rounded-8 focus-within:focusable",
|
|
1254
|
+
// isRadioButton && !isEqualWidth
|
|
1255
|
+
wrapperRadioButtonsJustified: "flex font-bold rounded-8 focus-within:focusable",
|
|
1256
|
+
// isRadioButton && isEqualWidth,
|
|
1257
|
+
// group classes
|
|
1258
|
+
radioButtonsGroup: "group",
|
|
1259
|
+
// isRadioButton
|
|
1260
|
+
radioButtonsGroupJustified: "grow-1 shrink-0 basis-auto",
|
|
1261
|
+
// isRadioButton && isEqualWidth
|
|
1262
|
+
// input classes
|
|
1263
|
+
input: "peer",
|
|
1264
|
+
a11y: "sr-only",
|
|
1265
|
+
// label classes
|
|
1266
|
+
label: "peer-focus:focusable cursor-pointer text-m s-text s-border py-2 pl-28 select-none relative block before:border before:absolute before:transition-all before:left-0 before:w-20 before:h-20 before:top-2",
|
|
1267
|
+
// !isRadioButton
|
|
1268
|
+
labelBefore: 'before:content-[""] before:block',
|
|
1269
|
+
// !isRadioButton && !isIndeterminate
|
|
1270
|
+
checkbox: "before:s-bg before:rounded-2 hover:before:s-border-primary hover:before:s-bg-hover peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-form-check-mark))] peer-checked:before:s-border-primary peer-checked:before:s-bg-primary peer-checked:peer-hover:before:s-border-primary-hover peer-checked:peer-hover:before:s-bg-primary-hover",
|
|
1271
|
+
// isCheckbox && !isIndeterminate && !isInvalid && !isDisabled
|
|
1272
|
+
checkboxInvalid: "before:s-bg before:s-border-negative before:rounded-2 hover:before:s-bg-negative-subtle-hover hover:before:s-border-negative-hover peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-form-check-mark))] peer-checked:before:s-bg-negative peer-checked:before:s-border-negative peer-checked:peer-hover:before:s-bg-negative-hover peer-checked:peer-hover:before:s-border-negative-hover",
|
|
1273
|
+
// isCheckbox && !isIndeterminate && isInvalid && !isDisabled
|
|
1274
|
+
checkboxDisabled: "before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-2 peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-form-check-mark))] peer-checked:before:s-border-disabled peer-checked:before:s-bg-disabled",
|
|
1275
|
+
// isCheckbox && !isIndeterminate && !isInvalid && isDisabled
|
|
1276
|
+
indeterminate: 'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold before:s-icon-inverted peer-indeterminate:before:s-border-primary peer-indeterminate:before:s-bg-primary peer-indeterminate:hover:before:s-border-primary-hover peer-indeterminate:hover:before:s-bg-primary-hover',
|
|
1277
|
+
// isCheckbox && isIndeterminate && !isInvalid && !isDisabled
|
|
1278
|
+
indeterminateInvalid: 'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold before:s-icon-inverted peer-indeterminate:before:s-border-negative peer-indeterminate:before:s-bg-negative peer-indeterminate:hover:before:s-border-negative-hover peer-indeterminate:hover:before:s-bg-negative-hover',
|
|
1279
|
+
// isCheckbox && isIndeterminate && isInvalid && !isDisabled
|
|
1280
|
+
indeterminateDisabled: 'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold pointer-events-none before:s-icon-inverted peer-indeterminate:before:s-border-disabled peer-indeterminate:before:s-bg-disabled',
|
|
1281
|
+
// isCheckbox && isIndeterminate && !isInvalid && isDisabled
|
|
1282
|
+
radio: "before:s-bg before:rounded-full peer-checked:before:border-[6] peer-checked:before:s-border-selected peer-checked:peer-hover:before:s-border-selected-hover peer-hover:before:s-border-primary peer-hover:before:s-bg-hover",
|
|
1283
|
+
// isRadio && !isDisabled && !isInvalid
|
|
1284
|
+
radioInvalid: "before:s-bg before:s-border-negative before:rounded-full peer-checked:before:border-[6] peer-hover:before:s-bg-negative-subtle peer-hover:before:s-border-negative-hover peer-checked:before:s-border-negative peer-checked:peer-hover:before:s-border-negative-hover",
|
|
1285
|
+
// isRadio && isInvalid && !isDisabled
|
|
1286
|
+
radioDisabled: "before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-full peer-checked:before:border-[6]",
|
|
1287
|
+
// isRadio && !isInvalid && isDisabled
|
|
1288
|
+
radioButtonsLabel: "peer-hover:peer-not-checked:s-bg-hover peer-checked:s-text-inverted peer-checked:s-bg-primary peer-checked:s-border-primary block relative font-bold cursor-pointer s-text-link text-center s-bg border-2 s-border group-first-of-type:rounded-tl-8 group-first-of-type:rounded-bl-8 group-last-of-type:rounded-tr-8 group-last-of-type:rounded-br-8 group-not-last-of-type:border-r-0 peer-checked:z-10 group-not-first:-ml-2",
|
|
1289
|
+
// isRadioButtons
|
|
1290
|
+
radioButtonsRegular: "text-s py-8 pl-12 pr-14",
|
|
1291
|
+
// isRadioButtons && !isSmall
|
|
1292
|
+
radioButtonsSmall: "text-xs py-[5px] px-[8px]"
|
|
1293
|
+
// isRadioButtons && isSmall
|
|
1294
|
+
};
|
|
1295
|
+
var deadToggle = {
|
|
1296
|
+
wrapper: `${toggle.wrapper} h-20 w-20 pointer-events-none`,
|
|
1297
|
+
input: `${toggle.input} hidden`,
|
|
1298
|
+
inputVue: "hidden",
|
|
1299
|
+
labelRadio: `${toggle.label} ${toggle.labelBefore} ${toggle.radio}`,
|
|
1300
|
+
labelCheckbox: `${toggle.label} ${toggle.labelBefore} ${toggle.checkbox}`,
|
|
1301
|
+
labelVue: "-mt-2"
|
|
1244
1302
|
};
|
|
1245
1303
|
var clickable = {
|
|
1246
1304
|
toggle: "absolute inset-0 h-full w-full appearance-none cursor-pointer focusable focusable-inset",
|
|
@@ -1250,19 +1308,27 @@ var clickable = {
|
|
|
1250
1308
|
};
|
|
1251
1309
|
var attention = {
|
|
1252
1310
|
base: "border-2 relative flex items-start",
|
|
1253
|
-
tooltip: "
|
|
1254
|
-
callout: "
|
|
1255
|
-
highlight: "
|
|
1256
|
-
popover: "
|
|
1311
|
+
tooltip: "s-bg-inverted border-[--w-s-color-background-inverted] shadow-m s-text-inverted-static rounded-4 py-6 px-8",
|
|
1312
|
+
callout: "bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8",
|
|
1313
|
+
highlight: "bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8 drop-shadow-m translate-z-0",
|
|
1314
|
+
popover: "bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300] s-text rounded-8 p-16 drop-shadow-m translate-z-0",
|
|
1257
1315
|
arrowBase: "absolute h-[14px] w-[14px] border-2 border-b-0 border-r-0 rounded-tl-4 transform",
|
|
1316
|
+
arrowDirectionLeftStart: "-left-[8px]",
|
|
1258
1317
|
arrowDirectionLeft: "-left-[8px]",
|
|
1318
|
+
arrowDirectionLeftEnd: "-left-[8px]",
|
|
1319
|
+
arrowDirectionRightStart: "-right-[8px]",
|
|
1259
1320
|
arrowDirectionRight: "-right-[8px]",
|
|
1321
|
+
arrowDirectionRightEnd: "-right-[8px]",
|
|
1322
|
+
arrowDirectionBottomStart: "-bottom-[8px]",
|
|
1260
1323
|
arrowDirectionBottom: "-bottom-[8px]",
|
|
1324
|
+
arrowDirectionBottomEnd: "-bottom-[8px]",
|
|
1325
|
+
arrowDirectionTopStart: "-top-[8px]",
|
|
1261
1326
|
arrowDirectionTop: "-top-[8px]",
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1327
|
+
arrowDirectionTopEnd: "-top-[8px]",
|
|
1328
|
+
arrowTooltip: "s-bg-inverted border-[--w-s-color-background-inverted]",
|
|
1329
|
+
arrowCallout: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1330
|
+
arrowPopover: "bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300]",
|
|
1331
|
+
arrowHighlight: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1266
1332
|
content: "last-child:mb-0",
|
|
1267
1333
|
notCallout: "absolute z-50",
|
|
1268
1334
|
closeBtn: `${buttonTextSizes.medium} ${buttonTypes.pill} ${buttonColors.pill} justify-self-end -mr-8 ml-8`
|
|
@@ -1272,10 +1338,10 @@ var attention = {
|
|
|
1272
1338
|
import { LitElement } from "lit";
|
|
1273
1339
|
import { unsafeStatic, html } from "lit/static-html.js";
|
|
1274
1340
|
|
|
1275
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1341
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1276
1342
|
var import_unraw = __toESM(require_dist(), 1);
|
|
1277
1343
|
|
|
1278
|
-
// node_modules/.pnpm/@lingui+message-utils@4.7.
|
|
1344
|
+
// node_modules/.pnpm/@lingui+message-utils@4.7.1/node_modules/@lingui/message-utils/dist/compileMessage.mjs
|
|
1279
1345
|
var import_parser = __toESM(require_parser(), 1);
|
|
1280
1346
|
function processTokens(tokens, mapText) {
|
|
1281
1347
|
if (!tokens.filter((token) => token.type !== "content").length) {
|
|
@@ -1325,7 +1391,7 @@ Message: ${message}`);
|
|
|
1325
1391
|
}
|
|
1326
1392
|
}
|
|
1327
1393
|
|
|
1328
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1394
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1329
1395
|
var isString = (s) => typeof s === "string";
|
|
1330
1396
|
var isFunction = (f) => typeof f === "function";
|
|
1331
1397
|
var cache = /* @__PURE__ */ new Map();
|
|
@@ -1377,6 +1443,7 @@ function cacheKey(type, locales, options) {
|
|
|
1377
1443
|
return `${type}-${localeKey}-${JSON.stringify(options)}`;
|
|
1378
1444
|
}
|
|
1379
1445
|
var UNICODE_REGEX = /\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;
|
|
1446
|
+
var OCTOTHORPE_PH = "%__lingui_octothorpe__%";
|
|
1380
1447
|
var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
1381
1448
|
const locales = passedLocales || locale;
|
|
1382
1449
|
const style = (format) => {
|
|
@@ -1385,7 +1452,7 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1385
1452
|
const replaceOctothorpe = (value, message) => {
|
|
1386
1453
|
const numberFormat = Object.keys(formats).length ? style("number") : void 0;
|
|
1387
1454
|
const valueStr = number(locales, value, numberFormat);
|
|
1388
|
-
return message.replace("
|
|
1455
|
+
return message.replace(new RegExp(OCTOTHORPE_PH, "g"), valueStr);
|
|
1389
1456
|
};
|
|
1390
1457
|
return {
|
|
1391
1458
|
plural: (value, cases) => {
|
|
@@ -1400,43 +1467,53 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1400
1467
|
},
|
|
1401
1468
|
select: selectFormatter,
|
|
1402
1469
|
number: (value, format) => number(locales, value, style(format)),
|
|
1403
|
-
date: (value, format) => date(locales, value, style(format))
|
|
1404
|
-
undefined: undefinedFormatter
|
|
1470
|
+
date: (value, format) => date(locales, value, style(format))
|
|
1405
1471
|
};
|
|
1406
1472
|
};
|
|
1407
1473
|
var selectFormatter = (value, rules) => {
|
|
1408
1474
|
var _a;
|
|
1409
1475
|
return (_a = rules[value]) != null ? _a : rules.other;
|
|
1410
1476
|
};
|
|
1411
|
-
var undefinedFormatter = (value) => value;
|
|
1412
1477
|
function interpolate(translation, locale, locales) {
|
|
1413
1478
|
return (values = {}, formats) => {
|
|
1414
1479
|
const formatters = getDefaultFormats(locale, locales, formats);
|
|
1415
|
-
const formatMessage = (
|
|
1416
|
-
if (!Array.isArray(
|
|
1417
|
-
return
|
|
1418
|
-
return
|
|
1419
|
-
if (
|
|
1420
|
-
return
|
|
1480
|
+
const formatMessage = (tokens) => {
|
|
1481
|
+
if (!Array.isArray(tokens))
|
|
1482
|
+
return tokens;
|
|
1483
|
+
return tokens.reduce((message, token) => {
|
|
1484
|
+
if (token === "#") {
|
|
1485
|
+
return message + OCTOTHORPE_PH;
|
|
1486
|
+
}
|
|
1487
|
+
if (isString(token)) {
|
|
1488
|
+
return message + token;
|
|
1489
|
+
}
|
|
1421
1490
|
const [name, type, format] = token;
|
|
1422
1491
|
let interpolatedFormat = {};
|
|
1423
|
-
if (
|
|
1424
|
-
Object.entries(format).forEach(
|
|
1425
|
-
|
|
1426
|
-
|
|
1492
|
+
if (type === "plural" || type === "selectordinal" || type === "select") {
|
|
1493
|
+
Object.entries(format).forEach(
|
|
1494
|
+
([key, value2]) => {
|
|
1495
|
+
interpolatedFormat[key] = formatMessage(value2);
|
|
1496
|
+
}
|
|
1497
|
+
);
|
|
1427
1498
|
} else {
|
|
1428
1499
|
interpolatedFormat = format;
|
|
1429
1500
|
}
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1501
|
+
let value;
|
|
1502
|
+
if (type) {
|
|
1503
|
+
const formatter = formatters[type];
|
|
1504
|
+
value = formatter(values[name], interpolatedFormat);
|
|
1505
|
+
} else {
|
|
1506
|
+
value = values[name];
|
|
1507
|
+
}
|
|
1508
|
+
if (value == null) {
|
|
1509
|
+
return message;
|
|
1510
|
+
}
|
|
1511
|
+
return message + value;
|
|
1435
1512
|
}, "");
|
|
1436
1513
|
};
|
|
1437
1514
|
const result = formatMessage(translation);
|
|
1438
1515
|
if (isString(result) && UNICODE_REGEX.test(result)) {
|
|
1439
|
-
return (0, import_unraw.
|
|
1516
|
+
return (0, import_unraw.unraw)(result.trim());
|
|
1440
1517
|
}
|
|
1441
1518
|
if (isString(result))
|
|
1442
1519
|
return result.trim();
|