@prolibu-suite/cobalt-core 0.11.3 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +31 -31
- package/dist/cjs/co-number-field.cjs.entry.js +12 -4
- package/dist/cobalt/cobalt.esm.js +1 -1
- package/dist/cobalt/p-7c20207b.entry.js +1 -0
- package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
- package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
- package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
- package/dist/collection/components/co-color-area/co-color-area.js +2 -2
- package/dist/collection/components/co-color-slider/co-color-slider.js +1 -1
- package/dist/collection/components/co-combobox/co-combobox.js +1 -1
- package/dist/collection/components/co-command-search/co-command-search.js +1 -1
- package/dist/collection/components/co-data-table/co-data-table.js +1 -1
- package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
- package/dist/collection/components/co-document-editor/co-document-editor.js +5 -5
- package/dist/collection/components/co-number-field/co-number-field.js +12 -4
- package/dist/collection/components/co-popover/co-popover.js +1 -1
- package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
- package/dist/collection/components/co-ref-field/co-ref-field.js +4 -4
- package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
- package/dist/collection/components/co-select/co-select.js +1 -1
- package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
- package/dist/collection/components/co-toast/co-toast.js +2 -2
- package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
- package/dist/collection/components/co-tree-item/co-tree-item.js +2 -2
- package/dist/components/co-number-field.js +1 -1
- package/dist/esm/co-number-field.entry.js +12 -4
- package/package.json +4 -4
- package/dist/cobalt/p-ae999b94.entry.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,c as i,h as t,a as r}from"./p-DJkaRtbb.js";import{R as o}from"./p-CYN5B3IQ.js";const n=(e,i)=>({integer:e.slice(0,15),decimals:i.slice(0,8)});function s(e,i=!1){const t=String(null!=e?e:""),r=i&&/^\s*-/.test(t),o=t.replace(/[^\d.]/g,""),[s,...c]=o.split("."),{integer:a,decimals:l}=n(s,c.join("")),d=c.length?`${a}.${l}`:a;return d?r?`-${d}`:d:r?"-":""}function c(e){if(!e)return"";const i=e.startsWith("-"),t=i?e.slice(1):e,r=t.indexOf("."),o=r>=0?t.slice(0,r):t,n=r>=0?t.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${i?"-":""}${s}${n}`}const a=/[^0-9.,-]/g,l=/[0-9.-]/,d=e=>{let i=0;for(const t of e)l.test(t)&&i++;return i},u=(e,i)=>{if(i<=0)return 0;let t=0;for(let r=0;r<e.length;r++)if(l.test(e[r])&&(t++,t===i))return r+1;return e.length},h=class{constructor(t){e(this,t),this.coChange=i(this,"coChange",7),this.coClear=i(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.emptiedByUser=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var i;const t=e.target;if(this.isAmount)return void this.handleAmountInput(t);let r=t.value;const o=r.replace(a,"");if(o!==r){const e=(null!==(i=t.selectionStart)&&void 0!==i?i:r.length)-(r.length-o.length);t.value=o;const n=e<0?0:e;t.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===r)return;const n=parseFloat(function(e){return 1!=e.split(",").length-1||e.includes(".")?e:e.replace(",",".")}(r));isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var i,t,r,o;if(!this.isAmount)return;e.preventDefault();const a=e.target,l=null!==(t=null===(i=e.clipboardData)||void 0===i?void 0:i.getData("text"))&&void 0!==t?t:"";let h=function(e){const i=String(null!=e?e:"").replace(/[^\d.,]/g,"");if(!i)return"";const t=i.lastIndexOf("."),r=i.lastIndexOf(",");let o=-1;if(t>=0&&r>=0)o=Math.max(t,r);else if(t>=0||r>=0){const e=t>=0?".":",",r=i.split(e);2===r.length&&3!==r[1].length&&(o=i.lastIndexOf(e))}const{integer:s,decimals:c}=n((o>=0?i.slice(0,o):i).replace(/[.,]/g,""),o>=0?i.slice(o+1).replace(/[.,]/g,""):"");return s||c?c?`${s||"0"}.${c}`:s:""}(l);h&&this.allowNegative&&/^\s*-/.test(l)&&(h=`-${h}`);const f=null!==(r=a.selectionStart)&&void 0!==r?r:a.value.length,b=null!==(o=a.selectionEnd)&&void 0!==o?o:f,m=s(a.value.slice(0,f),this.allowNegative),_=s(a.value.slice(b)),p=s(m+h+_,this.allowNegative),g=c(p);a.value=g;const v=u(g,d(m+h));if(a.setSelectionRange(v,v),""===p||"-"===p)return void(""===p&&this.clearable?(this.value=null,this.coChange.emit(null)):""===p&&(this.emptiedByUser=!0));const x=parseFloat(p);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{var e;this.focused=!1,this.emptiedByUser?this.emitValue(null!==(e=this.min)&&void 0!==e?e:0):this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=String(this.toDisplay(this.value));return this.isAmount?c(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){this.emptiedByUser=!1;const i=this.clamp(e);this.value=i,this.coChange.emit(i)}handleAmountInput(e){var i;const t=e.value,r=null!==(i=e.selectionStart)&&void 0!==i?i:t.length,o=d(t.slice(0,r)),n=s(t,this.allowNegative),a=c(n);if(e.value!==a){e.value=a;const i=u(a,o);e.setSelectionRange(i,i)}if(""===n)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===n)return;const l=parseFloat(n);isNaN(l)||this.emitValue(l)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return t("div",{key:"87d77047c35e2f0b3b9a978839e5b3c99541dc2e",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,[`co-number-field--${this.size}`]:!0,[`co-number-field--${this.status}`]:"default"!==this.status}},(this.label||this.secondaryLabel)&&t("div",{key:"22f0674035a68861fae6ce37aba4e51b10c03226",class:"co-number-field__labels"},this.label&&t("label",{key:"442ee74bed62bf7c800f231ad4992b791b85a30c",class:"co-number-field__label"},this.label,t(o,{key:"ff7517b83b8e942512dcb8c1f504eafab55cea90",required:this.required})),this.secondaryLabel&&t("span",{key:"736889aae85065fb28a56131e2f7a3da9fc86a48",class:"co-number-field__secondary-label"},this.secondaryLabel)),t("div",{key:"fd6163c7cb83073db2c19c3477447076372abb44",class:"co-number-field__row",part:"row"},!this.hideControls&&t("button",{key:"e1a52831b83c3255ce63c4ed48a228fe4fdb1629",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},t("co-icon",{key:"86e0ce9b9801e50d9bda6b18a8e1f6f96581b178",name:"minus",size:16})),t("input",{key:"4bdf89e9a4958841a948b3bd6e9886898917f464",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&t("span",{key:"7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&t("button",{key:"2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},t("co-icon",{key:"c428ca841c0de013cd151bd356686be43992de04",name:"x-circle",size:16,weight:"fill"})),t("slot",{key:"fb127a663d3839bbb10b8232b250eaf67faab898",name:"suffix"}),!this.hideControls&&t("button",{key:"684329d2f32a58f6be2a124f0cd20986a7fc49af",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},t("co-icon",{key:"7ef48466e060efb314466d62216a8e00168ddbcd",name:"plus",size:16}))),this.helperText&&t("div",{key:"2cf6df2556160fef3c1dfd1b525991eb822cb285",class:`co-number-field__helper co-number-field__helper--${this.status}`},this.statusIcon&&t("co-icon",{key:"905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),t("span",{key:"0c4825c4145298700de006eb3170e9ec3b52d3b7",class:"co-number-field__helper-text"},this.helperText)))}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};h.style=":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}";export{h as co_number_field}
|
|
@@ -431,7 +431,7 @@ export class CoAutocomplete {
|
|
|
431
431
|
"references": {
|
|
432
432
|
"AutocompleteOption": {
|
|
433
433
|
"location": "local",
|
|
434
|
-
"path": "/Users/agox/
|
|
434
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-autocomplete/co-autocomplete.tsx",
|
|
435
435
|
"id": "src/components/co-autocomplete/co-autocomplete.tsx::AutocompleteOption"
|
|
436
436
|
}
|
|
437
437
|
}
|
|
@@ -92,7 +92,7 @@ export class CoAvatarGroup {
|
|
|
92
92
|
"references": {
|
|
93
93
|
"CoAvatarGroupItem": {
|
|
94
94
|
"location": "local",
|
|
95
|
-
"path": "/Users/agox/
|
|
95
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-avatar-group/co-avatar-group.tsx",
|
|
96
96
|
"id": "src/components/co-avatar-group/co-avatar-group.tsx::CoAvatarGroupItem"
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -236,7 +236,7 @@ export class CoCheckboxGroup {
|
|
|
236
236
|
"references": {
|
|
237
237
|
"CheckboxOption": {
|
|
238
238
|
"location": "local",
|
|
239
|
-
"path": "/Users/agox/
|
|
239
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-checkbox-group/co-checkbox-group.tsx",
|
|
240
240
|
"id": "src/components/co-checkbox-group/co-checkbox-group.tsx::CheckboxOption"
|
|
241
241
|
}
|
|
242
242
|
}
|
|
@@ -310,7 +310,7 @@ export class CoColorArea {
|
|
|
310
310
|
"references": {
|
|
311
311
|
"ColorAreaDetail": {
|
|
312
312
|
"location": "local",
|
|
313
|
-
"path": "/Users/agox/
|
|
313
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-color-area/co-color-area.tsx",
|
|
314
314
|
"id": "src/components/co-color-area/co-color-area.tsx::ColorAreaDetail"
|
|
315
315
|
}
|
|
316
316
|
}
|
|
@@ -331,7 +331,7 @@ export class CoColorArea {
|
|
|
331
331
|
"references": {
|
|
332
332
|
"ColorAreaDetail": {
|
|
333
333
|
"location": "local",
|
|
334
|
-
"path": "/Users/agox/
|
|
334
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-color-area/co-color-area.tsx",
|
|
335
335
|
"id": "src/components/co-color-area/co-color-area.tsx::ColorAreaDetail"
|
|
336
336
|
}
|
|
337
337
|
}
|
|
@@ -215,7 +215,7 @@ export class CoColorSlider {
|
|
|
215
215
|
"references": {
|
|
216
216
|
"ColorSliderChannel": {
|
|
217
217
|
"location": "local",
|
|
218
|
-
"path": "/Users/agox/
|
|
218
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-color-slider/co-color-slider.tsx",
|
|
219
219
|
"id": "src/components/co-color-slider/co-color-slider.tsx::ColorSliderChannel"
|
|
220
220
|
}
|
|
221
221
|
}
|
|
@@ -545,7 +545,7 @@ export class CoCombobox {
|
|
|
545
545
|
"references": {
|
|
546
546
|
"ComboboxOption": {
|
|
547
547
|
"location": "local",
|
|
548
|
-
"path": "/Users/agox/
|
|
548
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-combobox/co-combobox.tsx",
|
|
549
549
|
"id": "src/components/co-combobox/co-combobox.tsx::ComboboxOption"
|
|
550
550
|
}
|
|
551
551
|
}
|
|
@@ -257,7 +257,7 @@ export class CoCommandSearch {
|
|
|
257
257
|
"references": {
|
|
258
258
|
"CommandItem": {
|
|
259
259
|
"location": "local",
|
|
260
|
-
"path": "/Users/agox/
|
|
260
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-command-search/co-command-search.tsx",
|
|
261
261
|
"id": "src/components/co-command-search/co-command-search.tsx::CommandItem"
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -509,7 +509,7 @@ export class CoDataTable {
|
|
|
509
509
|
"references": {
|
|
510
510
|
"CoDataTableColumn": {
|
|
511
511
|
"location": "local",
|
|
512
|
-
"path": "/Users/agox/
|
|
512
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-data-table/co-data-table.tsx",
|
|
513
513
|
"id": "src/components/co-data-table/co-data-table.tsx::CoDataTableColumn"
|
|
514
514
|
}
|
|
515
515
|
}
|
|
@@ -1055,7 +1055,7 @@ export class CoDateRangePicker {
|
|
|
1055
1055
|
"references": {
|
|
1056
1056
|
"DateRangeValue": {
|
|
1057
1057
|
"location": "local",
|
|
1058
|
-
"path": "/Users/agox/
|
|
1058
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
|
|
1059
1059
|
"id": "src/components/co-date-range-picker/co-date-range-picker.tsx::DateRangeValue"
|
|
1060
1060
|
}
|
|
1061
1061
|
}
|
|
@@ -1076,7 +1076,7 @@ export class CoDateRangePicker {
|
|
|
1076
1076
|
"references": {
|
|
1077
1077
|
"DateRangeValue": {
|
|
1078
1078
|
"location": "local",
|
|
1079
|
-
"path": "/Users/agox/
|
|
1079
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-date-range-picker/co-date-range-picker.tsx",
|
|
1080
1080
|
"id": "src/components/co-date-range-picker/co-date-range-picker.tsx::DateRangeValue"
|
|
1081
1081
|
}
|
|
1082
1082
|
}
|
|
@@ -936,7 +936,7 @@ export class CoDocumentEditor {
|
|
|
936
936
|
"references": {
|
|
937
937
|
"DocumentPageSize": {
|
|
938
938
|
"location": "local",
|
|
939
|
-
"path": "/Users/agox/
|
|
939
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-document-editor/co-document-editor.tsx",
|
|
940
940
|
"id": "src/components/co-document-editor/co-document-editor.tsx::DocumentPageSize"
|
|
941
941
|
}
|
|
942
942
|
}
|
|
@@ -962,7 +962,7 @@ export class CoDocumentEditor {
|
|
|
962
962
|
"references": {
|
|
963
963
|
"DocumentMargins": {
|
|
964
964
|
"location": "local",
|
|
965
|
-
"path": "/Users/agox/
|
|
965
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-document-editor/co-document-editor.tsx",
|
|
966
966
|
"id": "src/components/co-document-editor/co-document-editor.tsx::DocumentMargins"
|
|
967
967
|
}
|
|
968
968
|
}
|
|
@@ -1027,7 +1027,7 @@ export class CoDocumentEditor {
|
|
|
1027
1027
|
"references": {
|
|
1028
1028
|
"DocumentFeatures": {
|
|
1029
1029
|
"location": "local",
|
|
1030
|
-
"path": "/Users/agox/
|
|
1030
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-document-editor/co-document-editor.tsx",
|
|
1031
1031
|
"id": "src/components/co-document-editor/co-document-editor.tsx::DocumentFeatures"
|
|
1032
1032
|
}
|
|
1033
1033
|
}
|
|
@@ -1220,7 +1220,7 @@ export class CoDocumentEditor {
|
|
|
1220
1220
|
"references": {
|
|
1221
1221
|
"DocumentHeaderDetail": {
|
|
1222
1222
|
"location": "local",
|
|
1223
|
-
"path": "/Users/agox/
|
|
1223
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-document-editor/co-document-editor.tsx",
|
|
1224
1224
|
"id": "src/components/co-document-editor/co-document-editor.tsx::DocumentHeaderDetail"
|
|
1225
1225
|
}
|
|
1226
1226
|
}
|
|
@@ -1256,7 +1256,7 @@ export class CoDocumentEditor {
|
|
|
1256
1256
|
"references": {
|
|
1257
1257
|
"DocumentActionDetail": {
|
|
1258
1258
|
"location": "local",
|
|
1259
|
-
"path": "/Users/agox/
|
|
1259
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-document-editor/co-document-editor.tsx",
|
|
1260
1260
|
"id": "src/components/co-document-editor/co-document-editor.tsx::DocumentActionDetail"
|
|
1261
1261
|
}
|
|
1262
1262
|
}
|
|
@@ -10,6 +10,11 @@ import { formatAmountText, parseNumericText, stripAmountText } from "../../utils
|
|
|
10
10
|
* blur—, solo impide que el campo muestre algo que no es un número.
|
|
11
11
|
*/
|
|
12
12
|
const NON_NUMERIC = /[^0-9.,-]/g;
|
|
13
|
+
/** «12,5» → «12.5»; con dos comas o con punto no se adivina (queda igual). */
|
|
14
|
+
function decimalCommaToDot(raw) {
|
|
15
|
+
const commas = raw.split(',').length - 1;
|
|
16
|
+
return commas === 1 && !raw.includes('.') ? raw.replace(',', '.') : raw;
|
|
17
|
+
}
|
|
13
18
|
/** Caracteres que CUENTAN para el caret en modo amount (la coma es decorado). */
|
|
14
19
|
const SIGNIFICANT = /[0-9.-]/;
|
|
15
20
|
const countSignificant = (text) => {
|
|
@@ -122,7 +127,10 @@ export class CoNumberField {
|
|
|
122
127
|
}
|
|
123
128
|
if (raw === '-')
|
|
124
129
|
return;
|
|
125
|
-
|
|
130
|
+
// Una coma sola y sin punto es el separador decimal (es/pt: «12,5»): parseFloat
|
|
131
|
+
// cortaría en ella y commitearía 12. Solo se normaliza lo que se parsea — el
|
|
132
|
+
// texto del campo queda como lo tipeó el usuario (y el caret en su lugar).
|
|
133
|
+
const num = parseFloat(decimalCommaToDot(raw));
|
|
126
134
|
if (!isNaN(num)) {
|
|
127
135
|
this.emitValue(this.fromDisplay(num));
|
|
128
136
|
}
|
|
@@ -337,18 +345,18 @@ export class CoNumberField {
|
|
|
337
345
|
return this.scaled && !this.isEmpty ? '%' : null;
|
|
338
346
|
}
|
|
339
347
|
render() {
|
|
340
|
-
return (h("div", { key: '
|
|
348
|
+
return (h("div", { key: '87d77047c35e2f0b3b9a978839e5b3c99541dc2e', class: {
|
|
341
349
|
'co-number-field': true,
|
|
342
350
|
'co-number-field--disabled': this.disabled,
|
|
343
351
|
'co-number-field--focused': this.focused,
|
|
344
352
|
[`co-number-field--${this.size}`]: true,
|
|
345
353
|
[`co-number-field--${this.status}`]: this.status !== 'default',
|
|
346
|
-
} }, (this.label || this.secondaryLabel) && (h("div", { key: '
|
|
354
|
+
} }, (this.label || this.secondaryLabel) && (h("div", { key: '22f0674035a68861fae6ce37aba4e51b10c03226', class: "co-number-field__labels" }, this.label && h("label", { key: '442ee74bed62bf7c800f231ad4992b791b85a30c', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: 'ff7517b83b8e942512dcb8c1f504eafab55cea90', required: this.required })), this.secondaryLabel && h("span", { key: '736889aae85065fb28a56131e2f7a3da9fc86a48', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: 'fd6163c7cb83073db2c19c3477447076372abb44', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: 'e1a52831b83c3255ce63c4ed48a228fe4fdb1629', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '86e0ce9b9801e50d9bda6b18a8e1f6f96581b178', name: "minus", size: 16 }))), h("input", { key: '4bdf89e9a4958841a948b3bd6e9886898917f464', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
|
|
347
355
|
// Mismo guard `focused` que el @Watch: mientras el usuario edita, su
|
|
348
356
|
// texto manda. Sin esto, el re-render que dispara emitValue repinta
|
|
349
357
|
// el input desde el NÚMERO y se come el texto en construcción
|
|
350
358
|
// ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
|
|
351
|
-
value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '
|
|
359
|
+
value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'c428ca841c0de013cd151bd356686be43992de04', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: 'fb127a663d3839bbb10b8232b250eaf67faab898', name: "suffix" }), !this.hideControls && (h("button", { key: '684329d2f32a58f6be2a124f0cd20986a7fc49af', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: '7ef48466e060efb314466d62216a8e00168ddbcd', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '2cf6df2556160fef3c1dfd1b525991eb822cb285', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '0c4825c4145298700de006eb3170e9ec3b52d3b7', class: "co-number-field__helper-text" }, this.helperText)))));
|
|
352
360
|
}
|
|
353
361
|
static get is() { return "co-number-field"; }
|
|
354
362
|
static get encapsulation() { return "shadow"; }
|
|
@@ -446,7 +446,7 @@ export class CoPopover {
|
|
|
446
446
|
"references": {
|
|
447
447
|
"PopoverPlacement": {
|
|
448
448
|
"location": "local",
|
|
449
|
-
"path": "/Users/agox/
|
|
449
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-popover/co-popover.tsx",
|
|
450
450
|
"id": "src/components/co-popover/co-popover.tsx::PopoverPlacement"
|
|
451
451
|
}
|
|
452
452
|
}
|
|
@@ -224,7 +224,7 @@ export class CoRadioGroup {
|
|
|
224
224
|
"references": {
|
|
225
225
|
"RadioOption": {
|
|
226
226
|
"location": "local",
|
|
227
|
-
"path": "/Users/agox/
|
|
227
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-radio-group/co-radio-group.tsx",
|
|
228
228
|
"id": "src/components/co-radio-group/co-radio-group.tsx::RadioOption"
|
|
229
229
|
}
|
|
230
230
|
}
|
|
@@ -1349,7 +1349,7 @@ export class CoRefField {
|
|
|
1349
1349
|
"references": {
|
|
1350
1350
|
"RefFieldOption": {
|
|
1351
1351
|
"location": "local",
|
|
1352
|
-
"path": "/Users/agox/
|
|
1352
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1353
1353
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1354
1354
|
}
|
|
1355
1355
|
}
|
|
@@ -1490,7 +1490,7 @@ export class CoRefField {
|
|
|
1490
1490
|
"references": {
|
|
1491
1491
|
"RefFieldOption": {
|
|
1492
1492
|
"location": "local",
|
|
1493
|
-
"path": "/Users/agox/
|
|
1493
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1494
1494
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1495
1495
|
}
|
|
1496
1496
|
}
|
|
@@ -1511,7 +1511,7 @@ export class CoRefField {
|
|
|
1511
1511
|
"references": {
|
|
1512
1512
|
"RefFieldOption": {
|
|
1513
1513
|
"location": "local",
|
|
1514
|
-
"path": "/Users/agox/
|
|
1514
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1515
1515
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1516
1516
|
}
|
|
1517
1517
|
}
|
|
@@ -1550,7 +1550,7 @@ export class CoRefField {
|
|
|
1550
1550
|
},
|
|
1551
1551
|
"RefFieldOption": {
|
|
1552
1552
|
"location": "local",
|
|
1553
|
-
"path": "/Users/agox/
|
|
1553
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-ref-field/co-ref-field.tsx",
|
|
1554
1554
|
"id": "src/components/co-ref-field/co-ref-field.tsx::RefFieldOption"
|
|
1555
1555
|
}
|
|
1556
1556
|
},
|
|
@@ -160,7 +160,7 @@ export class CoSegmentedBar {
|
|
|
160
160
|
"references": {
|
|
161
161
|
"CoSegment": {
|
|
162
162
|
"location": "local",
|
|
163
|
-
"path": "/Users/agox/
|
|
163
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-segmented-bar/co-segmented-bar.tsx",
|
|
164
164
|
"id": "src/components/co-segmented-bar/co-segmented-bar.tsx::CoSegment"
|
|
165
165
|
}
|
|
166
166
|
}
|
|
@@ -846,7 +846,7 @@ export class CoSelect {
|
|
|
846
846
|
"references": {
|
|
847
847
|
"SelectOption": {
|
|
848
848
|
"location": "local",
|
|
849
|
-
"path": "/Users/agox/
|
|
849
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-select/co-select.tsx",
|
|
850
850
|
"id": "src/components/co-select/co-select.tsx::SelectOption"
|
|
851
851
|
}
|
|
852
852
|
}
|
|
@@ -718,7 +718,7 @@ export class CoSidebarNav {
|
|
|
718
718
|
"references": {
|
|
719
719
|
"NavigateDetail": {
|
|
720
720
|
"location": "local",
|
|
721
|
-
"path": "/Users/agox/
|
|
721
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-sidebar-nav/co-sidebar-nav.tsx",
|
|
722
722
|
"id": "src/components/co-sidebar-nav/co-sidebar-nav.tsx::NavigateDetail"
|
|
723
723
|
}
|
|
724
724
|
}
|
|
@@ -189,7 +189,7 @@ export class CoToast {
|
|
|
189
189
|
"references": {
|
|
190
190
|
"CoToastActionsLayout": {
|
|
191
191
|
"location": "local",
|
|
192
|
-
"path": "/Users/agox/
|
|
192
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-toast/co-toast.tsx",
|
|
193
193
|
"id": "src/components/co-toast/co-toast.tsx::CoToastActionsLayout"
|
|
194
194
|
}
|
|
195
195
|
}
|
|
@@ -215,7 +215,7 @@ export class CoToast {
|
|
|
215
215
|
"references": {
|
|
216
216
|
"CoToastVariant": {
|
|
217
217
|
"location": "local",
|
|
218
|
-
"path": "/Users/agox/
|
|
218
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-toast/co-toast.tsx",
|
|
219
219
|
"id": "src/components/co-toast/co-toast.tsx::CoToastVariant"
|
|
220
220
|
}
|
|
221
221
|
}
|
|
@@ -214,7 +214,7 @@ export class CoTransferList {
|
|
|
214
214
|
"references": {
|
|
215
215
|
"TransferOption": {
|
|
216
216
|
"location": "local",
|
|
217
|
-
"path": "/Users/agox/
|
|
217
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-transfer-list/co-transfer-list.tsx",
|
|
218
218
|
"id": "src/components/co-transfer-list/co-transfer-list.tsx::TransferOption"
|
|
219
219
|
}
|
|
220
220
|
}
|
|
@@ -243,7 +243,7 @@ export class CoTreeItem {
|
|
|
243
243
|
"references": {
|
|
244
244
|
"TreeItemSelection": {
|
|
245
245
|
"location": "local",
|
|
246
|
-
"path": "/Users/agox/
|
|
246
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-tree-item/co-tree-item.tsx",
|
|
247
247
|
"id": "src/components/co-tree-item/co-tree-item.tsx::TreeItemSelection"
|
|
248
248
|
}
|
|
249
249
|
}
|
|
@@ -269,7 +269,7 @@ export class CoTreeItem {
|
|
|
269
269
|
"references": {
|
|
270
270
|
"TreeItemSize": {
|
|
271
271
|
"location": "local",
|
|
272
|
-
"path": "/Users/agox/
|
|
272
|
+
"path": "/Users/agox/worktrees/cobalt-number-comma/packages/core/src/components/co-tree-item/co-tree-item.tsx",
|
|
273
273
|
"id": "src/components/co-tree-item/co-tree-item.tsx::TreeItemSize"
|
|
274
274
|
}
|
|
275
275
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,p as t,H as i,c as r,h as o}from"./index.js";import{R as n}from"./p-CWneqh4n.js";import{d as s}from"./p-KK2vAKs-.js";const c=(e,t)=>({integer:e.slice(0,15),decimals:t.slice(0,8)});function a(e,t=!1){const i=(null!=e?e:"")+"",r=t&&/^\s*-/.test(i),o=i.replace(/[^\d.]/g,""),[n,...s]=o.split("."),{integer:a,decimals:l}=c(n,s.join("")),d=s.length?`${a}.${l}`:a;return d?r?"-"+d:d:r?"-":""}function l(e){if(!e)return"";const t=e.startsWith("-"),i=t?e.slice(1):e,r=i.indexOf("."),o=r>=0?i.slice(0,r):i,n=r>=0?i.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${t?"-":""}${s}${n}`}const d=/[^0-9.,-]/g,u=/[0-9.-]/,f=e=>{let t=0;for(const i of e)u.test(i)&&t++;return t},h=(e,t)=>{if(t<=0)return 0;let i=0;for(let r=0;r<e.length;r++)if(u.test(e[r])&&(i++,i===t))return r+1;return e.length},b=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coChange=r(this,"coChange",7),this.coClear=r(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.emptiedByUser=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var t;const i=e.target;if(this.isAmount)return void this.handleAmountInput(i);let r=i.value;const o=r.replace(d,"");if(o!==r){const e=(null!==(t=i.selectionStart)&&void 0!==t?t:r.length)-(r.length-o.length);i.value=o;const n=e<0?0:e;i.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===r)return;const n=parseFloat(r);isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var t,i,r,o;if(!this.isAmount)return;e.preventDefault();const n=e.target,s=null!==(i=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==i?i:"";let d=function(e){const t=((null!=e?e:"")+"").replace(/[^\d.,]/g,"");if(!t)return"";const i=t.lastIndexOf("."),r=t.lastIndexOf(",");let o=-1;if(i>=0&&r>=0)o=Math.max(i,r);else if(i>=0||r>=0){const e=i>=0?".":",",r=t.split(e);2===r.length&&3!==r[1].length&&(o=t.lastIndexOf(e))}const{integer:n,decimals:s}=c((o>=0?t.slice(0,o):t).replace(/[.,]/g,""),o>=0?t.slice(o+1).replace(/[.,]/g,""):"");return n||s?s?`${n||"0"}.${s}`:n:""}(s);d&&this.allowNegative&&/^\s*-/.test(s)&&(d="-"+d);const u=null!==(r=n.selectionStart)&&void 0!==r?r:n.value.length,b=null!==(o=n.selectionEnd)&&void 0!==o?o:u,m=a(n.value.slice(0,u),this.allowNegative),p=a(n.value.slice(b)),_=a(m+d+p,this.allowNegative),g=l(_);n.value=g;const v=h(g,f(m+d));if(n.setSelectionRange(v,v),""===_||"-"===_)return void(""===_&&this.clearable?(this.value=null,this.coChange.emit(null)):""===_&&(this.emptiedByUser=!0));const x=parseFloat(_);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{var e;this.focused=!1,this.emptiedByUser?this.emitValue(null!==(e=this.min)&&void 0!==e?e:0):this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=this.toDisplay(this.value)+"";return this.isAmount?l(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){this.emptiedByUser=!1;const t=this.clamp(e);this.value=t,this.coChange.emit(t)}handleAmountInput(e){var t;const i=e.value,r=null!==(t=e.selectionStart)&&void 0!==t?t:i.length,o=f(i.slice(0,r)),n=a(i,this.allowNegative),s=l(n);if(e.value!==s){e.value=s;const t=h(s,o);e.setSelectionRange(t,t)}if(""===n)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===n)return;const c=parseFloat(n);isNaN(c)||this.emitValue(c)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return o("div",{key:"cf4d63ce0278fd8f429aa4bf541497b7cf178ffe",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,["co-number-field--"+this.size]:!0,["co-number-field--"+this.status]:"default"!==this.status}},(this.label||this.secondaryLabel)&&o("div",{key:"ecf9fd16f18a3ebbaef5b81b0c8ae41b80f04abf",class:"co-number-field__labels"},this.label&&o("label",{key:"7602d901e085e3380dff2a355d61ac1dc515428b",class:"co-number-field__label"},this.label,o(n,{key:"361743bf41c66ff28ceec00aba583328f2404713",required:this.required})),this.secondaryLabel&&o("span",{key:"ec9af4b27f3915704ef89ed6f51e7184eb5e1dd4",class:"co-number-field__secondary-label"},this.secondaryLabel)),o("div",{key:"30f1716aed06da03f924fa1da2b2ab29dbede0bb",class:"co-number-field__row",part:"row"},!this.hideControls&&o("button",{key:"1dbee1178df2a86e54ae42572a20ecf30484b8bc",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},o("co-icon",{key:"40f61bd3774fb03b6aaceaef006dd45f2df260d3",name:"minus",size:16})),o("input",{key:"254a74cd61a2776a69953965f8b289267b25fbb2",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&o("span",{key:"836ea4e4cba0b21a36b1017d6fc0c4d621d69e56",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&o("button",{key:"5eefa937a055dea1855d1bc3bae675003d8382c8",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},o("co-icon",{key:"096dec8d88b7b241cd83a04788bc4db05feec585",name:"x-circle",size:16,weight:"fill"})),o("slot",{key:"1ea7d1ff2c61d74b0884e7b8f1b7b54de4978876",name:"suffix"}),!this.hideControls&&o("button",{key:"9ae95697534b85dcd928c0d0e7f72a3b8c5402c7",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},o("co-icon",{key:"af526ac4278865052f32ae7359a571aa485492af",name:"plus",size:16}))),this.helperText&&o("div",{key:"9bad3ffd8c70ce49205132f9f73294a83b6ebbc3",class:"co-number-field__helper co-number-field__helper--"+this.status},this.statusIcon&&o("co-icon",{key:"4987bc82011c4bb93e1bd00ef1ffd45d2e8681f4",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),o("span",{key:"8eac5821653dc0110113f94833e13f27411188a7",class:"co-number-field__helper-text"},this.helperText)))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}"}},[257,"co-number-field",{label:[1],required:[4],secondaryLabel:[1,"secondary-label"],helperText:[1,"helper-text"],layout:[513],status:[1],value:[1538],min:[2],max:[2],step:[2],disabled:[4],placeholder:[1],size:[513],clearable:[4],format:[513],hideControls:[516,"hide-controls"],suffix:[1],focused:[32]},void 0,{value:[{onValueChange:0}]}]);function m(){"undefined"!=typeof customElements&&["co-number-field","co-icon"].forEach((t=>{switch(t){case"co-number-field":customElements.get(e(t))||customElements.define(e(t),b);break;case"co-icon":customElements.get(e(t))||s()}}))}m();const p=b,_=m;export{p as CoNumberField,_ as defineCustomElement}
|
|
1
|
+
import{t as e,p as t,H as i,c as r,h as o}from"./index.js";import{R as n}from"./p-CWneqh4n.js";import{d as s}from"./p-KK2vAKs-.js";const c=(e,t)=>({integer:e.slice(0,15),decimals:t.slice(0,8)});function a(e,t=!1){const i=(null!=e?e:"")+"",r=t&&/^\s*-/.test(i),o=i.replace(/[^\d.]/g,""),[n,...s]=o.split("."),{integer:a,decimals:l}=c(n,s.join("")),d=s.length?`${a}.${l}`:a;return d?r?"-"+d:d:r?"-":""}function l(e){if(!e)return"";const t=e.startsWith("-"),i=t?e.slice(1):e,r=i.indexOf("."),o=r>=0?i.slice(0,r):i,n=r>=0?i.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${t?"-":""}${s}${n}`}const d=/[^0-9.,-]/g,u=/[0-9.-]/,h=e=>{let t=0;for(const i of e)u.test(i)&&t++;return t},f=(e,t)=>{if(t<=0)return 0;let i=0;for(let r=0;r<e.length;r++)if(u.test(e[r])&&(i++,i===t))return r+1;return e.length},b=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coChange=r(this,"coChange",7),this.coClear=r(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.emptiedByUser=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var t;const i=e.target;if(this.isAmount)return void this.handleAmountInput(i);let r=i.value;const o=r.replace(d,"");if(o!==r){const e=(null!==(t=i.selectionStart)&&void 0!==t?t:r.length)-(r.length-o.length);i.value=o;const n=e<0?0:e;i.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===r)return;const n=parseFloat(function(e){return 1!=e.split(",").length-1||e.includes(".")?e:e.replace(",",".")}(r));isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var t,i,r,o;if(!this.isAmount)return;e.preventDefault();const n=e.target,s=null!==(i=null===(t=e.clipboardData)||void 0===t?void 0:t.getData("text"))&&void 0!==i?i:"";let d=function(e){const t=((null!=e?e:"")+"").replace(/[^\d.,]/g,"");if(!t)return"";const i=t.lastIndexOf("."),r=t.lastIndexOf(",");let o=-1;if(i>=0&&r>=0)o=Math.max(i,r);else if(i>=0||r>=0){const e=i>=0?".":",",r=t.split(e);2===r.length&&3!==r[1].length&&(o=t.lastIndexOf(e))}const{integer:n,decimals:s}=c((o>=0?t.slice(0,o):t).replace(/[.,]/g,""),o>=0?t.slice(o+1).replace(/[.,]/g,""):"");return n||s?s?`${n||"0"}.${s}`:n:""}(s);d&&this.allowNegative&&/^\s*-/.test(s)&&(d="-"+d);const u=null!==(r=n.selectionStart)&&void 0!==r?r:n.value.length,b=null!==(o=n.selectionEnd)&&void 0!==o?o:u,m=a(n.value.slice(0,u),this.allowNegative),p=a(n.value.slice(b)),_=a(m+d+p,this.allowNegative),g=l(_);n.value=g;const v=f(g,h(m+d));if(n.setSelectionRange(v,v),""===_||"-"===_)return void(""===_&&this.clearable?(this.value=null,this.coChange.emit(null)):""===_&&(this.emptiedByUser=!0));const x=parseFloat(_);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{var e;this.focused=!1,this.emptiedByUser?this.emitValue(null!==(e=this.min)&&void 0!==e?e:0):this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=this.toDisplay(this.value)+"";return this.isAmount?l(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){this.emptiedByUser=!1;const t=this.clamp(e);this.value=t,this.coChange.emit(t)}handleAmountInput(e){var t;const i=e.value,r=null!==(t=e.selectionStart)&&void 0!==t?t:i.length,o=h(i.slice(0,r)),n=a(i,this.allowNegative),s=l(n);if(e.value!==s){e.value=s;const t=f(s,o);e.setSelectionRange(t,t)}if(""===n)return void(this.clearable?(this.value=null,this.coChange.emit(null)):this.emptiedByUser=!0);if("-"===n)return;const c=parseFloat(n);isNaN(c)||this.emitValue(c)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return o("div",{key:"87d77047c35e2f0b3b9a978839e5b3c99541dc2e",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,["co-number-field--"+this.size]:!0,["co-number-field--"+this.status]:"default"!==this.status}},(this.label||this.secondaryLabel)&&o("div",{key:"22f0674035a68861fae6ce37aba4e51b10c03226",class:"co-number-field__labels"},this.label&&o("label",{key:"442ee74bed62bf7c800f231ad4992b791b85a30c",class:"co-number-field__label"},this.label,o(n,{key:"ff7517b83b8e942512dcb8c1f504eafab55cea90",required:this.required})),this.secondaryLabel&&o("span",{key:"736889aae85065fb28a56131e2f7a3da9fc86a48",class:"co-number-field__secondary-label"},this.secondaryLabel)),o("div",{key:"fd6163c7cb83073db2c19c3477447076372abb44",class:"co-number-field__row",part:"row"},!this.hideControls&&o("button",{key:"e1a52831b83c3255ce63c4ed48a228fe4fdb1629",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},o("co-icon",{key:"86e0ce9b9801e50d9bda6b18a8e1f6f96581b178",name:"minus",size:16})),o("input",{key:"4bdf89e9a4958841a948b3bd6e9886898917f464",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&o("span",{key:"7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&o("button",{key:"2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},o("co-icon",{key:"c428ca841c0de013cd151bd356686be43992de04",name:"x-circle",size:16,weight:"fill"})),o("slot",{key:"fb127a663d3839bbb10b8232b250eaf67faab898",name:"suffix"}),!this.hideControls&&o("button",{key:"684329d2f32a58f6be2a124f0cd20986a7fc49af",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},o("co-icon",{key:"7ef48466e060efb314466d62216a8e00168ddbcd",name:"plus",size:16}))),this.helperText&&o("div",{key:"2cf6df2556160fef3c1dfd1b525991eb822cb285",class:"co-number-field__helper co-number-field__helper--"+this.status},this.statusIcon&&o("co-icon",{key:"905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),o("span",{key:"0c4825c4145298700de006eb3170e9ec3b52d3b7",class:"co-number-field__helper-text"},this.helperText)))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}"}},[257,"co-number-field",{label:[1],required:[4],secondaryLabel:[1,"secondary-label"],helperText:[1,"helper-text"],layout:[513],status:[1],value:[1538],min:[2],max:[2],step:[2],disabled:[4],placeholder:[1],size:[513],clearable:[4],format:[513],hideControls:[516,"hide-controls"],suffix:[1],focused:[32]},void 0,{value:[{onValueChange:0}]}]);function m(){"undefined"!=typeof customElements&&["co-number-field","co-icon"].forEach((t=>{switch(t){case"co-number-field":customElements.get(e(t))||customElements.define(e(t),b);break;case"co-icon":customElements.get(e(t))||s()}}))}m();const p=b,_=m;export{p as CoNumberField,_ as defineCustomElement}
|
|
@@ -108,6 +108,11 @@ const coNumberFieldCss = () => `:host{display:block;font-family:var(--co-font-fa
|
|
|
108
108
|
* blur—, solo impide que el campo muestre algo que no es un número.
|
|
109
109
|
*/
|
|
110
110
|
const NON_NUMERIC = /[^0-9.,-]/g;
|
|
111
|
+
/** «12,5» → «12.5»; con dos comas o con punto no se adivina (queda igual). */
|
|
112
|
+
function decimalCommaToDot(raw) {
|
|
113
|
+
const commas = raw.split(',').length - 1;
|
|
114
|
+
return commas === 1 && !raw.includes('.') ? raw.replace(',', '.') : raw;
|
|
115
|
+
}
|
|
111
116
|
/** Caracteres que CUENTAN para el caret en modo amount (la coma es decorado). */
|
|
112
117
|
const SIGNIFICANT = /[0-9.-]/;
|
|
113
118
|
const countSignificant = (text) => {
|
|
@@ -215,7 +220,10 @@ const CoNumberField = class {
|
|
|
215
220
|
}
|
|
216
221
|
if (raw === '-')
|
|
217
222
|
return;
|
|
218
|
-
|
|
223
|
+
// Una coma sola y sin punto es el separador decimal (es/pt: «12,5»): parseFloat
|
|
224
|
+
// cortaría en ella y commitearía 12. Solo se normaliza lo que se parsea — el
|
|
225
|
+
// texto del campo queda como lo tipeó el usuario (y el caret en su lugar).
|
|
226
|
+
const num = parseFloat(decimalCommaToDot(raw));
|
|
219
227
|
if (!isNaN(num)) {
|
|
220
228
|
this.emitValue(this.fromDisplay(num));
|
|
221
229
|
}
|
|
@@ -430,18 +438,18 @@ const CoNumberField = class {
|
|
|
430
438
|
return this.scaled && !this.isEmpty ? '%' : null;
|
|
431
439
|
}
|
|
432
440
|
render() {
|
|
433
|
-
return (h("div", { key: '
|
|
441
|
+
return (h("div", { key: '87d77047c35e2f0b3b9a978839e5b3c99541dc2e', class: {
|
|
434
442
|
'co-number-field': true,
|
|
435
443
|
'co-number-field--disabled': this.disabled,
|
|
436
444
|
'co-number-field--focused': this.focused,
|
|
437
445
|
[`co-number-field--${this.size}`]: true,
|
|
438
446
|
[`co-number-field--${this.status}`]: this.status !== 'default',
|
|
439
|
-
} }, (this.label || this.secondaryLabel) && (h("div", { key: '
|
|
447
|
+
} }, (this.label || this.secondaryLabel) && (h("div", { key: '22f0674035a68861fae6ce37aba4e51b10c03226', class: "co-number-field__labels" }, this.label && h("label", { key: '442ee74bed62bf7c800f231ad4992b791b85a30c', class: "co-number-field__label" }, this.label, h(RequiredMark, { key: 'ff7517b83b8e942512dcb8c1f504eafab55cea90', required: this.required })), this.secondaryLabel && h("span", { key: '736889aae85065fb28a56131e2f7a3da9fc86a48', class: "co-number-field__secondary-label" }, this.secondaryLabel))), h("div", { key: 'fd6163c7cb83073db2c19c3477447076372abb44', class: "co-number-field__row", part: "row" }, !this.hideControls && (h("button", { key: 'e1a52831b83c3255ce63c4ed48a228fe4fdb1629', class: "co-number-field__btn co-number-field__btn--minus", type: "button", tabIndex: -1, disabled: !this.canDecrement, onClick: this.handleDecrement, "aria-label": "Decrease" }, h("co-icon", { key: '86e0ce9b9801e50d9bda6b18a8e1f6f96581b178', name: "minus", size: 16 }))), h("input", { key: '4bdf89e9a4958841a948b3bd6e9886898917f464', ref: el => (this.inputEl = el), class: "co-number-field__input", type: "text", inputMode: "decimal",
|
|
440
448
|
// Mismo guard `focused` que el @Watch: mientras el usuario edita, su
|
|
441
449
|
// texto manda. Sin esto, el re-render que dispara emitValue repinta
|
|
442
450
|
// el input desde el NÚMERO y se come el texto en construcción
|
|
443
451
|
// ("34,640.00" pegado quedaba "34,640"; un "12." perdería el punto).
|
|
444
|
-
value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '
|
|
452
|
+
value: this.focused && this.inputEl ? this.inputEl.value : this.displayValue, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onPaste: this.handlePaste, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, part: "input" }), this.affixText && (h("span", { key: '7bc7c12c6fe2708691d9a2972f9ed3037e82a1a8', class: "co-number-field__affix", "aria-hidden": "true" }, this.affixText)), this.clearable && !this.isEmpty && !this.disabled && (h("button", { key: '2ef7c424a34a8a6cbfe8ac4cd0a5d8f0ed74e6d4', class: "co-number-field__clear", type: "button", tabIndex: -1, onClick: this.handleClear, "aria-label": "Clear" }, h("co-icon", { key: 'c428ca841c0de013cd151bd356686be43992de04', name: "x-circle", size: 16, weight: "fill" }))), h("slot", { key: 'fb127a663d3839bbb10b8232b250eaf67faab898', name: "suffix" }), !this.hideControls && (h("button", { key: '684329d2f32a58f6be2a124f0cd20986a7fc49af', class: "co-number-field__btn co-number-field__btn--plus", type: "button", tabIndex: -1, disabled: !this.canIncrement, onClick: this.handleIncrement, "aria-label": "Increase" }, h("co-icon", { key: '7ef48466e060efb314466d62216a8e00168ddbcd', name: "plus", size: 16 })))), this.helperText && (h("div", { key: '2cf6df2556160fef3c1dfd1b525991eb822cb285', class: `co-number-field__helper co-number-field__helper--${this.status}` }, this.statusIcon && h("co-icon", { key: '905ad795d9714fa9ae8fc2b9d4b9f6a7bba2d2ce', name: this.statusIcon, size: 14, weight: "fill", class: "co-number-field__helper-icon" }), h("span", { key: '0c4825c4145298700de006eb3170e9ec3b52d3b7', class: "co-number-field__helper-text" }, this.helperText)))));
|
|
445
453
|
}
|
|
446
454
|
get el() { return getElement(this); }
|
|
447
455
|
static get watchers() { return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prolibu-suite/cobalt-core",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.4",
|
|
4
4
|
"description": "Cobalt Design System — Framework-agnostic Web Components built with Stencil",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"@phosphor-icons/core": "^2.1.1",
|
|
51
51
|
"dompurify": "^3.2.6",
|
|
52
52
|
"overlayscrollbars": "^2.16.0",
|
|
53
|
-
"@prolibu-suite/cobalt-calendar-utils": "0.1.1",
|
|
54
|
-
"@prolibu-suite/cobalt-tokens": "0.6.0",
|
|
55
53
|
"@prolibu-suite/cobalt-date-utils": "0.1.2",
|
|
56
|
-
"@prolibu-suite/cobalt-
|
|
54
|
+
"@prolibu-suite/cobalt-calendar-utils": "0.1.1",
|
|
55
|
+
"@prolibu-suite/cobalt-rich-text": "0.2.1",
|
|
56
|
+
"@prolibu-suite/cobalt-tokens": "0.6.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@stencil/core": "^4.43.4",
|