@caribeng/ui 22.2.0 → 22.5.0
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 +311 -231
- package/fesm2022/caribeng-ui-accordion.mjs +2 -2
- package/fesm2022/caribeng-ui-account-picker.mjs +533 -0
- package/fesm2022/caribeng-ui-aging.mjs +488 -0
- package/fesm2022/{caribeng-ui-caribe-alert.mjs → caribeng-ui-alert.mjs} +45 -45
- package/fesm2022/caribeng-ui-amount.mjs +249 -0
- package/fesm2022/caribeng-ui-anchor.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-animation-lottie.mjs → caribeng-ui-animation-lottie.mjs} +41 -41
- package/fesm2022/caribeng-ui-audit-log.mjs +323 -0
- package/fesm2022/caribeng-ui-avatar.mjs +4 -4
- package/fesm2022/caribeng-ui-badge.mjs +8 -2
- package/fesm2022/caribeng-ui-breadcrumb.mjs +26 -9
- package/fesm2022/{caribeng-ui-caribe-button-group.mjs → caribeng-ui-button-group.mjs} +15 -15
- package/fesm2022/caribeng-ui-button.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-card-content.mjs → caribeng-ui-card-content.mjs} +39 -39
- package/fesm2022/{caribeng-ui-caribe-card-move.mjs → caribeng-ui-card-move.mjs} +65 -65
- package/fesm2022/{caribeng-ui-caribe-card-primary.mjs → caribeng-ui-card-primary.mjs} +31 -31
- package/fesm2022/{caribeng-ui-caribe-card-select.mjs → caribeng-ui-card-select.mjs} +67 -67
- package/fesm2022/caribeng-ui-carousel.mjs +2 -2
- package/fesm2022/caribeng-ui-cascadeselect.mjs +45 -9
- package/fesm2022/caribeng-ui-chart.mjs +8 -5
- package/fesm2022/caribeng-ui-chat.mjs +1303 -0
- package/fesm2022/{caribeng-ui-caribe-coachmark.mjs → caribeng-ui-coachmark.mjs} +85 -85
- package/fesm2022/caribeng-ui-code-block.mjs +332 -0
- package/fesm2022/caribeng-ui-colorpicker.mjs +99 -5
- package/fesm2022/caribeng-ui-command-palette.mjs +476 -0
- package/fesm2022/caribeng-ui-comments.mjs +864 -0
- package/fesm2022/caribeng-ui-confirmdialog.mjs +78 -13
- package/fesm2022/caribeng-ui-confirmpopup.mjs +91 -16
- package/fesm2022/caribeng-ui-contextmenu.mjs +8 -4
- package/fesm2022/caribeng-ui-copy-button.mjs +230 -0
- package/fesm2022/caribeng-ui-datagrid.mjs +1635 -0
- package/fesm2022/caribeng-ui-dataview.mjs +6 -3
- package/fesm2022/caribeng-ui-datepicker.mjs +2 -2
- package/fesm2022/caribeng-ui-dock.mjs +52 -12
- package/fesm2022/caribeng-ui-document.mjs +495 -0
- package/fesm2022/{caribeng-ui-caribe-dots-indicator.mjs → caribeng-ui-dots-indicator.mjs} +41 -41
- package/fesm2022/caribeng-ui-drawer.mjs +9 -4
- package/fesm2022/caribeng-ui-dynamic-form.mjs +1581 -0
- package/fesm2022/caribeng-ui-editor.mjs +2324 -1311
- package/fesm2022/{caribeng-ui-caribe-expansion-panel.mjs → caribeng-ui-expansion-panel.mjs} +39 -39
- package/fesm2022/{caribeng-ui-caribe-fab-menu.mjs → caribeng-ui-fab-menu.mjs} +75 -75
- package/fesm2022/caribeng-ui-fieldset.mjs +2 -2
- package/fesm2022/caribeng-ui-file-card.mjs +134 -17
- package/fesm2022/{caribeng-ui-caribe-file-download.mjs → caribeng-ui-file-download.mjs} +63 -63
- package/fesm2022/caribeng-ui-financial-report.mjs +380 -0
- package/fesm2022/{caribeng-ui-caribe-float-menu.mjs → caribeng-ui-float-menu.mjs} +31 -31
- package/fesm2022/caribeng-ui-floatlabel.mjs +2 -2
- package/fesm2022/caribeng-ui-flow.mjs +1508 -0
- package/fesm2022/caribeng-ui-folder-card.mjs +122 -12
- package/fesm2022/{caribeng-ui-caribe-footer.mjs → caribeng-ui-footer.mjs} +19 -19
- package/fesm2022/caribeng-ui-gantt.mjs +1094 -0
- package/fesm2022/{caribeng-ui-caribe-header.mjs → caribeng-ui-header.mjs} +49 -49
- package/fesm2022/{caribeng-ui-caribe-icon-button.mjs → caribeng-ui-icon-button.mjs} +23 -23
- package/fesm2022/caribeng-ui-image-cropper.mjs +671 -0
- package/fesm2022/caribeng-ui-import-wizard.mjs +746 -0
- package/fesm2022/caribeng-ui-infinite-scroll.mjs +226 -0
- package/fesm2022/caribeng-ui-inlinemessage.mjs +2 -2
- package/fesm2022/caribeng-ui-input-number.mjs +22 -6
- package/fesm2022/{caribeng-ui-caribe-input-search.mjs → caribeng-ui-input-search.mjs} +65 -65
- package/fesm2022/{caribeng-ui-caribe-input-token.mjs → caribeng-ui-input-token.mjs} +59 -59
- package/fesm2022/caribeng-ui-inputmask.mjs +8 -2
- package/fesm2022/caribeng-ui-inputotp.mjs +2 -2
- package/fesm2022/caribeng-ui-journal-entry.mjs +340 -0
- package/fesm2022/caribeng-ui-kanban.mjs +4612 -0
- package/fesm2022/caribeng-ui-kbd.mjs +122 -0
- package/fesm2022/caribeng-ui-kpi.mjs +189 -0
- package/fesm2022/{caribeng-ui-caribe-link.mjs → caribeng-ui-link.mjs} +37 -37
- package/fesm2022/caribeng-ui-masonry.mjs +93 -0
- package/fesm2022/caribeng-ui-media-player.mjs +821 -0
- package/fesm2022/caribeng-ui-megamenu.mjs +13 -9
- package/fesm2022/caribeng-ui-mentions.mjs +495 -0
- package/fesm2022/caribeng-ui-menu.mjs +8 -4
- package/fesm2022/caribeng-ui-menubar.mjs +9 -5
- package/fesm2022/caribeng-ui-message.mjs +6 -3
- package/fesm2022/caribeng-ui-notification-center.mjs +636 -0
- package/fesm2022/{caribeng-ui-caribe-off-canvas.mjs → caribeng-ui-off-canvas.mjs} +55 -55
- package/fesm2022/{caribeng-ui-caribe-onboarding.mjs → caribeng-ui-onboarding.mjs} +105 -105
- package/fesm2022/caribeng-ui-orderlist.mjs +2 -2
- package/fesm2022/caribeng-ui-organizationchart.mjs +6 -10
- package/fesm2022/caribeng-ui-panel.mjs +6 -6
- package/fesm2022/caribeng-ui-panelmenu.mjs +9 -6
- package/fesm2022/caribeng-ui-pdfviewer.mjs +1755 -25
- package/fesm2022/caribeng-ui-period-picker.mjs +637 -0
- package/fesm2022/caribeng-ui-phone-input.mjs +688 -0
- package/fesm2022/caribeng-ui-picklist.mjs +2 -2
- package/fesm2022/caribeng-ui-pivot.mjs +419 -0
- package/fesm2022/caribeng-ui-pricing.mjs +263 -69
- package/fesm2022/caribeng-ui-qrcode.mjs +564 -0
- package/fesm2022/caribeng-ui-rating.mjs +14 -17
- package/fesm2022/caribeng-ui-reconciliation.mjs +386 -0
- package/fesm2022/caribeng-ui-ripple.mjs +2 -0
- package/fesm2022/caribeng-ui-scheduler.mjs +1027 -0
- package/fesm2022/caribeng-ui-scrolltop.mjs +3 -1
- package/fesm2022/caribeng-ui-select.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-shortcut.mjs → caribeng-ui-shortcut.mjs} +29 -29
- package/fesm2022/caribeng-ui-sidebar.mjs +573 -0
- package/fesm2022/caribeng-ui-signature-pad.mjs +654 -0
- package/fesm2022/{caribeng-ui-caribe-status.mjs → caribeng-ui-status.mjs} +11 -11
- package/fesm2022/{caribeng-ui-caribe-step-indicator.mjs → caribeng-ui-step-indicator.mjs} +53 -53
- package/fesm2022/caribeng-ui-stepper.mjs +12 -5
- package/fesm2022/caribeng-ui-steps.mjs +2 -2
- package/fesm2022/caribeng-ui-table.mjs +333 -19
- package/fesm2022/caribeng-ui-tabmenu.mjs +10 -6
- package/fesm2022/caribeng-ui-tabs.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-tag-button.mjs → caribeng-ui-tag-button.mjs} +25 -25
- package/fesm2022/caribeng-ui-tag.mjs +2 -2
- package/fesm2022/caribeng-ui-tieredmenu.mjs +111 -21
- package/fesm2022/{caribeng-ui-caribe-tracker.mjs → caribeng-ui-tracker.mjs} +29 -29
- package/fesm2022/{caribeng-ui-caribe-transaction-status.mjs → caribeng-ui-transaction-status.mjs} +11 -11
- package/fesm2022/caribeng-ui-treeselect.mjs +44 -9
- package/fesm2022/caribeng-ui-treetable.mjs +236 -17
- package/fesm2022/{caribeng-ui-caribe-voucher.mjs → caribeng-ui-voucher.mjs} +45 -45
- package/fesm2022/caribeng-ui-xlsx.mjs +486 -0
- package/fesm2022/caribeng-ui.mjs +1568 -1
- package/package.json +258 -178
- package/schematics/collection.json +5 -0
- package/schematics/migrate-from-primeng/core-icons.json +1 -0
- package/schematics/migrate-from-primeng/icons.js +269 -0
- package/schematics/migrate-from-primeng/index.js +290 -0
- package/schematics/migrate-from-primeng/mappings/button.js +93 -0
- package/schematics/migrate-from-primeng/mappings/card.js +33 -0
- package/schematics/migrate-from-primeng/mappings/checkbox.js +44 -0
- package/schematics/migrate-from-primeng/mappings/confirm.js +221 -0
- package/schematics/migrate-from-primeng/mappings/datepicker.js +121 -0
- package/schematics/migrate-from-primeng/mappings/dialog.js +84 -0
- package/schematics/migrate-from-primeng/mappings/index.js +88 -0
- package/schematics/migrate-from-primeng/mappings/inputnumber.js +62 -0
- package/schematics/migrate-from-primeng/mappings/inputtext.js +60 -0
- package/schematics/migrate-from-primeng/mappings/menu.js +468 -0
- package/schematics/migrate-from-primeng/mappings/multiselect.js +49 -0
- package/schematics/migrate-from-primeng/mappings/radiobutton.js +22 -0
- package/schematics/migrate-from-primeng/mappings/rules.js +206 -0
- package/schematics/migrate-from-primeng/mappings/select.js +97 -0
- package/schematics/migrate-from-primeng/mappings/service-calls.js +100 -0
- package/schematics/migrate-from-primeng/mappings/table.js +613 -0
- package/schematics/migrate-from-primeng/mappings/tabs.js +225 -0
- package/schematics/migrate-from-primeng/mappings/tag.js +29 -0
- package/schematics/migrate-from-primeng/mappings/textarea.js +44 -0
- package/schematics/migrate-from-primeng/mappings/toast.js +173 -0
- package/schematics/migrate-from-primeng/mappings/toggleswitch.js +37 -0
- package/schematics/migrate-from-primeng/mappings/tooltip.js +44 -0
- package/schematics/migrate-from-primeng/mappings/types.js +10 -0
- package/schematics/migrate-from-primeng/report.js +79 -0
- package/schematics/migrate-from-primeng/schema.js +2 -0
- package/schematics/migrate-from-primeng/schema.json +34 -0
- package/schematics/migrate-from-primeng/template.js +387 -0
- package/schematics/migrate-from-primeng/todo.js +5 -0
- package/schematics/migrate-from-primeng/typescript.js +442 -0
- package/schematics/migrate-from-primeng/workspace.js +117 -0
- package/schematics/ng-add/index.js +16 -1
- package/types/caribeng-ui-account-picker.d.ts +142 -0
- package/types/caribeng-ui-aging.d.ts +123 -0
- package/types/{caribeng-ui-caribe-alert.d.ts → caribeng-ui-alert.d.ts} +2 -2
- package/types/caribeng-ui-amount.d.ts +82 -0
- package/types/{caribeng-ui-caribe-animation-lottie.d.ts → caribeng-ui-animation-lottie.d.ts} +2 -2
- package/types/caribeng-ui-audit-log.d.ts +86 -0
- package/types/caribeng-ui-badge.d.ts +3 -1
- package/types/caribeng-ui-breadcrumb.d.ts +9 -1
- package/types/{caribeng-ui-caribe-button-group.d.ts → caribeng-ui-button-group.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-card-content.d.ts → caribeng-ui-card-content.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-card-move.d.ts → caribeng-ui-card-move.d.ts} +1 -1
- package/types/{caribeng-ui-caribe-card-primary.d.ts → caribeng-ui-card-primary.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-card-select.d.ts → caribeng-ui-card-select.d.ts} +2 -2
- package/types/caribeng-ui-cascadeselect.d.ts +6 -0
- package/types/caribeng-ui-chart.d.ts +3 -1
- package/types/caribeng-ui-chat.d.ts +299 -0
- package/types/{caribeng-ui-caribe-coachmark.d.ts → caribeng-ui-coachmark.d.ts} +2 -2
- package/types/caribeng-ui-code-block.d.ts +65 -0
- package/types/caribeng-ui-colorpicker.d.ts +5 -1
- package/types/caribeng-ui-command-palette.d.ts +133 -0
- package/types/caribeng-ui-comments.d.ts +214 -0
- package/types/caribeng-ui-confirmdialog.d.ts +34 -2
- package/types/caribeng-ui-confirmpopup.d.ts +39 -2
- package/types/caribeng-ui-contextmenu.d.ts +7 -0
- package/types/caribeng-ui-copy-button.d.ts +90 -0
- package/types/caribeng-ui-datagrid.d.ts +269 -0
- package/types/caribeng-ui-dataview.d.ts +2 -0
- package/types/caribeng-ui-dock.d.ts +13 -1
- package/types/caribeng-ui-document.d.ts +138 -0
- package/types/{caribeng-ui-caribe-dots-indicator.d.ts → caribeng-ui-dots-indicator.d.ts} +2 -2
- package/types/caribeng-ui-drawer.d.ts +3 -1
- package/types/caribeng-ui-dynamic-form.d.ts +409 -0
- package/types/caribeng-ui-editor.d.ts +110 -12
- package/types/{caribeng-ui-caribe-expansion-panel.d.ts → caribeng-ui-expansion-panel.d.ts} +1 -1
- package/types/{caribeng-ui-caribe-fab-menu.d.ts → caribeng-ui-fab-menu.d.ts} +2 -2
- package/types/caribeng-ui-file-card.d.ts +27 -2
- package/types/{caribeng-ui-caribe-file-download.d.ts → caribeng-ui-file-download.d.ts} +1 -1
- package/types/caribeng-ui-financial-report.d.ts +102 -0
- package/types/{caribeng-ui-caribe-float-menu.d.ts → caribeng-ui-float-menu.d.ts} +2 -2
- package/types/caribeng-ui-flow.d.ts +228 -0
- package/types/caribeng-ui-folder-card.d.ts +27 -5
- package/types/{caribeng-ui-caribe-footer.d.ts → caribeng-ui-footer.d.ts} +2 -2
- package/types/caribeng-ui-gantt.d.ts +244 -0
- package/types/{caribeng-ui-caribe-header.d.ts → caribeng-ui-header.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-icon-button.d.ts → caribeng-ui-icon-button.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-illustration.d.ts → caribeng-ui-illustration.d.ts} +1 -1
- package/types/caribeng-ui-image-cropper.d.ts +169 -0
- package/types/caribeng-ui-import-wizard.d.ts +149 -0
- package/types/caribeng-ui-infinite-scroll.d.ts +75 -0
- package/types/caribeng-ui-input-number.d.ts +1 -1
- package/types/{caribeng-ui-caribe-input-search.d.ts → caribeng-ui-input-search.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-input-token.d.ts → caribeng-ui-input-token.d.ts} +2 -2
- package/types/caribeng-ui-inputmask.d.ts +3 -1
- package/types/caribeng-ui-journal-entry.d.ts +110 -0
- package/types/caribeng-ui-kanban.d.ts +783 -0
- package/types/caribeng-ui-kbd.d.ts +36 -0
- package/types/caribeng-ui-kpi.d.ts +64 -0
- package/types/{caribeng-ui-caribe-link.d.ts → caribeng-ui-link.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-logo.d.ts → caribeng-ui-logo.d.ts} +1 -1
- package/types/caribeng-ui-masonry.d.ts +32 -0
- package/types/caribeng-ui-media-player.d.ts +140 -0
- package/types/caribeng-ui-megamenu.d.ts +11 -0
- package/types/caribeng-ui-mentions.d.ts +127 -0
- package/types/caribeng-ui-menu.d.ts +7 -0
- package/types/caribeng-ui-menubar.d.ts +7 -0
- package/types/caribeng-ui-message.d.ts +2 -0
- package/types/caribeng-ui-notification-center.d.ts +153 -0
- package/types/{caribeng-ui-caribe-off-canvas.d.ts → caribeng-ui-off-canvas.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-onboarding.d.ts → caribeng-ui-onboarding.d.ts} +2 -2
- package/types/caribeng-ui-panelmenu.d.ts +7 -0
- package/types/caribeng-ui-pdfviewer.d.ts +245 -5
- package/types/caribeng-ui-period-picker.d.ts +148 -0
- package/types/caribeng-ui-phone-input.d.ts +168 -0
- package/types/caribeng-ui-pivot.d.ts +116 -0
- package/types/caribeng-ui-pricing.d.ts +41 -4
- package/types/caribeng-ui-qrcode.d.ts +88 -0
- package/types/caribeng-ui-reconciliation.d.ts +109 -0
- package/types/caribeng-ui-scheduler.d.ts +188 -0
- package/types/{caribeng-ui-caribe-shortcut.d.ts → caribeng-ui-shortcut.d.ts} +2 -2
- package/types/caribeng-ui-sidebar.d.ts +167 -0
- package/types/caribeng-ui-signature-pad.d.ts +151 -0
- package/types/{caribeng-ui-caribe-status.d.ts → caribeng-ui-status.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-step-indicator.d.ts → caribeng-ui-step-indicator.d.ts} +2 -2
- package/types/caribeng-ui-stepper.d.ts +2 -0
- package/types/caribeng-ui-table.d.ts +67 -3
- package/types/caribeng-ui-tabmenu.d.ts +7 -0
- package/types/{caribeng-ui-caribe-tag-button.d.ts → caribeng-ui-tag-button.d.ts} +2 -2
- package/types/caribeng-ui-tieredmenu.d.ts +17 -1
- package/types/{caribeng-ui-caribe-tracker.d.ts → caribeng-ui-tracker.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-transaction-status.d.ts → caribeng-ui-transaction-status.d.ts} +2 -2
- package/types/caribeng-ui-treeselect.d.ts +6 -0
- package/types/caribeng-ui-treetable.d.ts +67 -2
- package/types/{caribeng-ui-caribe-voucher.d.ts → caribeng-ui-voucher.d.ts} +2 -2
- package/types/caribeng-ui-xlsx.d.ts +79 -0
- package/types/caribeng-ui.d.ts +985 -2
- package/fesm2022/caribeng-ui-caribe-calendar.mjs +0 -92
- package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +0 -130
- package/fesm2022/caribeng-ui-caribe-data-table.mjs +0 -94
- package/fesm2022/caribeng-ui-caribe-file-select.mjs +0 -88
- package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +0 -100
- package/fesm2022/caribeng-ui-caribe-input-date.mjs +0 -138
- package/fesm2022/caribeng-ui-caribe-input-select.mjs +0 -154
- package/fesm2022/caribeng-ui-caribe-loader.mjs +0 -48
- package/fesm2022/caribeng-ui-caribe-modal.mjs +0 -119
- package/fesm2022/caribeng-ui-caribe-pictogram.mjs +0 -52
- package/fesm2022/caribeng-ui-caribe-pop-over.mjs +0 -104
- package/fesm2022/caribeng-ui-caribe-preloader.mjs +0 -57
- package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +0 -84
- package/fesm2022/caribeng-ui-caribe-stroke.mjs +0 -69
- package/fesm2022/caribeng-ui-caribe-switch.mjs +0 -182
- package/styles/caribeng.css +0 -380
- package/styles/scss/_mixins.scss +0 -46
- package/styles/scss/_overlay.scss +0 -15
- package/styles/scss/_tokens.scss +0 -267
- package/styles/scss/_utilities.scss +0 -73
- package/styles/scss/_variables.scss +0 -33
- package/styles/scss/index.scss +0 -16
- package/types/caribeng-ui-caribe-calendar.d.ts +0 -27
- package/types/caribeng-ui-caribe-circle-loading.d.ts +0 -28
- package/types/caribeng-ui-caribe-data-table.d.ts +0 -26
- package/types/caribeng-ui-caribe-file-select.d.ts +0 -31
- package/types/caribeng-ui-caribe-inline-alert.d.ts +0 -28
- package/types/caribeng-ui-caribe-input-date.d.ts +0 -40
- package/types/caribeng-ui-caribe-input-select.d.ts +0 -47
- package/types/caribeng-ui-caribe-loader.d.ts +0 -22
- package/types/caribeng-ui-caribe-modal.d.ts +0 -21
- package/types/caribeng-ui-caribe-pictogram.d.ts +0 -15
- package/types/caribeng-ui-caribe-pop-over.d.ts +0 -17
- package/types/caribeng-ui-caribe-preloader.d.ts +0 -24
- package/types/caribeng-ui-caribe-progress-bar.d.ts +0 -28
- package/types/caribeng-ui-caribe-stroke.d.ts +0 -17
- package/types/caribeng-ui-caribe-switch.d.ts +0 -55
- /package/fesm2022/{caribeng-ui-caribe-illustration.mjs → caribeng-ui-illustration.mjs} +0 -0
- /package/fesm2022/{caribeng-ui-caribe-logo.mjs → caribeng-ui-logo.mjs} +0 -0
package/fesm2022/caribeng-ui.mjs
CHANGED
|
@@ -223,6 +223,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
223
223
|
args: [{ providedIn: 'root' }]
|
|
224
224
|
}], ctorParameters: () => [] });
|
|
225
225
|
|
|
226
|
+
let nextId = 0;
|
|
227
|
+
/**
|
|
228
|
+
* Pide confirmaciones desde código, sin declarar un diálogo por cada una. Las
|
|
229
|
+
* muestra el `<cb-confirm-dialog service />` o `<cb-confirm-popup service />` de la vista
|
|
230
|
+
* (el input `service` los conecta), igual que `ConfirmationService` de PrimeNG.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```ts
|
|
234
|
+
* private readonly confirmation = inject(CbConfirmationService);
|
|
235
|
+
*
|
|
236
|
+
* borrar(item: Item, event: Event): void {
|
|
237
|
+
* this.confirmation.confirm({
|
|
238
|
+
* message: `¿Eliminar ${item.nombre}?`,
|
|
239
|
+
* acceptSeverity: 'danger',
|
|
240
|
+
* target: event.currentTarget, // solo para cb-confirm-popup
|
|
241
|
+
* accept: () => this.api.eliminar(item.id),
|
|
242
|
+
* });
|
|
243
|
+
* }
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
class CbConfirmationService {
|
|
247
|
+
constructor() {
|
|
248
|
+
this._request = signal(null, /* @ts-ignore */
|
|
249
|
+
...(ngDevMode ? [{ debugName: "_request" }] : /* istanbul ignore next */ []));
|
|
250
|
+
/** Confirmación en curso, o `null`. La leen `cb-confirm-dialog` y `cb-confirm-popup`. */
|
|
251
|
+
this.request = this._request.asReadonly();
|
|
252
|
+
}
|
|
253
|
+
/** Muestra una confirmación. Si había otra abierta, la sustituye (sin llamar a su `reject`). */
|
|
254
|
+
confirm(confirmation) {
|
|
255
|
+
this._request.set({ id: ++nextId, confirmation });
|
|
256
|
+
}
|
|
257
|
+
/** Cierra la confirmación en curso sin llamar a `accept` ni a `reject`. */
|
|
258
|
+
close() {
|
|
259
|
+
this._request.set(null);
|
|
260
|
+
}
|
|
261
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbConfirmationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
262
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbConfirmationService, providedIn: 'root' }); }
|
|
263
|
+
}
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbConfirmationService, decorators: [{
|
|
265
|
+
type: Injectable,
|
|
266
|
+
args: [{ providedIn: 'root' }]
|
|
267
|
+
}] });
|
|
268
|
+
|
|
226
269
|
/**
|
|
227
270
|
* Registra CaribeNG en una aplicación Angular (standalone o basada en módulos).
|
|
228
271
|
*
|
|
@@ -248,8 +291,55 @@ function provideCaribeNG(config = {}) {
|
|
|
248
291
|
]);
|
|
249
292
|
}
|
|
250
293
|
|
|
294
|
+
/**
|
|
295
|
+
* Ejecuta el `command` del item (si tiene). Los menús lo llaman al elegir un
|
|
296
|
+
* item, además de emitir su evento de selección.
|
|
297
|
+
*/
|
|
298
|
+
function cbRunCommand(item, originalEvent) {
|
|
299
|
+
item.command?.({ item: item, originalEvent });
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Quita los items con `visible: false`, también dentro de `items` (submenús)
|
|
303
|
+
* y de `groups[].items` (MegaMenu). Devuelve los mismos objetos si no cambia
|
|
304
|
+
* nada, para que la selección emita el objeto original.
|
|
305
|
+
*/
|
|
306
|
+
function cbVisibleItems(items) {
|
|
307
|
+
const result = [];
|
|
308
|
+
for (const item of items) {
|
|
309
|
+
if (item.visible === false)
|
|
310
|
+
continue;
|
|
311
|
+
let copy = null;
|
|
312
|
+
const nested = item.items;
|
|
313
|
+
if (Array.isArray(nested)) {
|
|
314
|
+
const filtered = cbVisibleItems(nested);
|
|
315
|
+
if (filtered.length !== nested.length || filtered.some((child, i) => child !== nested[i]))
|
|
316
|
+
copy = { ...item, items: filtered };
|
|
317
|
+
}
|
|
318
|
+
const groups = item.groups;
|
|
319
|
+
if (Array.isArray(groups)) {
|
|
320
|
+
let groupsChanged = false;
|
|
321
|
+
const filteredGroups = groups
|
|
322
|
+
.filter((group) => group.visible !== false || !(groupsChanged = true))
|
|
323
|
+
.map((group) => {
|
|
324
|
+
if (!Array.isArray(group.items))
|
|
325
|
+
return group;
|
|
326
|
+
const links = cbVisibleItems(group.items);
|
|
327
|
+
if (links.length === group.items.length && links.every((link, i) => link === group.items[i]))
|
|
328
|
+
return group;
|
|
329
|
+
groupsChanged = true;
|
|
330
|
+
return { ...group, items: links };
|
|
331
|
+
});
|
|
332
|
+
if (groupsChanged)
|
|
333
|
+
copy = { ...(copy ?? item), groups: filteredGroups };
|
|
334
|
+
}
|
|
335
|
+
result.push(copy ?? item);
|
|
336
|
+
}
|
|
337
|
+
return result;
|
|
338
|
+
}
|
|
339
|
+
|
|
251
340
|
/** Español (idioma por defecto). */
|
|
252
341
|
const CB_LOCALE_ES = {
|
|
342
|
+
intlLocale: 'es',
|
|
253
343
|
close: 'Cerrar',
|
|
254
344
|
clear: 'Limpiar',
|
|
255
345
|
remove: 'Quitar',
|
|
@@ -264,6 +354,143 @@ const CB_LOCALE_ES = {
|
|
|
264
354
|
selectAll: 'Todos',
|
|
265
355
|
options: 'Opciones',
|
|
266
356
|
moreActions: 'Más acciones',
|
|
357
|
+
copy: 'Copiar',
|
|
358
|
+
copied: 'Copiado',
|
|
359
|
+
copyFailed: 'No se pudo copiar',
|
|
360
|
+
qrCode: 'Código QR',
|
|
361
|
+
commandPalette: 'Paleta de comandos',
|
|
362
|
+
commandPlaceholder: 'Busca una página o acción…',
|
|
363
|
+
commandResults: '{0} resultados',
|
|
364
|
+
commandNavigate: 'navegar',
|
|
365
|
+
commandSelect: 'elegir',
|
|
366
|
+
expandSidebar: 'Expandir menú lateral',
|
|
367
|
+
collapseSidebar: 'Contraer menú lateral',
|
|
368
|
+
openMenu: 'Abrir menú',
|
|
369
|
+
chatConversation: 'Conversación',
|
|
370
|
+
chatYou: 'Tú',
|
|
371
|
+
chatAssistant: 'Asistente',
|
|
372
|
+
chatPlaceholder: 'Escribe un mensaje…',
|
|
373
|
+
chatMessage: 'Mensaje',
|
|
374
|
+
chatSend: 'Enviar',
|
|
375
|
+
chatStop: 'Detener',
|
|
376
|
+
chatAttach: 'Adjuntar archivos',
|
|
377
|
+
chatSending: 'Enviando…',
|
|
378
|
+
chatError: 'No se pudo enviar',
|
|
379
|
+
chatRetry: 'Reintentar',
|
|
380
|
+
chatTyping: 'Escribiendo…',
|
|
381
|
+
chatGenerating: 'Generando respuesta…',
|
|
382
|
+
chatResponseReady: 'Respuesta lista',
|
|
383
|
+
chatJumpToLatest: 'Ir al último mensaje',
|
|
384
|
+
phoneCountry: 'País',
|
|
385
|
+
searchCountry: 'Buscar país',
|
|
386
|
+
phoneInvalid: 'Número de teléfono incompleto o no válido',
|
|
387
|
+
chatThinking: 'Pensando…',
|
|
388
|
+
chatThoughtFor: 'Razonó durante {0} s',
|
|
389
|
+
chatReasoning: 'Razonamiento',
|
|
390
|
+
chatToolRunning: 'Usando {0}…',
|
|
391
|
+
chatToolDone: 'Usó {0}',
|
|
392
|
+
chatToolError: 'Falló {0}',
|
|
393
|
+
chatToolInput: 'Entrada',
|
|
394
|
+
chatToolOutput: 'Resultado',
|
|
395
|
+
chatHelpful: 'Respuesta útil',
|
|
396
|
+
chatNotHelpful: 'Respuesta no útil',
|
|
397
|
+
chatRegenerate: 'Regenerar respuesta',
|
|
398
|
+
chatAttachments: 'Adjuntos',
|
|
399
|
+
kanbanCard: 'tarjeta',
|
|
400
|
+
kanbanInstructions: 'Para mover la tarjeta, pulsa Espacio, usa las flechas y vuelve a pulsar Espacio para soltarla. Escape cancela.',
|
|
401
|
+
kanbanGrabbed: '{0} tomada. Columna {1}, posición {2} de {3}.',
|
|
402
|
+
kanbanMoved: '{0}: columna {1}, posición {2} de {3}.',
|
|
403
|
+
kanbanDropped: '{0} soltada en {1}, posición {2}.',
|
|
404
|
+
kanbanCancelled: 'Movimiento cancelado. {0} vuelve a {1}.',
|
|
405
|
+
kanbanFull: '{0} está llena.',
|
|
406
|
+
kanbanCount: '{0} de {1}',
|
|
407
|
+
kanbanAdd: 'Añadir tarjeta',
|
|
408
|
+
kanbanEdit: 'Editar',
|
|
409
|
+
kanbanDelete: 'Eliminar',
|
|
410
|
+
kanbanMoveTo: 'Mover a {0}',
|
|
411
|
+
kanbanCardActions: 'Acciones de {0}',
|
|
412
|
+
kanbanCardTitle: 'Título de la tarjeta',
|
|
413
|
+
kanbanConfirmDelete: '¿Eliminar «{0}»?',
|
|
414
|
+
kanbanDeleted: '{0} eliminada.',
|
|
415
|
+
kanbanAdded: '{0} añadida a {1}.',
|
|
416
|
+
kanbanRenamed: '«{0}» ahora es «{1}».',
|
|
417
|
+
kanbanAddColumn: 'Añadir columna',
|
|
418
|
+
kanbanColumnName: 'Nombre de la columna',
|
|
419
|
+
kanbanNewColumn: 'Nueva columna',
|
|
420
|
+
kanbanColumnActions: 'Acciones de la columna {0}',
|
|
421
|
+
kanbanRename: 'Renombrar',
|
|
422
|
+
kanbanCollapse: 'Contraer {0}',
|
|
423
|
+
kanbanExpand: 'Expandir {0}',
|
|
424
|
+
kanbanConfirmDeleteColumn: '¿Eliminar la columna «{0}» y sus {1} tarjetas?',
|
|
425
|
+
kanbanDetails: 'Detalles de la tarea',
|
|
426
|
+
kanbanOpenDetails: 'Abrir detalles',
|
|
427
|
+
kanbanStatus: 'Columna',
|
|
428
|
+
kanbanAssignees: 'Responsables',
|
|
429
|
+
kanbanNoAssignees: 'Sin responsable',
|
|
430
|
+
kanbanUnassign: 'Quitar a {0}',
|
|
431
|
+
kanbanAssignedTo: 'Responsables: {0}',
|
|
432
|
+
kanbanPriority: 'Prioridad',
|
|
433
|
+
kanbanNoPriority: 'Sin prioridad',
|
|
434
|
+
kanbanPriorityLow: 'Baja',
|
|
435
|
+
kanbanPriorityMedium: 'Media',
|
|
436
|
+
kanbanPriorityHigh: 'Alta',
|
|
437
|
+
kanbanStartDate: 'Fecha de inicio',
|
|
438
|
+
kanbanEndDate: 'Fecha de fin',
|
|
439
|
+
kanbanDates: 'Fechas',
|
|
440
|
+
kanbanOverdue: 'vencida',
|
|
441
|
+
kanbanDescription: 'Descripción',
|
|
442
|
+
kanbanDescriptionPlaceholder: '¿De qué trata esta tarea?',
|
|
443
|
+
kanbanAttachments: 'Adjuntos',
|
|
444
|
+
kanbanAttach: 'Adjuntar archivos',
|
|
445
|
+
kanbanDropFiles: 'o arrástralos aquí',
|
|
446
|
+
kanbanRemoveAttachment: 'Quitar {0}',
|
|
447
|
+
kanbanAttachmentCount: '{0} adjuntos',
|
|
448
|
+
kanbanUpdated: '{0} actualizada.',
|
|
449
|
+
kanbanTaskName: 'Nombre',
|
|
450
|
+
kanbanAddTask: 'Añadir tarea',
|
|
451
|
+
kanbanAddSection: 'Añadir sección',
|
|
452
|
+
kanbanCompleted: 'Finalizada',
|
|
453
|
+
kanbanMarkComplete: 'Marcar «{0}» como finalizada',
|
|
454
|
+
kanbanMarkIncomplete: 'Marcar «{0}» como pendiente',
|
|
455
|
+
kanbanSectionCount: '{0}, {1} tareas',
|
|
456
|
+
kanbanListInstructions: 'Con Alt + flecha arriba o abajo, la tarea se mueve en la lista.',
|
|
457
|
+
kanbanNoDate: 'Sin fecha ({0})',
|
|
458
|
+
kanbanAddTaskOn: 'Añadir tarea el {0}',
|
|
459
|
+
kanbanWeekOf: 'Semana del {0} al {1}',
|
|
460
|
+
kanbanCalendarInstructions: 'Arrastra la tarea a otro día, o usa Alt + flechas: izquierda y derecha cambian el día; arriba y abajo, la semana.',
|
|
461
|
+
kanbanRescheduled: '{0}: {1}.',
|
|
462
|
+
kanbanPreviousWeek: 'Semana anterior',
|
|
463
|
+
kanbanNextWeek: 'Semana siguiente',
|
|
464
|
+
kanbanDays: 'Días',
|
|
465
|
+
kanbanZoomIn: 'Acercar',
|
|
466
|
+
kanbanZoomOut: 'Alejar',
|
|
467
|
+
kanbanAddTaskIn: 'Añadir tarea en {0}',
|
|
468
|
+
kanbanTimelineInstructions: 'Arrastra la tarea para cambiar sus fechas, o sus bordes para cambiar la duración. Con el teclado: Alt + izquierda o derecha la mueve un día, Alt + Mayús + izquierda o derecha cambia la fecha de fin, y Alt + arriba o abajo la pasa a otra sección.',
|
|
469
|
+
kanbanDashboard: 'Panel del proyecto',
|
|
470
|
+
kanbanTotalCompleted: 'Tareas finalizadas',
|
|
471
|
+
kanbanTotalIncomplete: 'Tareas sin finalizar',
|
|
472
|
+
kanbanTotalOverdue: 'Tareas con retraso',
|
|
473
|
+
kanbanTotalTasks: 'Tareas en total',
|
|
474
|
+
kanbanOfTotal: '{0} del total',
|
|
475
|
+
kanbanIncompleteBySection: 'Tareas sin finalizar por sección',
|
|
476
|
+
kanbanByCompletion: 'Tareas por estado de finalización',
|
|
477
|
+
kanbanIncompleteByAssignee: 'Tareas sin finalizar por responsable',
|
|
478
|
+
kanbanByWeek: 'Entregas por semana',
|
|
479
|
+
kanbanCompletedPlural: 'Finalizadas',
|
|
480
|
+
kanbanPendingPlural: 'A tiempo',
|
|
481
|
+
kanbanOverduePlural: 'Con retraso',
|
|
482
|
+
kanbanIncompletePlural: 'Sin finalizar',
|
|
483
|
+
kanbanViews: 'Vistas',
|
|
484
|
+
kanbanViewBoard: 'Tablero',
|
|
485
|
+
kanbanViewList: 'Lista',
|
|
486
|
+
kanbanViewTimeline: 'Cronograma',
|
|
487
|
+
kanbanViewDashboard: 'Panel',
|
|
488
|
+
kanbanViewCalendar: 'Calendario',
|
|
489
|
+
kanbanHideView: 'Ocultar {0}',
|
|
490
|
+
kanbanSideBySide: 'Lado a lado',
|
|
491
|
+
kanbanViewsHint: 'Activa varias vistas para verlas a la vez.',
|
|
492
|
+
save: 'Guardar',
|
|
493
|
+
mentionsCount: '{0} sugerencias',
|
|
267
494
|
add: 'Agregar',
|
|
268
495
|
onThisPage: 'En esta página',
|
|
269
496
|
trendUp: 'aumenta',
|
|
@@ -284,6 +511,7 @@ const CB_LOCALE_ES = {
|
|
|
284
511
|
start: 'Comenzar',
|
|
285
512
|
continue: 'Continuar',
|
|
286
513
|
stepOf: 'Paso {0} de {1}',
|
|
514
|
+
stepCompleted: 'completado',
|
|
287
515
|
expand: 'Expandir',
|
|
288
516
|
collapse: 'Contraer',
|
|
289
517
|
expandItem: 'Expandir {0}',
|
|
@@ -342,6 +570,9 @@ const CB_LOCALE_ES = {
|
|
|
342
570
|
color: 'Color',
|
|
343
571
|
colorPicker: 'Selector de color',
|
|
344
572
|
hexColor: 'Color hexadecimal',
|
|
573
|
+
colorArea: 'Saturación y brillo',
|
|
574
|
+
colorAreaValue: 'Saturación {0} %, brillo {1} %',
|
|
575
|
+
hue: 'Tono',
|
|
345
576
|
switch: 'Interruptor',
|
|
346
577
|
ratingOf: '{0} de {1}',
|
|
347
578
|
openCalendar: 'Abrir calendario',
|
|
@@ -461,6 +692,328 @@ const CB_LOCALE_ES = {
|
|
|
461
692
|
incorrectPassword: 'Contraseña incorrecta. Inténtalo de nuevo.',
|
|
462
693
|
password: 'Contraseña',
|
|
463
694
|
open: 'Abrir',
|
|
695
|
+
pdfOutline: 'Índice',
|
|
696
|
+
pdfSidebarView: 'Vista del panel',
|
|
697
|
+
pdfExpandItem: 'Expandir {0}',
|
|
698
|
+
pdfCollapseItem: 'Contraer {0}',
|
|
699
|
+
pdfDownloadFilled: 'Descargar con los datos del formulario',
|
|
700
|
+
pdfAnnotate: 'Anotar',
|
|
701
|
+
pdfHighlight: 'Resaltar',
|
|
702
|
+
pdfNote: 'Nota',
|
|
703
|
+
pdfDraw: 'Dibujar',
|
|
704
|
+
pdfSign: 'Firmar',
|
|
705
|
+
pdfColor: 'Color',
|
|
706
|
+
pdfColorYellow: 'Amarillo',
|
|
707
|
+
pdfColorGreen: 'Verde',
|
|
708
|
+
pdfColorBlue: 'Azul',
|
|
709
|
+
pdfColorRed: 'Rojo',
|
|
710
|
+
pdfAnnotations: 'Anotaciones',
|
|
711
|
+
pdfNoAnnotations: 'Aún no hay anotaciones.',
|
|
712
|
+
pdfHighlightOf: 'Resaltado: {0}',
|
|
713
|
+
pdfNoteOf: 'Nota: {0}',
|
|
714
|
+
pdfHighlightNoun: 'Resaltado',
|
|
715
|
+
pdfInkOf: 'Dibujo',
|
|
716
|
+
pdfSignatureOf: 'Firma',
|
|
717
|
+
pdfEmptyNote: 'Nota vacía',
|
|
718
|
+
pdfComment: 'Comentario',
|
|
719
|
+
pdfNoteText: 'Texto de la nota',
|
|
720
|
+
pdfDone: 'Listo',
|
|
721
|
+
pdfDeleteAnnotation: 'Eliminar anotación',
|
|
722
|
+
pdfAnnotationAdded: 'Añadido en la página {1}: {0}',
|
|
723
|
+
pdfAnnotationRemoved: 'Anotación eliminada',
|
|
724
|
+
pdfAnnotationMoved: 'Movido a {0} %, {1} %',
|
|
725
|
+
pdfSignatureResized: 'Ancho: {0} % de la página',
|
|
726
|
+
pdfNoteResized: 'Letra de {0} pt',
|
|
727
|
+
pdfAnnotationHint: 'Flechas para mover (Mayús, más rápido), + y − para cambiar el tamaño, Intro para editar y Supr para eliminar.',
|
|
728
|
+
pdfHighlightHint: 'Selecciona texto del documento para resaltarlo.',
|
|
729
|
+
pdfNoteHint: 'Haz clic en la página para poner la nota.',
|
|
730
|
+
pdfDrawHint: 'Dibuja sobre la página con el ratón, el dedo o el lápiz.',
|
|
731
|
+
pdfSignTitle: 'Añade tu firma',
|
|
732
|
+
pdfInsertSignature: 'Insertar firma',
|
|
733
|
+
pdfCancel: 'Cancelar',
|
|
734
|
+
pdfDownloadAnnotated: 'Descargar con las anotaciones',
|
|
735
|
+
editorCodeTools: 'Herramientas del bloque de código',
|
|
736
|
+
editorCodeLanguage: 'Lenguaje del código',
|
|
737
|
+
editorPlainText: 'Texto sin colores',
|
|
738
|
+
editorCopyCode: 'Copiar código',
|
|
739
|
+
editorCodeCopied: 'Copiado',
|
|
740
|
+
editorImageCaption: 'Pie de imagen',
|
|
741
|
+
editorTableCells: 'Celdas',
|
|
742
|
+
editorMergeRight: 'Combinar con la celda de la derecha',
|
|
743
|
+
editorMergeDown: 'Combinar con la celda de abajo',
|
|
744
|
+
editorSplitCell: 'Separar',
|
|
745
|
+
editorCollapsible: 'Desplegable',
|
|
746
|
+
editorCollapsibleTitle: 'Título del desplegable',
|
|
747
|
+
editorToc: 'Índice',
|
|
748
|
+
editorTocTitle: 'Contenido',
|
|
749
|
+
editorMentions: 'Personas que puedes mencionar',
|
|
750
|
+
editorDraftFound: 'Hay un borrador sin guardar del {0}.',
|
|
751
|
+
editorRestoreDraft: 'Restaurar',
|
|
752
|
+
editorDiscardDraft: 'Descartar',
|
|
753
|
+
editorDraftSaved: 'Borrador guardado a las {0}',
|
|
754
|
+
ganttChart: 'Diagrama de Gantt',
|
|
755
|
+
ganttScale: 'Escala de tiempo',
|
|
756
|
+
ganttDay: 'Día',
|
|
757
|
+
ganttWeek: 'Semana',
|
|
758
|
+
ganttMonth: 'Mes',
|
|
759
|
+
ganttWeekShort: 'S{0}',
|
|
760
|
+
ganttTask: 'Tarea',
|
|
761
|
+
ganttStart: 'Inicio',
|
|
762
|
+
ganttEnd: 'Fin',
|
|
763
|
+
ganttDuration: 'Duración',
|
|
764
|
+
ganttProgress: 'Avance',
|
|
765
|
+
ganttAssignee: 'Responsable',
|
|
766
|
+
ganttDays: '{0} d',
|
|
767
|
+
ganttExpand: 'Expandir {0}',
|
|
768
|
+
ganttCollapse: 'Contraer {0}',
|
|
769
|
+
ganttBarLabel: '{0}: {1}, {2} % completado',
|
|
770
|
+
ganttGroupLabel: 'Grupo {0}: {1}, {2} % completado',
|
|
771
|
+
ganttMilestoneLabel: 'Hito {0}: {1}',
|
|
772
|
+
ganttDependsOn: 'Depende de {0}',
|
|
773
|
+
ganttRemoveLink: 'Quitar la dependencia {0} → {1}',
|
|
774
|
+
ganttLinkAdded: 'Dependencia creada: {0} → {1}.',
|
|
775
|
+
ganttLinkRemoved: 'Dependencia quitada.',
|
|
776
|
+
ganttMoved: '{0}: {1}.',
|
|
777
|
+
ganttProgressChanged: '{0}: {1} % completado.',
|
|
778
|
+
ganttInstructions: 'Flechas: mover un día. Mayús + flechas: cambiar el fin. Alt + flechas: cambiar el inicio. + y −: avance. Supr: quitar sus dependencias. Enter: abrir la tarea.',
|
|
779
|
+
schedulerPrevious: 'Anterior',
|
|
780
|
+
schedulerNext: 'Siguiente',
|
|
781
|
+
schedulerViews: 'Vista del calendario',
|
|
782
|
+
schedulerMonth: 'Mes',
|
|
783
|
+
schedulerWeek: 'Semana',
|
|
784
|
+
schedulerDay: 'Día',
|
|
785
|
+
schedulerAgenda: 'Agenda',
|
|
786
|
+
schedulerAllDay: 'Todo el día',
|
|
787
|
+
schedulerMore: '+{0} más',
|
|
788
|
+
schedulerMoreLabel: 'Ver {0} eventos más del {1}',
|
|
789
|
+
schedulerOpenDay: 'Ver el {0}',
|
|
790
|
+
schedulerNewEvent: 'Nuevo evento el {0}',
|
|
791
|
+
schedulerNoEvents: 'No hay eventos en estos días.',
|
|
792
|
+
schedulerMoved: 'Evento movido: {0}.',
|
|
793
|
+
schedulerInstructions: 'Flechas izquierda y derecha: mover un día. Flechas arriba y abajo: mover una franja (en el mes, una semana). Mayús + flechas arriba y abajo: cambiar la duración. Enter: abrir el evento.',
|
|
794
|
+
dataGridToolbar: 'Acciones de la tabla',
|
|
795
|
+
dataGridAddRow: 'Añadir fila',
|
|
796
|
+
dataGridDeleteRow: 'Eliminar fila',
|
|
797
|
+
dataGridDeleteRows: 'Eliminar {0} filas',
|
|
798
|
+
dataGridOneError: '1 error',
|
|
799
|
+
dataGridErrors: '{0} errores',
|
|
800
|
+
dataGridChanged: '{0} celdas cambiadas',
|
|
801
|
+
dataGridRequired: 'Obligatorio.',
|
|
802
|
+
dataGridMin: 'El mínimo es {0}.',
|
|
803
|
+
dataGridMax: 'El máximo es {0}.',
|
|
804
|
+
dataGridInvalidNumber: 'No es un número.',
|
|
805
|
+
dataGridInvalidDate: 'No es una fecha válida.',
|
|
806
|
+
dataGridInvalidOption: 'No es una de las opciones.',
|
|
807
|
+
dataGridCopied: '{0} celdas copiadas.',
|
|
808
|
+
dataGridPasted: '{0} celdas pegadas.',
|
|
809
|
+
dataGridCleared: '{0} celdas borradas.',
|
|
810
|
+
dataGridUndone: 'Cambio deshecho.',
|
|
811
|
+
dataGridRedone: 'Cambio rehecho.',
|
|
812
|
+
dataGridRowAdded: 'Fila añadida.',
|
|
813
|
+
dataGridRowsDeleted: 'Filas eliminadas: {0}.',
|
|
814
|
+
dataGridInstructions: 'Flechas: moverse. Mayús + flechas: seleccionar. Enter o F2: editar; escribe para reemplazar; Escape cancela. Supr: borrar. Ctrl + C, X y V: copiar, cortar y pegar. Ctrl + Z e Y: deshacer y rehacer. Ctrl + D: rellenar hacia abajo.',
|
|
815
|
+
dataGridReadonlyInstructions: 'Flechas: moverse. Mayús + flechas: seleccionar. Ctrl + C: copiar.',
|
|
816
|
+
dynamicFormSubmit: 'Enviar',
|
|
817
|
+
dynamicFormRequired: 'Este campo es obligatorio.',
|
|
818
|
+
dynamicFormMin: 'El valor mínimo es {0}.',
|
|
819
|
+
dynamicFormMax: 'El valor máximo es {0}.',
|
|
820
|
+
dynamicFormMinLength: 'Escribe al menos {0} caracteres.',
|
|
821
|
+
dynamicFormMaxLength: 'Escribe como máximo {0} caracteres.',
|
|
822
|
+
dynamicFormEmail: 'Escribe un correo válido.',
|
|
823
|
+
dynamicFormPattern: 'El formato no es válido.',
|
|
824
|
+
dynamicFormInvalid: 'El valor no es válido.',
|
|
825
|
+
dynamicFormSummaryOne: 'Revisa 1 campo:',
|
|
826
|
+
dynamicFormSummary: 'Revisa {0} campos:',
|
|
827
|
+
dynamicFormNext: 'Siguiente',
|
|
828
|
+
dynamicFormBack: 'Atrás',
|
|
829
|
+
dynamicFormStep: 'Paso {0} de {1}:',
|
|
830
|
+
dynamicFormAdd: 'Añadir {0}',
|
|
831
|
+
dynamicFormRemove: 'Quitar {0}',
|
|
832
|
+
dynamicFormItem: 'Elemento {0}',
|
|
833
|
+
dynamicFormAdded: '{0} añadido.',
|
|
834
|
+
dynamicFormRemoved: '{0} quitado.',
|
|
835
|
+
tableTotal: 'Total',
|
|
836
|
+
tableSubtotal: 'Subtotal {0}',
|
|
837
|
+
tableScrollRegion: 'Tabla con desplazamiento',
|
|
838
|
+
accountPickerPlaceholder: 'Buscar cuenta por código o nombre',
|
|
839
|
+
accountPickerResults: '{0} cuentas',
|
|
840
|
+
journalHeader: 'Datos del comprobante',
|
|
841
|
+
journalDate: 'Fecha',
|
|
842
|
+
journalType: 'Tipo',
|
|
843
|
+
journalNumber: 'Número',
|
|
844
|
+
journalDescription: 'Descripción',
|
|
845
|
+
journalLines: 'Líneas del comprobante',
|
|
846
|
+
journalAccount: 'Cuenta',
|
|
847
|
+
journalThirdParty: 'Tercero',
|
|
848
|
+
journalCostCenter: 'Centro de costo',
|
|
849
|
+
journalLineDescription: 'Detalle',
|
|
850
|
+
journalDebit: 'Débito',
|
|
851
|
+
journalCredit: 'Crédito',
|
|
852
|
+
journalDifference: 'Diferencia',
|
|
853
|
+
journalBalanced: 'Cuadrado',
|
|
854
|
+
journalUnbalanced: 'Descuadrado',
|
|
855
|
+
journalBalance: 'Cuadrar',
|
|
856
|
+
journalSave: 'Guardar comprobante',
|
|
857
|
+
journalAccountRequired: 'Elige la cuenta.',
|
|
858
|
+
journalAmountRequired: 'Escribe un débito o un crédito.',
|
|
859
|
+
journalThirdPartyRequired: 'Esta cuenta exige tercero.',
|
|
860
|
+
journalCannotSave: 'No se puede guardar:',
|
|
861
|
+
journalErrDate: 'Falta la fecha.',
|
|
862
|
+
journalErrLines: 'Necesita al menos dos líneas con valor.',
|
|
863
|
+
journalErrUnbalanced: 'Los débitos y los créditos no cuadran (diferencia {0}).',
|
|
864
|
+
journalErrCells: 'Hay {0} celdas con errores en las líneas.',
|
|
865
|
+
periodPickerPlaceholder: 'Elegir periodo',
|
|
866
|
+
periodPresets: 'Atajos',
|
|
867
|
+
periodKind: 'Tipo de periodo',
|
|
868
|
+
periodMonth: 'Mes',
|
|
869
|
+
periodQuarterTab: 'Trimestre',
|
|
870
|
+
periodYear: 'Año',
|
|
871
|
+
periodPrevYear: 'Año anterior',
|
|
872
|
+
periodNextYear: 'Año siguiente',
|
|
873
|
+
periodPrevYears: 'Años anteriores',
|
|
874
|
+
periodNextYears: 'Años siguientes',
|
|
875
|
+
periodQuarter: 'T{0} {1}',
|
|
876
|
+
periodQuarterShort: 'T{0}',
|
|
877
|
+
periodFiscalQuarter: 'T{0} AF {1}',
|
|
878
|
+
periodFiscalYear: 'Año fiscal {0}',
|
|
879
|
+
periodClosed: 'cerrado',
|
|
880
|
+
periodThisMonth: 'Este mes',
|
|
881
|
+
periodLastMonth: 'Mes anterior',
|
|
882
|
+
periodThisQuarter: 'Este trimestre',
|
|
883
|
+
periodLastQuarter: 'Trimestre anterior',
|
|
884
|
+
periodYearToDate: 'Año a la fecha',
|
|
885
|
+
periodThisYear: 'Este año',
|
|
886
|
+
periodLastYear: 'Año anterior',
|
|
887
|
+
reportTitle: 'Informe financiero',
|
|
888
|
+
reportToolbar: 'Opciones del informe',
|
|
889
|
+
reportLevel: 'Nivel de detalle',
|
|
890
|
+
reportLevelN: 'Abrir hasta el nivel {0}',
|
|
891
|
+
reportHideZero: 'Ocultar cuentas en cero',
|
|
892
|
+
reportExcel: 'Excel',
|
|
893
|
+
reportPrint: 'Imprimir',
|
|
894
|
+
reportVariation: 'Variación',
|
|
895
|
+
agingTitle: 'Antigüedad de cartera',
|
|
896
|
+
agingAsOf: 'Con corte al {0}',
|
|
897
|
+
agingParty: 'Tercero',
|
|
898
|
+
agingCurrent: 'Por vencer',
|
|
899
|
+
agingRange: '{0}–{1} días',
|
|
900
|
+
agingOver: 'Más de {0} días',
|
|
901
|
+
agingMaxDays: 'Más antiguo',
|
|
902
|
+
agingDays: '{0} días',
|
|
903
|
+
agingDueIn: 'Vence en {0} días',
|
|
904
|
+
agingDocs: '({0} doc.)',
|
|
905
|
+
agingDocsOf: 'Documentos de {0}',
|
|
906
|
+
agingNumber: 'Documento',
|
|
907
|
+
agingDate: 'Fecha',
|
|
908
|
+
agingDue: 'Vence',
|
|
909
|
+
agingOverdue: 'Días vencidos',
|
|
910
|
+
agingBalance: 'Saldo',
|
|
911
|
+
agingSummary: 'Resumen',
|
|
912
|
+
agingDetail: 'Detalle',
|
|
913
|
+
importStepFile: 'Archivo',
|
|
914
|
+
importStepMap: 'Columnas',
|
|
915
|
+
importStepReview: 'Revisión',
|
|
916
|
+
importDrop: 'Arrastra aquí un archivo de Excel (.xlsx) o CSV',
|
|
917
|
+
importChoose: 'Elegir archivo',
|
|
918
|
+
importPaste: 'O pega los datos desde una hoja de cálculo',
|
|
919
|
+
importPasteHint: 'Copia las celdas en Excel o Google Sheets y pégalas aquí',
|
|
920
|
+
importSheet: 'Hoja',
|
|
921
|
+
importHeader: 'La primera fila tiene los encabezados',
|
|
922
|
+
importRowsRead: '{0} filas y {1} columnas leídas.',
|
|
923
|
+
importSample: 'Primeras filas del archivo',
|
|
924
|
+
importMapHint: 'Elige qué columna del archivo corresponde a cada campo. Las que tienen el mismo nombre ya están asignadas.',
|
|
925
|
+
importField: 'Campo',
|
|
926
|
+
importColumn: 'Columna del archivo',
|
|
927
|
+
importExample: 'Ejemplo',
|
|
928
|
+
importUnmapped: '— Sin asignar —',
|
|
929
|
+
importColumnN: 'Columna {0}',
|
|
930
|
+
importMissing: 'Falta asignar: {0}.',
|
|
931
|
+
importValid: '{0} filas válidas',
|
|
932
|
+
importInvalid: '{0} filas con errores',
|
|
933
|
+
importOnlyValid: 'Importar solo las filas válidas',
|
|
934
|
+
importPreview: 'Vista previa de la importación',
|
|
935
|
+
importBack: 'Atrás',
|
|
936
|
+
importNext: 'Siguiente',
|
|
937
|
+
importDo: 'Importar {0} filas',
|
|
938
|
+
importErrFile: 'No se pudo leer el archivo. Usa un .xlsx, .csv o .txt.',
|
|
939
|
+
importErrRequired: 'Obligatorio.',
|
|
940
|
+
importErrNumber: 'No es un número.',
|
|
941
|
+
importErrDate: 'No es una fecha válida.',
|
|
942
|
+
importErrBoolean: 'Debe ser Sí o No.',
|
|
943
|
+
reconStatement: 'Extracto bancario',
|
|
944
|
+
reconLedger: 'Libros',
|
|
945
|
+
reconStatementPending: 'Pendiente en el extracto',
|
|
946
|
+
reconLedgerPending: 'Pendiente en libros',
|
|
947
|
+
reconProgress: 'Conciliado',
|
|
948
|
+
reconItems: '{0} movimientos',
|
|
949
|
+
reconToolbar: 'Acciones de conciliación',
|
|
950
|
+
reconAuto: 'Conciliar automáticamente',
|
|
951
|
+
reconMatch: 'Emparejar',
|
|
952
|
+
reconUnmatch: 'Deshacer emparejamiento',
|
|
953
|
+
reconSelection: 'Extracto {0} · Libros {1}',
|
|
954
|
+
reconDiff: 'diferencia {0}',
|
|
955
|
+
reconOnlyPending: 'Solo pendientes',
|
|
956
|
+
reconMatched: 'conciliado',
|
|
957
|
+
reconCreate: 'Crear asiento',
|
|
958
|
+
reconCreateFor: 'Crear asiento para {0}',
|
|
959
|
+
reconNothingPending: 'No hay movimientos pendientes.',
|
|
960
|
+
reconAutoDone: '{0} emparejamientos automáticos.',
|
|
961
|
+
reconMatchedDone: 'Movimientos emparejados.',
|
|
962
|
+
reconUnmatchedDone: '{0} emparejamientos deshechos.',
|
|
963
|
+
pivotTitle: 'Tabla dinámica',
|
|
964
|
+
pivotConfig: 'Configuración de la tabla dinámica',
|
|
965
|
+
pivotRows: 'Filas',
|
|
966
|
+
pivotColumns: 'Columnas',
|
|
967
|
+
pivotAggregate: 'Cálculo',
|
|
968
|
+
pivotNone: '— Ninguna —',
|
|
969
|
+
pivotEmpty: '(vacío)',
|
|
970
|
+
pivotSum: 'Suma',
|
|
971
|
+
pivotCount: 'Cuenta',
|
|
972
|
+
pivotAvg: 'Promedio',
|
|
973
|
+
pivotMin: 'Mínimo',
|
|
974
|
+
pivotMax: 'Máximo',
|
|
975
|
+
kpiPrevious: 'Periodo anterior',
|
|
976
|
+
kpiUp: 'sube {0}',
|
|
977
|
+
kpiDown: 'baja {0}',
|
|
978
|
+
kpiSame: 'sin cambio',
|
|
979
|
+
kpiTrend: 'Tendencia de {2} periodos: de {0} a {1}',
|
|
980
|
+
kpiGoal: 'Avance hacia la meta',
|
|
981
|
+
kpiOfGoal: '{0} % de la meta ({1})',
|
|
982
|
+
auditTitle: 'Auditoría',
|
|
983
|
+
auditSearch: 'Buscar en el historial',
|
|
984
|
+
auditUser: 'Usuario',
|
|
985
|
+
auditAction: 'Acción',
|
|
986
|
+
auditEntity: 'Registro',
|
|
987
|
+
auditAllUsers: 'Todos los usuarios',
|
|
988
|
+
auditAllActions: 'Todas las acciones',
|
|
989
|
+
auditCount: '{0} registros',
|
|
990
|
+
auditCreated: 'creó',
|
|
991
|
+
auditUpdated: 'modificó',
|
|
992
|
+
auditDeleted: 'eliminó',
|
|
993
|
+
auditChanges: '{0} cambios',
|
|
994
|
+
auditChangesOne: '1 cambio',
|
|
995
|
+
auditChangesOf: 'Cambios en {0}',
|
|
996
|
+
auditField: 'Campo',
|
|
997
|
+
auditBefore: 'Antes',
|
|
998
|
+
auditAfter: 'Después',
|
|
999
|
+
auditEmpty: '(vacío)',
|
|
1000
|
+
auditNone: 'No hay registros con estos filtros.',
|
|
1001
|
+
auditTime: 'Hora',
|
|
1002
|
+
auditNote: 'Nota',
|
|
1003
|
+
documentTaxId: 'NIT',
|
|
1004
|
+
documentDate: 'Fecha',
|
|
1005
|
+
documentParty: 'Cliente',
|
|
1006
|
+
documentCode: 'Código',
|
|
1007
|
+
documentDescription: 'Descripción',
|
|
1008
|
+
documentQuantity: 'Cant.',
|
|
1009
|
+
documentUnitPrice: 'Valor unitario',
|
|
1010
|
+
documentDiscount: 'Descuento',
|
|
1011
|
+
documentTax: 'Impuesto',
|
|
1012
|
+
documentAmount: 'Valor',
|
|
1013
|
+
documentSubtotal: 'Subtotal',
|
|
1014
|
+
documentTotal: 'Total a pagar',
|
|
1015
|
+
documentInWords: 'Son',
|
|
1016
|
+
documentNotes: 'Observaciones',
|
|
464
1017
|
scrollableArea: 'Área desplazable',
|
|
465
1018
|
scrollTop: 'Volver arriba',
|
|
466
1019
|
resizePanels: 'Redimensionar paneles',
|
|
@@ -478,6 +1031,13 @@ const CB_LOCALE_ES = {
|
|
|
478
1031
|
chooseItem: 'Elegir {0}',
|
|
479
1032
|
perMonth: '/mes',
|
|
480
1033
|
perYear: '/año',
|
|
1034
|
+
billingCycle: 'Ciclo de facturación',
|
|
1035
|
+
notIncluded: 'no incluido',
|
|
1036
|
+
payAnnually: 'Paga anualmente',
|
|
1037
|
+
payMonthly: 'Paga mensualmente',
|
|
1038
|
+
billedAnnually: 'Facturado {0} anualmente',
|
|
1039
|
+
youSave: 'Ahorras {0}',
|
|
1040
|
+
recommended: 'Recomendado',
|
|
481
1041
|
textFormatting: 'Formato de texto',
|
|
482
1042
|
paragraphStyle: 'Estilo de párrafo',
|
|
483
1043
|
normal: 'Normal',
|
|
@@ -611,9 +1171,181 @@ const CB_LOCALE_ES = {
|
|
|
611
1171
|
quickFormat: 'Formato rápido',
|
|
612
1172
|
insertBlock: 'Insertar bloque',
|
|
613
1173
|
paragraph: 'Párrafo',
|
|
1174
|
+
// --- Comments ---
|
|
1175
|
+
commentsFeed: 'Comentarios y actividad',
|
|
1176
|
+
commentsShow: 'Mostrar',
|
|
1177
|
+
commentsAll: 'Todo',
|
|
1178
|
+
commentsOnly: 'Comentarios',
|
|
1179
|
+
commentsActivity: 'Actividad',
|
|
1180
|
+
commentsEmpty: 'Todavía no hay comentarios.',
|
|
1181
|
+
commentsWrite: 'Escribe un comentario… (@ para mencionar)',
|
|
1182
|
+
commentsWriteReply: 'Escribe una respuesta…',
|
|
1183
|
+
commentsNew: 'Nuevo comentario',
|
|
1184
|
+
commentsEditing: 'Editar comentario',
|
|
1185
|
+
commentsReplyTo: 'Responder a {0}',
|
|
1186
|
+
commentsRepliesTo: 'Respuestas a {0}',
|
|
1187
|
+
commentsSend: 'Comentar',
|
|
1188
|
+
commentsReply: 'Responder',
|
|
1189
|
+
commentsEdit: 'Editar',
|
|
1190
|
+
commentsDelete: 'Eliminar',
|
|
1191
|
+
commentsDeleteConfirm: '¿Eliminar este comentario?',
|
|
1192
|
+
commentsEdited: 'editado',
|
|
1193
|
+
commentsDeleted: 'Comentario eliminado',
|
|
1194
|
+
commentsAddReaction: 'Añadir reacción',
|
|
1195
|
+
commentsReactions: 'Reacciones',
|
|
1196
|
+
commentsReactionLabel: '{0}, {1}: {2}',
|
|
1197
|
+
commentsYou: 'tú',
|
|
1198
|
+
commentsJustNow: 'ahora mismo',
|
|
1199
|
+
commentsPosted: 'Comentario publicado',
|
|
1200
|
+
commentsSaved: 'Comentario guardado',
|
|
1201
|
+
commentsShortcut: 'Ctrl + Enter para enviar',
|
|
1202
|
+
// --- Notification center ---
|
|
1203
|
+
notificationsTitle: 'Notificaciones',
|
|
1204
|
+
notificationsBellUnread: 'Notificaciones, {0} sin leer',
|
|
1205
|
+
notificationsMarkAllRead: 'Marcar todas como leídas',
|
|
1206
|
+
notificationsShow: 'Mostrar',
|
|
1207
|
+
notificationsAll: 'Todas',
|
|
1208
|
+
notificationsUnread: 'No leídas',
|
|
1209
|
+
notificationsUnreadItem: 'No leída',
|
|
1210
|
+
notificationsMarkRead: 'Marcar como leída: {0}',
|
|
1211
|
+
notificationsMarkUnread: 'Marcar como no leída: {0}',
|
|
1212
|
+
notificationsMarkReadShort: 'Marcar como leída',
|
|
1213
|
+
notificationsMarkUnreadShort: 'Marcar como no leída',
|
|
1214
|
+
notificationsEmpty: 'No tienes notificaciones.',
|
|
1215
|
+
notificationsAllRead: 'Estás al día: no hay avisos sin leer.',
|
|
1216
|
+
notificationsViewAll: 'Ver todas',
|
|
1217
|
+
notificationsToday: 'Hoy',
|
|
1218
|
+
notificationsYesterday: 'Ayer',
|
|
1219
|
+
notificationsEarlier: 'Anteriores',
|
|
1220
|
+
notificationsJustNow: 'ahora mismo',
|
|
1221
|
+
notificationsNew: 'Nueva notificación: {0}',
|
|
1222
|
+
notificationsNewMany: '{0} notificaciones nuevas',
|
|
1223
|
+
notificationsMarkedRead: 'Marcada como leída',
|
|
1224
|
+
notificationsMarkedUnread: 'Marcada como no leída',
|
|
1225
|
+
notificationsMarkedAllRead: 'Todas marcadas como leídas',
|
|
1226
|
+
notificationsRemoved: 'Notificación eliminada',
|
|
1227
|
+
// --- Signature pad ---
|
|
1228
|
+
signaturePad: 'Área de firma',
|
|
1229
|
+
signatureEmptyState: 'vacía',
|
|
1230
|
+
signatureSignedState: 'firmada',
|
|
1231
|
+
signaturePlaceholder: 'Firma aquí',
|
|
1232
|
+
signatureModes: 'Forma de firmar',
|
|
1233
|
+
signatureDraw: 'Dibujar',
|
|
1234
|
+
signatureType: 'Escribir',
|
|
1235
|
+
signatureTypeLabel: 'Escribe tu nombre',
|
|
1236
|
+
signatureHint: 'Dibuja tu firma con el ratón, el dedo o un lápiz, o elige «Escribir» para teclear tu nombre.',
|
|
1237
|
+
signatureHintDraw: 'Dibuja tu firma con el ratón, el dedo o un lápiz.',
|
|
1238
|
+
signatureUndo: 'Deshacer trazo',
|
|
1239
|
+
signatureClear: 'Borrar firma',
|
|
1240
|
+
signatureCleared: 'Firma borrada',
|
|
1241
|
+
signatureUndone: 'Trazo deshecho',
|
|
1242
|
+
// --- Image cropper ---
|
|
1243
|
+
cropperValue: '{0} × {1} de la imagen ({2} × {3} píxeles)',
|
|
1244
|
+
cropperRatio: 'Proporción',
|
|
1245
|
+
cropperRotateLeft: 'Girar a la izquierda',
|
|
1246
|
+
cropperRotateRight: 'Girar a la derecha',
|
|
1247
|
+
cropperRotatedLeft: 'Imagen girada a la izquierda',
|
|
1248
|
+
cropperRotatedRight: 'Imagen girada a la derecha',
|
|
1249
|
+
cropperChoose: 'Elegir imagen',
|
|
1250
|
+
cropperChange: 'Cambiar imagen',
|
|
1251
|
+
cropperEmpty: 'Arrastra una imagen aquí o elígela desde tu equipo.',
|
|
1252
|
+
cropperPreview: 'Vista previa del recorte',
|
|
1253
|
+
cropperDone: 'Imagen recortada',
|
|
1254
|
+
cropperInvalidFile: 'El archivo no es una imagen.',
|
|
1255
|
+
cropperLoadError: 'No se pudo cargar la imagen.',
|
|
1256
|
+
// --- Infinite scroll ---
|
|
1257
|
+
infiniteLoading: 'Cargando más resultados…',
|
|
1258
|
+
infiniteLoadMore: 'Cargar más',
|
|
1259
|
+
infiniteLoaded: '{0} resultados más, {1} en total',
|
|
1260
|
+
infiniteEnd: 'No hay más resultados',
|
|
1261
|
+
infiniteError: 'No se pudieron cargar más resultados.',
|
|
1262
|
+
infiniteRetry: 'Reintentar',
|
|
1263
|
+
// --- Media player ---
|
|
1264
|
+
mediaVideo: 'Reproductor de vídeo',
|
|
1265
|
+
mediaAudio: 'Reproductor de audio',
|
|
1266
|
+
mediaControls: 'Controles',
|
|
1267
|
+
mediaPlay: 'Reproducir',
|
|
1268
|
+
mediaPause: 'Pausar',
|
|
1269
|
+
mediaBack: 'Retroceder {0} segundos',
|
|
1270
|
+
mediaForward: 'Avanzar {0} segundos',
|
|
1271
|
+
mediaSeek: 'Progreso',
|
|
1272
|
+
mediaTimeOf: '{0} de {1}',
|
|
1273
|
+
mediaHours: 'h',
|
|
1274
|
+
mediaMinutes: 'min',
|
|
1275
|
+
mediaSeconds: 's',
|
|
1276
|
+
mediaMute: 'Silenciar',
|
|
1277
|
+
mediaVolume: 'Volumen',
|
|
1278
|
+
mediaVolumeSet: 'Volumen {0} %',
|
|
1279
|
+
mediaSpeed: 'Velocidad',
|
|
1280
|
+
mediaSpeedSet: 'Velocidad {0}',
|
|
1281
|
+
mediaCaptions: 'Subtítulos',
|
|
1282
|
+
mediaCaptionsLanguage: 'Idioma de los subtítulos',
|
|
1283
|
+
mediaCaptionsNone: 'Sin subtítulos',
|
|
1284
|
+
mediaCaptionsOn: 'Subtítulos: {0}',
|
|
1285
|
+
mediaCaptionsOff: 'Subtítulos desactivados',
|
|
1286
|
+
mediaPip: 'Imagen en imagen',
|
|
1287
|
+
mediaFullscreen: 'Pantalla completa',
|
|
1288
|
+
mediaExitFullscreen: 'Salir de pantalla completa',
|
|
1289
|
+
mediaTranscript: 'Transcripción',
|
|
1290
|
+
mediaError: 'No se pudo cargar el contenido.',
|
|
1291
|
+
mediaShortcuts: 'Atajos: Espacio o K reproduce y pausa; flechas izquierda y derecha, 5 segundos; J y L, 10 segundos; flechas arriba y abajo, volumen; M silencia; F pantalla completa; C subtítulos; 0 a 9 saltan a ese punto.',
|
|
1292
|
+
// --- Flow editor ---
|
|
1293
|
+
flowEditor: 'Editor de flujo',
|
|
1294
|
+
flowDiagram: 'Diagrama',
|
|
1295
|
+
flowList: 'Lista',
|
|
1296
|
+
flowView: 'Vista',
|
|
1297
|
+
flowAdd: 'Añadir',
|
|
1298
|
+
flowStart: 'Inicio',
|
|
1299
|
+
flowTask: 'Tarea',
|
|
1300
|
+
flowDecision: 'Decisión',
|
|
1301
|
+
flowEnd: 'Fin',
|
|
1302
|
+
flowNodeOf: '{0}: {1}',
|
|
1303
|
+
flowExits: 'Salidas: {0}',
|
|
1304
|
+
flowNoExits: 'Sin salidas',
|
|
1305
|
+
flowExitsOf: 'Salidas de {0}',
|
|
1306
|
+
flowEdgeOf: 'Conexión de {0} a {1}',
|
|
1307
|
+
flowConnect: 'Conectar',
|
|
1308
|
+
flowConnectFrom: 'Conectar desde {0}: ve al nodo de destino y pulsa Intro. Escape cancela.',
|
|
1309
|
+
flowConnected: 'Conectado: {0} → {1}',
|
|
1310
|
+
flowCannotConnect: 'No se puede conectar {0} con {1}.',
|
|
1311
|
+
flowConnectCancelled: 'Conexión cancelada',
|
|
1312
|
+
flowDelete: 'Eliminar',
|
|
1313
|
+
flowDeleteNode: 'Eliminar {0}',
|
|
1314
|
+
flowAdded: 'Añadido: {0}',
|
|
1315
|
+
flowRemoved: 'Eliminado: {0}',
|
|
1316
|
+
flowNameOf: 'Nombre ({0})',
|
|
1317
|
+
flowEdgeLabel: 'Etiqueta',
|
|
1318
|
+
flowEdgeLabelOf: 'Etiqueta de {0} a {1}',
|
|
1319
|
+
flowConnectTo: 'Conectar {0} con',
|
|
1320
|
+
flowChooseTarget: 'Elige el destino',
|
|
1321
|
+
flowAddConnection: 'Añadir conexión',
|
|
1322
|
+
flowRemoveConnection: 'Quitar la conexión a {0}',
|
|
1323
|
+
flowLayout: 'Ordenar',
|
|
1324
|
+
flowLaidOut: 'Diagrama ordenado',
|
|
1325
|
+
flowZoomIn: 'Acercar',
|
|
1326
|
+
flowZoomOut: 'Alejar',
|
|
1327
|
+
flowFit: 'Ajustar a la vista',
|
|
1328
|
+
flowZoom: 'Zoom',
|
|
1329
|
+
flowEmpty: 'El flujo está vacío. Añade un inicio para empezar.',
|
|
1330
|
+
flowIssues: 'Problemas ({0})',
|
|
1331
|
+
flowNoIssues: 'El flujo es válido.',
|
|
1332
|
+
flowIssueOf: 'Problema: {0}',
|
|
1333
|
+
flowIssueNoStart: 'Falta un nodo de inicio.',
|
|
1334
|
+
flowIssueManyStarts: 'Hay más de un inicio: {0}.',
|
|
1335
|
+
flowIssueNoEnd: 'Falta un nodo de fin.',
|
|
1336
|
+
flowIssueStartIncoming: '{0} es un inicio y le llegan conexiones.',
|
|
1337
|
+
flowIssueEndOutgoing: '{0} es un fin y tiene salidas.',
|
|
1338
|
+
flowIssueDeadEnd: '{0} no tiene salida.',
|
|
1339
|
+
flowIssueBranches: 'La decisión {0} necesita al menos dos salidas.',
|
|
1340
|
+
flowIssueBranchLabel: 'Alguna salida de la decisión {0} no tiene etiqueta.',
|
|
1341
|
+
flowIssueUnreachable: '{0} no se alcanza desde el inicio.',
|
|
1342
|
+
flowNodeHint: 'Flechas para mover (Mayús, más), Intro para renombrar, C para conectar con otro nodo y Supr para eliminar.',
|
|
1343
|
+
flowReadonlyHint: 'Intro para abrir.',
|
|
1344
|
+
flowEdgeHint: 'Intro para editar la etiqueta y Supr para eliminar.',
|
|
614
1345
|
};
|
|
615
1346
|
/** Inglés. */
|
|
616
1347
|
const CB_LOCALE_EN = {
|
|
1348
|
+
intlLocale: 'en',
|
|
617
1349
|
close: 'Close',
|
|
618
1350
|
clear: 'Clear',
|
|
619
1351
|
remove: 'Remove',
|
|
@@ -628,6 +1360,143 @@ const CB_LOCALE_EN = {
|
|
|
628
1360
|
selectAll: 'All',
|
|
629
1361
|
options: 'Options',
|
|
630
1362
|
moreActions: 'More actions',
|
|
1363
|
+
copy: 'Copy',
|
|
1364
|
+
copied: 'Copied',
|
|
1365
|
+
copyFailed: 'Could not copy',
|
|
1366
|
+
qrCode: 'QR code',
|
|
1367
|
+
commandPalette: 'Command palette',
|
|
1368
|
+
commandPlaceholder: 'Search for a page or action…',
|
|
1369
|
+
commandResults: '{0} results',
|
|
1370
|
+
commandNavigate: 'navigate',
|
|
1371
|
+
commandSelect: 'select',
|
|
1372
|
+
expandSidebar: 'Expand sidebar',
|
|
1373
|
+
collapseSidebar: 'Collapse sidebar',
|
|
1374
|
+
openMenu: 'Open menu',
|
|
1375
|
+
chatConversation: 'Conversation',
|
|
1376
|
+
chatYou: 'You',
|
|
1377
|
+
chatAssistant: 'Assistant',
|
|
1378
|
+
chatPlaceholder: 'Write a message…',
|
|
1379
|
+
chatMessage: 'Message',
|
|
1380
|
+
chatSend: 'Send',
|
|
1381
|
+
chatStop: 'Stop',
|
|
1382
|
+
chatAttach: 'Attach files',
|
|
1383
|
+
chatSending: 'Sending…',
|
|
1384
|
+
chatError: 'Could not send',
|
|
1385
|
+
chatRetry: 'Retry',
|
|
1386
|
+
chatTyping: 'Typing…',
|
|
1387
|
+
chatGenerating: 'Generating response…',
|
|
1388
|
+
chatResponseReady: 'Response ready',
|
|
1389
|
+
chatJumpToLatest: 'Jump to latest message',
|
|
1390
|
+
phoneCountry: 'Country',
|
|
1391
|
+
searchCountry: 'Search country',
|
|
1392
|
+
phoneInvalid: 'Incomplete or invalid phone number',
|
|
1393
|
+
chatThinking: 'Thinking…',
|
|
1394
|
+
chatThoughtFor: 'Thought for {0} s',
|
|
1395
|
+
chatReasoning: 'Reasoning',
|
|
1396
|
+
chatToolRunning: 'Using {0}…',
|
|
1397
|
+
chatToolDone: 'Used {0}',
|
|
1398
|
+
chatToolError: '{0} failed',
|
|
1399
|
+
chatToolInput: 'Input',
|
|
1400
|
+
chatToolOutput: 'Result',
|
|
1401
|
+
chatHelpful: 'Helpful response',
|
|
1402
|
+
chatNotHelpful: 'Not helpful response',
|
|
1403
|
+
chatRegenerate: 'Regenerate response',
|
|
1404
|
+
chatAttachments: 'Attachments',
|
|
1405
|
+
kanbanCard: 'card',
|
|
1406
|
+
kanbanInstructions: 'To move the card, press Space, use the arrow keys and press Space again to drop it. Escape cancels.',
|
|
1407
|
+
kanbanGrabbed: '{0} picked up. Column {1}, position {2} of {3}.',
|
|
1408
|
+
kanbanMoved: '{0}: column {1}, position {2} of {3}.',
|
|
1409
|
+
kanbanDropped: '{0} dropped in {1}, position {2}.',
|
|
1410
|
+
kanbanCancelled: 'Move cancelled. {0} returns to {1}.',
|
|
1411
|
+
kanbanFull: '{0} is full.',
|
|
1412
|
+
kanbanCount: '{0} of {1}',
|
|
1413
|
+
kanbanAdd: 'Add card',
|
|
1414
|
+
kanbanEdit: 'Edit',
|
|
1415
|
+
kanbanDelete: 'Delete',
|
|
1416
|
+
kanbanMoveTo: 'Move to {0}',
|
|
1417
|
+
kanbanCardActions: 'Actions for {0}',
|
|
1418
|
+
kanbanCardTitle: 'Card title',
|
|
1419
|
+
kanbanConfirmDelete: 'Delete “{0}”?',
|
|
1420
|
+
kanbanDeleted: '{0} deleted.',
|
|
1421
|
+
kanbanAdded: '{0} added to {1}.',
|
|
1422
|
+
kanbanRenamed: '“{0}” is now “{1}”.',
|
|
1423
|
+
kanbanAddColumn: 'Add column',
|
|
1424
|
+
kanbanColumnName: 'Column name',
|
|
1425
|
+
kanbanNewColumn: 'New column',
|
|
1426
|
+
kanbanColumnActions: 'Actions for column {0}',
|
|
1427
|
+
kanbanRename: 'Rename',
|
|
1428
|
+
kanbanCollapse: 'Collapse {0}',
|
|
1429
|
+
kanbanExpand: 'Expand {0}',
|
|
1430
|
+
kanbanConfirmDeleteColumn: 'Delete column “{0}” and its {1} cards?',
|
|
1431
|
+
kanbanDetails: 'Task details',
|
|
1432
|
+
kanbanOpenDetails: 'Open details',
|
|
1433
|
+
kanbanStatus: 'Column',
|
|
1434
|
+
kanbanAssignees: 'Assignees',
|
|
1435
|
+
kanbanNoAssignees: 'Unassigned',
|
|
1436
|
+
kanbanUnassign: 'Remove {0}',
|
|
1437
|
+
kanbanAssignedTo: 'Assignees: {0}',
|
|
1438
|
+
kanbanPriority: 'Priority',
|
|
1439
|
+
kanbanNoPriority: 'No priority',
|
|
1440
|
+
kanbanPriorityLow: 'Low',
|
|
1441
|
+
kanbanPriorityMedium: 'Medium',
|
|
1442
|
+
kanbanPriorityHigh: 'High',
|
|
1443
|
+
kanbanStartDate: 'Start date',
|
|
1444
|
+
kanbanEndDate: 'Due date',
|
|
1445
|
+
kanbanDates: 'Dates',
|
|
1446
|
+
kanbanOverdue: 'overdue',
|
|
1447
|
+
kanbanDescription: 'Description',
|
|
1448
|
+
kanbanDescriptionPlaceholder: 'What is this task about?',
|
|
1449
|
+
kanbanAttachments: 'Attachments',
|
|
1450
|
+
kanbanAttach: 'Attach files',
|
|
1451
|
+
kanbanDropFiles: 'or drop them here',
|
|
1452
|
+
kanbanRemoveAttachment: 'Remove {0}',
|
|
1453
|
+
kanbanAttachmentCount: '{0} attachments',
|
|
1454
|
+
kanbanUpdated: '{0} updated.',
|
|
1455
|
+
kanbanTaskName: 'Name',
|
|
1456
|
+
kanbanAddTask: 'Add task',
|
|
1457
|
+
kanbanAddSection: 'Add section',
|
|
1458
|
+
kanbanCompleted: 'Completed',
|
|
1459
|
+
kanbanMarkComplete: 'Mark “{0}” complete',
|
|
1460
|
+
kanbanMarkIncomplete: 'Mark “{0}” incomplete',
|
|
1461
|
+
kanbanSectionCount: '{0}, {1} tasks',
|
|
1462
|
+
kanbanListInstructions: 'Press Alt + Up or Down arrow to move the task in the list.',
|
|
1463
|
+
kanbanNoDate: 'No date ({0})',
|
|
1464
|
+
kanbanAddTaskOn: 'Add task on {0}',
|
|
1465
|
+
kanbanWeekOf: 'Week of {0} to {1}',
|
|
1466
|
+
kanbanCalendarInstructions: 'Drag the task to another day, or use Alt + arrows: left and right change the day; up and down, the week.',
|
|
1467
|
+
kanbanRescheduled: '{0}: {1}.',
|
|
1468
|
+
kanbanPreviousWeek: 'Previous week',
|
|
1469
|
+
kanbanNextWeek: 'Next week',
|
|
1470
|
+
kanbanDays: 'Days',
|
|
1471
|
+
kanbanZoomIn: 'Zoom in',
|
|
1472
|
+
kanbanZoomOut: 'Zoom out',
|
|
1473
|
+
kanbanAddTaskIn: 'Add task to {0}',
|
|
1474
|
+
kanbanTimelineInstructions: 'Drag the task to change its dates, or its edges to change how long it lasts. With the keyboard: Alt + left or right moves it one day, Alt + Shift + left or right changes the end date, and Alt + up or down moves it to another section.',
|
|
1475
|
+
kanbanDashboard: 'Project dashboard',
|
|
1476
|
+
kanbanTotalCompleted: 'Completed tasks',
|
|
1477
|
+
kanbanTotalIncomplete: 'Incomplete tasks',
|
|
1478
|
+
kanbanTotalOverdue: 'Overdue tasks',
|
|
1479
|
+
kanbanTotalTasks: 'Total tasks',
|
|
1480
|
+
kanbanOfTotal: '{0} of total',
|
|
1481
|
+
kanbanIncompleteBySection: 'Incomplete tasks by section',
|
|
1482
|
+
kanbanByCompletion: 'Tasks by completion status',
|
|
1483
|
+
kanbanIncompleteByAssignee: 'Incomplete tasks by assignee',
|
|
1484
|
+
kanbanByWeek: 'Due dates by week',
|
|
1485
|
+
kanbanCompletedPlural: 'Completed',
|
|
1486
|
+
kanbanPendingPlural: 'On time',
|
|
1487
|
+
kanbanOverduePlural: 'Overdue',
|
|
1488
|
+
kanbanIncompletePlural: 'Incomplete',
|
|
1489
|
+
kanbanViews: 'Views',
|
|
1490
|
+
kanbanViewBoard: 'Board',
|
|
1491
|
+
kanbanViewList: 'List',
|
|
1492
|
+
kanbanViewTimeline: 'Timeline',
|
|
1493
|
+
kanbanViewDashboard: 'Dashboard',
|
|
1494
|
+
kanbanViewCalendar: 'Calendar',
|
|
1495
|
+
kanbanHideView: 'Hide {0}',
|
|
1496
|
+
kanbanSideBySide: 'Side by side',
|
|
1497
|
+
kanbanViewsHint: 'Turn on several views to see them at once.',
|
|
1498
|
+
save: 'Save',
|
|
1499
|
+
mentionsCount: '{0} suggestions',
|
|
631
1500
|
add: 'Add',
|
|
632
1501
|
onThisPage: 'On this page',
|
|
633
1502
|
trendUp: 'up',
|
|
@@ -648,6 +1517,7 @@ const CB_LOCALE_EN = {
|
|
|
648
1517
|
start: 'Get started',
|
|
649
1518
|
continue: 'Continue',
|
|
650
1519
|
stepOf: 'Step {0} of {1}',
|
|
1520
|
+
stepCompleted: 'completed',
|
|
651
1521
|
expand: 'Expand',
|
|
652
1522
|
collapse: 'Collapse',
|
|
653
1523
|
expandItem: 'Expand {0}',
|
|
@@ -706,6 +1576,9 @@ const CB_LOCALE_EN = {
|
|
|
706
1576
|
color: 'Color',
|
|
707
1577
|
colorPicker: 'Color picker',
|
|
708
1578
|
hexColor: 'Hex color',
|
|
1579
|
+
colorArea: 'Saturation and brightness',
|
|
1580
|
+
colorAreaValue: 'Saturation {0}%, brightness {1}%',
|
|
1581
|
+
hue: 'Hue',
|
|
709
1582
|
switch: 'Switch',
|
|
710
1583
|
ratingOf: '{0} of {1}',
|
|
711
1584
|
openCalendar: 'Open calendar',
|
|
@@ -825,6 +1698,328 @@ const CB_LOCALE_EN = {
|
|
|
825
1698
|
incorrectPassword: 'Incorrect password. Try again.',
|
|
826
1699
|
password: 'Password',
|
|
827
1700
|
open: 'Open',
|
|
1701
|
+
pdfOutline: 'Outline',
|
|
1702
|
+
pdfSidebarView: 'Panel view',
|
|
1703
|
+
pdfExpandItem: 'Expand {0}',
|
|
1704
|
+
pdfCollapseItem: 'Collapse {0}',
|
|
1705
|
+
pdfDownloadFilled: 'Download with the form data',
|
|
1706
|
+
pdfAnnotate: 'Annotate',
|
|
1707
|
+
pdfHighlight: 'Highlight',
|
|
1708
|
+
pdfNote: 'Note',
|
|
1709
|
+
pdfDraw: 'Draw',
|
|
1710
|
+
pdfSign: 'Sign',
|
|
1711
|
+
pdfColor: 'Color',
|
|
1712
|
+
pdfColorYellow: 'Yellow',
|
|
1713
|
+
pdfColorGreen: 'Green',
|
|
1714
|
+
pdfColorBlue: 'Blue',
|
|
1715
|
+
pdfColorRed: 'Red',
|
|
1716
|
+
pdfAnnotations: 'Annotations',
|
|
1717
|
+
pdfNoAnnotations: 'No annotations yet.',
|
|
1718
|
+
pdfHighlightOf: 'Highlight: {0}',
|
|
1719
|
+
pdfNoteOf: 'Note: {0}',
|
|
1720
|
+
pdfHighlightNoun: 'Highlight',
|
|
1721
|
+
pdfInkOf: 'Drawing',
|
|
1722
|
+
pdfSignatureOf: 'Signature',
|
|
1723
|
+
pdfEmptyNote: 'Empty note',
|
|
1724
|
+
pdfComment: 'Comment',
|
|
1725
|
+
pdfNoteText: 'Note text',
|
|
1726
|
+
pdfDone: 'Done',
|
|
1727
|
+
pdfDeleteAnnotation: 'Delete annotation',
|
|
1728
|
+
pdfAnnotationAdded: 'Added on page {1}: {0}',
|
|
1729
|
+
pdfAnnotationRemoved: 'Annotation removed',
|
|
1730
|
+
pdfAnnotationMoved: 'Moved to {0}%, {1}%',
|
|
1731
|
+
pdfSignatureResized: 'Width: {0}% of the page',
|
|
1732
|
+
pdfNoteResized: '{0} pt text',
|
|
1733
|
+
pdfAnnotationHint: 'Arrows to move (Shift, faster), + and − to resize, Enter to edit and Delete to remove.',
|
|
1734
|
+
pdfHighlightHint: 'Select text in the document to highlight it.',
|
|
1735
|
+
pdfNoteHint: 'Click on the page to place the note.',
|
|
1736
|
+
pdfDrawHint: 'Draw on the page with the mouse, finger or pen.',
|
|
1737
|
+
pdfSignTitle: 'Add your signature',
|
|
1738
|
+
pdfInsertSignature: 'Insert signature',
|
|
1739
|
+
pdfCancel: 'Cancel',
|
|
1740
|
+
pdfDownloadAnnotated: 'Download with the annotations',
|
|
1741
|
+
editorCodeTools: 'Code block tools',
|
|
1742
|
+
editorCodeLanguage: 'Code language',
|
|
1743
|
+
editorPlainText: 'Plain text',
|
|
1744
|
+
editorCopyCode: 'Copy code',
|
|
1745
|
+
editorCodeCopied: 'Copied',
|
|
1746
|
+
editorImageCaption: 'Caption',
|
|
1747
|
+
editorTableCells: 'Cells',
|
|
1748
|
+
editorMergeRight: 'Merge with the cell on the right',
|
|
1749
|
+
editorMergeDown: 'Merge with the cell below',
|
|
1750
|
+
editorSplitCell: 'Split',
|
|
1751
|
+
editorCollapsible: 'Collapsible section',
|
|
1752
|
+
editorCollapsibleTitle: 'Collapsible title',
|
|
1753
|
+
editorToc: 'Table of contents',
|
|
1754
|
+
editorTocTitle: 'Contents',
|
|
1755
|
+
editorMentions: 'People you can mention',
|
|
1756
|
+
editorDraftFound: 'There is an unsaved draft from {0}.',
|
|
1757
|
+
editorRestoreDraft: 'Restore',
|
|
1758
|
+
editorDiscardDraft: 'Discard',
|
|
1759
|
+
editorDraftSaved: 'Draft saved at {0}',
|
|
1760
|
+
ganttChart: 'Gantt chart',
|
|
1761
|
+
ganttScale: 'Time scale',
|
|
1762
|
+
ganttDay: 'Day',
|
|
1763
|
+
ganttWeek: 'Week',
|
|
1764
|
+
ganttMonth: 'Month',
|
|
1765
|
+
ganttWeekShort: 'W{0}',
|
|
1766
|
+
ganttTask: 'Task',
|
|
1767
|
+
ganttStart: 'Start',
|
|
1768
|
+
ganttEnd: 'End',
|
|
1769
|
+
ganttDuration: 'Duration',
|
|
1770
|
+
ganttProgress: 'Progress',
|
|
1771
|
+
ganttAssignee: 'Assignee',
|
|
1772
|
+
ganttDays: '{0} d',
|
|
1773
|
+
ganttExpand: 'Expand {0}',
|
|
1774
|
+
ganttCollapse: 'Collapse {0}',
|
|
1775
|
+
ganttBarLabel: '{0}: {1}, {2}% complete',
|
|
1776
|
+
ganttGroupLabel: 'Group {0}: {1}, {2}% complete',
|
|
1777
|
+
ganttMilestoneLabel: 'Milestone {0}: {1}',
|
|
1778
|
+
ganttDependsOn: 'Depends on {0}',
|
|
1779
|
+
ganttRemoveLink: 'Remove the dependency {0} → {1}',
|
|
1780
|
+
ganttLinkAdded: 'Dependency created: {0} → {1}.',
|
|
1781
|
+
ganttLinkRemoved: 'Dependency removed.',
|
|
1782
|
+
ganttMoved: '{0}: {1}.',
|
|
1783
|
+
ganttProgressChanged: '{0}: {1}% complete.',
|
|
1784
|
+
ganttInstructions: 'Arrows: move one day. Shift + arrows: change the end. Alt + arrows: change the start. + and −: progress. Delete: remove its dependencies. Enter: open the task.',
|
|
1785
|
+
schedulerPrevious: 'Previous',
|
|
1786
|
+
schedulerNext: 'Next',
|
|
1787
|
+
schedulerViews: 'Calendar view',
|
|
1788
|
+
schedulerMonth: 'Month',
|
|
1789
|
+
schedulerWeek: 'Week',
|
|
1790
|
+
schedulerDay: 'Day',
|
|
1791
|
+
schedulerAgenda: 'Agenda',
|
|
1792
|
+
schedulerAllDay: 'All day',
|
|
1793
|
+
schedulerMore: '+{0} more',
|
|
1794
|
+
schedulerMoreLabel: 'See {0} more events on {1}',
|
|
1795
|
+
schedulerOpenDay: 'Show {0}',
|
|
1796
|
+
schedulerNewEvent: 'New event on {0}',
|
|
1797
|
+
schedulerNoEvents: 'No events in these days.',
|
|
1798
|
+
schedulerMoved: 'Event moved: {0}.',
|
|
1799
|
+
schedulerInstructions: 'Left and right arrows: move one day. Up and down arrows: move one slot (one week in the month). Shift + up and down arrows: change the duration. Enter: open the event.',
|
|
1800
|
+
dataGridToolbar: 'Table actions',
|
|
1801
|
+
dataGridAddRow: 'Add row',
|
|
1802
|
+
dataGridDeleteRow: 'Delete row',
|
|
1803
|
+
dataGridDeleteRows: 'Delete {0} rows',
|
|
1804
|
+
dataGridOneError: '1 error',
|
|
1805
|
+
dataGridErrors: '{0} errors',
|
|
1806
|
+
dataGridChanged: '{0} changed cells',
|
|
1807
|
+
dataGridRequired: 'Required.',
|
|
1808
|
+
dataGridMin: 'The minimum is {0}.',
|
|
1809
|
+
dataGridMax: 'The maximum is {0}.',
|
|
1810
|
+
dataGridInvalidNumber: 'Not a number.',
|
|
1811
|
+
dataGridInvalidDate: 'Not a valid date.',
|
|
1812
|
+
dataGridInvalidOption: 'Not one of the options.',
|
|
1813
|
+
dataGridCopied: '{0} cells copied.',
|
|
1814
|
+
dataGridPasted: '{0} cells pasted.',
|
|
1815
|
+
dataGridCleared: '{0} cells cleared.',
|
|
1816
|
+
dataGridUndone: 'Change undone.',
|
|
1817
|
+
dataGridRedone: 'Change redone.',
|
|
1818
|
+
dataGridRowAdded: 'Row added.',
|
|
1819
|
+
dataGridRowsDeleted: 'Rows deleted: {0}.',
|
|
1820
|
+
dataGridInstructions: 'Arrows: move. Shift + arrows: select. Enter or F2: edit; type to replace; Escape cancels. Delete: clear. Ctrl + C, X and V: copy, cut and paste. Ctrl + Z and Y: undo and redo. Ctrl + D: fill down.',
|
|
1821
|
+
dataGridReadonlyInstructions: 'Arrows: move. Shift + arrows: select. Ctrl + C: copy.',
|
|
1822
|
+
dynamicFormSubmit: 'Submit',
|
|
1823
|
+
dynamicFormRequired: 'This field is required.',
|
|
1824
|
+
dynamicFormMin: 'The minimum value is {0}.',
|
|
1825
|
+
dynamicFormMax: 'The maximum value is {0}.',
|
|
1826
|
+
dynamicFormMinLength: 'Enter at least {0} characters.',
|
|
1827
|
+
dynamicFormMaxLength: 'Enter at most {0} characters.',
|
|
1828
|
+
dynamicFormEmail: 'Enter a valid email.',
|
|
1829
|
+
dynamicFormPattern: 'The format is not valid.',
|
|
1830
|
+
dynamicFormInvalid: 'The value is not valid.',
|
|
1831
|
+
dynamicFormSummaryOne: 'Check 1 field:',
|
|
1832
|
+
dynamicFormSummary: 'Check {0} fields:',
|
|
1833
|
+
dynamicFormNext: 'Next',
|
|
1834
|
+
dynamicFormBack: 'Back',
|
|
1835
|
+
dynamicFormStep: 'Step {0} of {1}:',
|
|
1836
|
+
dynamicFormAdd: 'Add {0}',
|
|
1837
|
+
dynamicFormRemove: 'Remove {0}',
|
|
1838
|
+
dynamicFormItem: 'Item {0}',
|
|
1839
|
+
dynamicFormAdded: '{0} added.',
|
|
1840
|
+
dynamicFormRemoved: '{0} removed.',
|
|
1841
|
+
tableTotal: 'Total',
|
|
1842
|
+
tableSubtotal: 'Subtotal {0}',
|
|
1843
|
+
tableScrollRegion: 'Scrollable table',
|
|
1844
|
+
accountPickerPlaceholder: 'Search account by code or name',
|
|
1845
|
+
accountPickerResults: '{0} accounts',
|
|
1846
|
+
journalHeader: 'Voucher details',
|
|
1847
|
+
journalDate: 'Date',
|
|
1848
|
+
journalType: 'Type',
|
|
1849
|
+
journalNumber: 'Number',
|
|
1850
|
+
journalDescription: 'Description',
|
|
1851
|
+
journalLines: 'Voucher lines',
|
|
1852
|
+
journalAccount: 'Account',
|
|
1853
|
+
journalThirdParty: 'Third party',
|
|
1854
|
+
journalCostCenter: 'Cost center',
|
|
1855
|
+
journalLineDescription: 'Detail',
|
|
1856
|
+
journalDebit: 'Debit',
|
|
1857
|
+
journalCredit: 'Credit',
|
|
1858
|
+
journalDifference: 'Difference',
|
|
1859
|
+
journalBalanced: 'Balanced',
|
|
1860
|
+
journalUnbalanced: 'Unbalanced',
|
|
1861
|
+
journalBalance: 'Balance',
|
|
1862
|
+
journalSave: 'Save voucher',
|
|
1863
|
+
journalAccountRequired: 'Choose the account.',
|
|
1864
|
+
journalAmountRequired: 'Enter a debit or a credit.',
|
|
1865
|
+
journalThirdPartyRequired: 'This account requires a third party.',
|
|
1866
|
+
journalCannotSave: 'Cannot save:',
|
|
1867
|
+
journalErrDate: 'The date is missing.',
|
|
1868
|
+
journalErrLines: 'At least two lines with an amount are needed.',
|
|
1869
|
+
journalErrUnbalanced: 'Debits and credits do not balance (difference {0}).',
|
|
1870
|
+
journalErrCells: 'There are {0} cells with errors in the lines.',
|
|
1871
|
+
periodPickerPlaceholder: 'Choose period',
|
|
1872
|
+
periodPresets: 'Shortcuts',
|
|
1873
|
+
periodKind: 'Period type',
|
|
1874
|
+
periodMonth: 'Month',
|
|
1875
|
+
periodQuarterTab: 'Quarter',
|
|
1876
|
+
periodYear: 'Year',
|
|
1877
|
+
periodPrevYear: 'Previous year',
|
|
1878
|
+
periodNextYear: 'Next year',
|
|
1879
|
+
periodPrevYears: 'Previous years',
|
|
1880
|
+
periodNextYears: 'Next years',
|
|
1881
|
+
periodQuarter: 'Q{0} {1}',
|
|
1882
|
+
periodQuarterShort: 'Q{0}',
|
|
1883
|
+
periodFiscalQuarter: 'Q{0} FY {1}',
|
|
1884
|
+
periodFiscalYear: 'Fiscal year {0}',
|
|
1885
|
+
periodClosed: 'closed',
|
|
1886
|
+
periodThisMonth: 'This month',
|
|
1887
|
+
periodLastMonth: 'Last month',
|
|
1888
|
+
periodThisQuarter: 'This quarter',
|
|
1889
|
+
periodLastQuarter: 'Last quarter',
|
|
1890
|
+
periodYearToDate: 'Year to date',
|
|
1891
|
+
periodThisYear: 'This year',
|
|
1892
|
+
periodLastYear: 'Last year',
|
|
1893
|
+
reportTitle: 'Financial report',
|
|
1894
|
+
reportToolbar: 'Report options',
|
|
1895
|
+
reportLevel: 'Detail level',
|
|
1896
|
+
reportLevelN: 'Open down to level {0}',
|
|
1897
|
+
reportHideZero: 'Hide zero accounts',
|
|
1898
|
+
reportExcel: 'Excel',
|
|
1899
|
+
reportPrint: 'Print',
|
|
1900
|
+
reportVariation: 'Variation',
|
|
1901
|
+
agingTitle: 'Aging report',
|
|
1902
|
+
agingAsOf: 'As of {0}',
|
|
1903
|
+
agingParty: 'Party',
|
|
1904
|
+
agingCurrent: 'Current',
|
|
1905
|
+
agingRange: '{0}–{1} days',
|
|
1906
|
+
agingOver: 'Over {0} days',
|
|
1907
|
+
agingMaxDays: 'Oldest',
|
|
1908
|
+
agingDays: '{0} days',
|
|
1909
|
+
agingDueIn: 'Due in {0} days',
|
|
1910
|
+
agingDocs: '({0} docs)',
|
|
1911
|
+
agingDocsOf: 'Documents of {0}',
|
|
1912
|
+
agingNumber: 'Document',
|
|
1913
|
+
agingDate: 'Date',
|
|
1914
|
+
agingDue: 'Due',
|
|
1915
|
+
agingOverdue: 'Days overdue',
|
|
1916
|
+
agingBalance: 'Balance',
|
|
1917
|
+
agingSummary: 'Summary',
|
|
1918
|
+
agingDetail: 'Detail',
|
|
1919
|
+
importStepFile: 'File',
|
|
1920
|
+
importStepMap: 'Columns',
|
|
1921
|
+
importStepReview: 'Review',
|
|
1922
|
+
importDrop: 'Drag an Excel (.xlsx) or CSV file here',
|
|
1923
|
+
importChoose: 'Choose file',
|
|
1924
|
+
importPaste: 'Or paste the data from a spreadsheet',
|
|
1925
|
+
importPasteHint: 'Copy the cells in Excel or Google Sheets and paste them here',
|
|
1926
|
+
importSheet: 'Sheet',
|
|
1927
|
+
importHeader: 'The first row has the headers',
|
|
1928
|
+
importRowsRead: '{0} rows and {1} columns read.',
|
|
1929
|
+
importSample: 'First rows of the file',
|
|
1930
|
+
importMapHint: 'Choose which file column matches each field. Those with the same name are already assigned.',
|
|
1931
|
+
importField: 'Field',
|
|
1932
|
+
importColumn: 'File column',
|
|
1933
|
+
importExample: 'Example',
|
|
1934
|
+
importUnmapped: '— Not assigned —',
|
|
1935
|
+
importColumnN: 'Column {0}',
|
|
1936
|
+
importMissing: 'Still to assign: {0}.',
|
|
1937
|
+
importValid: '{0} valid rows',
|
|
1938
|
+
importInvalid: '{0} rows with errors',
|
|
1939
|
+
importOnlyValid: 'Import only the valid rows',
|
|
1940
|
+
importPreview: 'Import preview',
|
|
1941
|
+
importBack: 'Back',
|
|
1942
|
+
importNext: 'Next',
|
|
1943
|
+
importDo: 'Import {0} rows',
|
|
1944
|
+
importErrFile: 'The file could not be read. Use an .xlsx, .csv or .txt file.',
|
|
1945
|
+
importErrRequired: 'Required.',
|
|
1946
|
+
importErrNumber: 'Not a number.',
|
|
1947
|
+
importErrDate: 'Not a valid date.',
|
|
1948
|
+
importErrBoolean: 'Must be Yes or No.',
|
|
1949
|
+
reconStatement: 'Bank statement',
|
|
1950
|
+
reconLedger: 'Books',
|
|
1951
|
+
reconStatementPending: 'Pending in the statement',
|
|
1952
|
+
reconLedgerPending: 'Pending in the books',
|
|
1953
|
+
reconProgress: 'Reconciled',
|
|
1954
|
+
reconItems: '{0} items',
|
|
1955
|
+
reconToolbar: 'Reconciliation actions',
|
|
1956
|
+
reconAuto: 'Auto-reconcile',
|
|
1957
|
+
reconMatch: 'Match',
|
|
1958
|
+
reconUnmatch: 'Unmatch',
|
|
1959
|
+
reconSelection: 'Statement {0} · Books {1}',
|
|
1960
|
+
reconDiff: 'difference {0}',
|
|
1961
|
+
reconOnlyPending: 'Pending only',
|
|
1962
|
+
reconMatched: 'reconciled',
|
|
1963
|
+
reconCreate: 'Create entry',
|
|
1964
|
+
reconCreateFor: 'Create an entry for {0}',
|
|
1965
|
+
reconNothingPending: 'No pending items.',
|
|
1966
|
+
reconAutoDone: '{0} automatic matches.',
|
|
1967
|
+
reconMatchedDone: 'Items matched.',
|
|
1968
|
+
reconUnmatchedDone: '{0} matches undone.',
|
|
1969
|
+
pivotTitle: 'Pivot table',
|
|
1970
|
+
pivotConfig: 'Pivot table settings',
|
|
1971
|
+
pivotRows: 'Rows',
|
|
1972
|
+
pivotColumns: 'Columns',
|
|
1973
|
+
pivotAggregate: 'Calculation',
|
|
1974
|
+
pivotNone: '— None —',
|
|
1975
|
+
pivotEmpty: '(empty)',
|
|
1976
|
+
pivotSum: 'Sum',
|
|
1977
|
+
pivotCount: 'Count',
|
|
1978
|
+
pivotAvg: 'Average',
|
|
1979
|
+
pivotMin: 'Minimum',
|
|
1980
|
+
pivotMax: 'Maximum',
|
|
1981
|
+
kpiPrevious: 'Previous period',
|
|
1982
|
+
kpiUp: 'up {0}',
|
|
1983
|
+
kpiDown: 'down {0}',
|
|
1984
|
+
kpiSame: 'no change',
|
|
1985
|
+
kpiTrend: 'Trend over {2} periods: from {0} to {1}',
|
|
1986
|
+
kpiGoal: 'Progress to goal',
|
|
1987
|
+
kpiOfGoal: '{0}% of the goal ({1})',
|
|
1988
|
+
auditTitle: 'Audit log',
|
|
1989
|
+
auditSearch: 'Search the history',
|
|
1990
|
+
auditUser: 'User',
|
|
1991
|
+
auditAction: 'Action',
|
|
1992
|
+
auditEntity: 'Record',
|
|
1993
|
+
auditAllUsers: 'All users',
|
|
1994
|
+
auditAllActions: 'All actions',
|
|
1995
|
+
auditCount: '{0} entries',
|
|
1996
|
+
auditCreated: 'created',
|
|
1997
|
+
auditUpdated: 'updated',
|
|
1998
|
+
auditDeleted: 'deleted',
|
|
1999
|
+
auditChanges: '{0} changes',
|
|
2000
|
+
auditChangesOne: '1 change',
|
|
2001
|
+
auditChangesOf: 'Changes in {0}',
|
|
2002
|
+
auditField: 'Field',
|
|
2003
|
+
auditBefore: 'Before',
|
|
2004
|
+
auditAfter: 'After',
|
|
2005
|
+
auditEmpty: '(empty)',
|
|
2006
|
+
auditNone: 'No entries match these filters.',
|
|
2007
|
+
auditTime: 'Time',
|
|
2008
|
+
auditNote: 'Note',
|
|
2009
|
+
documentTaxId: 'Tax ID',
|
|
2010
|
+
documentDate: 'Date',
|
|
2011
|
+
documentParty: 'Customer',
|
|
2012
|
+
documentCode: 'Code',
|
|
2013
|
+
documentDescription: 'Description',
|
|
2014
|
+
documentQuantity: 'Qty',
|
|
2015
|
+
documentUnitPrice: 'Unit price',
|
|
2016
|
+
documentDiscount: 'Discount',
|
|
2017
|
+
documentTax: 'Tax',
|
|
2018
|
+
documentAmount: 'Amount',
|
|
2019
|
+
documentSubtotal: 'Subtotal',
|
|
2020
|
+
documentTotal: 'Total due',
|
|
2021
|
+
documentInWords: 'Amount in words',
|
|
2022
|
+
documentNotes: 'Notes',
|
|
828
2023
|
scrollableArea: 'Scrollable area',
|
|
829
2024
|
scrollTop: 'Back to top',
|
|
830
2025
|
resizePanels: 'Resize panels',
|
|
@@ -842,6 +2037,13 @@ const CB_LOCALE_EN = {
|
|
|
842
2037
|
chooseItem: 'Choose {0}',
|
|
843
2038
|
perMonth: '/mo',
|
|
844
2039
|
perYear: '/yr',
|
|
2040
|
+
billingCycle: 'Billing cycle',
|
|
2041
|
+
notIncluded: 'not included',
|
|
2042
|
+
payAnnually: 'Pay annually',
|
|
2043
|
+
payMonthly: 'Pay monthly',
|
|
2044
|
+
billedAnnually: 'Billed {0} annually',
|
|
2045
|
+
youSave: 'You save {0}',
|
|
2046
|
+
recommended: 'Recommended',
|
|
845
2047
|
textFormatting: 'Text formatting',
|
|
846
2048
|
paragraphStyle: 'Paragraph style',
|
|
847
2049
|
normal: 'Normal',
|
|
@@ -975,6 +2177,177 @@ const CB_LOCALE_EN = {
|
|
|
975
2177
|
quickFormat: 'Quick formatting',
|
|
976
2178
|
insertBlock: 'Insert block',
|
|
977
2179
|
paragraph: 'Paragraph',
|
|
2180
|
+
// --- Comments ---
|
|
2181
|
+
commentsFeed: 'Comments and activity',
|
|
2182
|
+
commentsShow: 'Show',
|
|
2183
|
+
commentsAll: 'All',
|
|
2184
|
+
commentsOnly: 'Comments',
|
|
2185
|
+
commentsActivity: 'Activity',
|
|
2186
|
+
commentsEmpty: 'No comments yet.',
|
|
2187
|
+
commentsWrite: 'Write a comment… (@ to mention)',
|
|
2188
|
+
commentsWriteReply: 'Write a reply…',
|
|
2189
|
+
commentsNew: 'New comment',
|
|
2190
|
+
commentsEditing: 'Edit comment',
|
|
2191
|
+
commentsReplyTo: 'Reply to {0}',
|
|
2192
|
+
commentsRepliesTo: 'Replies to {0}',
|
|
2193
|
+
commentsSend: 'Comment',
|
|
2194
|
+
commentsReply: 'Reply',
|
|
2195
|
+
commentsEdit: 'Edit',
|
|
2196
|
+
commentsDelete: 'Delete',
|
|
2197
|
+
commentsDeleteConfirm: 'Delete this comment?',
|
|
2198
|
+
commentsEdited: 'edited',
|
|
2199
|
+
commentsDeleted: 'Comment deleted',
|
|
2200
|
+
commentsAddReaction: 'Add reaction',
|
|
2201
|
+
commentsReactions: 'Reactions',
|
|
2202
|
+
commentsReactionLabel: '{0}, {1}: {2}',
|
|
2203
|
+
commentsYou: 'you',
|
|
2204
|
+
commentsJustNow: 'just now',
|
|
2205
|
+
commentsPosted: 'Comment posted',
|
|
2206
|
+
commentsSaved: 'Comment saved',
|
|
2207
|
+
commentsShortcut: 'Ctrl + Enter to send',
|
|
2208
|
+
// --- Notification center ---
|
|
2209
|
+
notificationsTitle: 'Notifications',
|
|
2210
|
+
notificationsBellUnread: 'Notifications, {0} unread',
|
|
2211
|
+
notificationsMarkAllRead: 'Mark all as read',
|
|
2212
|
+
notificationsShow: 'Show',
|
|
2213
|
+
notificationsAll: 'All',
|
|
2214
|
+
notificationsUnread: 'Unread',
|
|
2215
|
+
notificationsUnreadItem: 'Unread',
|
|
2216
|
+
notificationsMarkRead: 'Mark as read: {0}',
|
|
2217
|
+
notificationsMarkUnread: 'Mark as unread: {0}',
|
|
2218
|
+
notificationsMarkReadShort: 'Mark as read',
|
|
2219
|
+
notificationsMarkUnreadShort: 'Mark as unread',
|
|
2220
|
+
notificationsEmpty: 'You have no notifications.',
|
|
2221
|
+
notificationsAllRead: 'You are all caught up: no unread notifications.',
|
|
2222
|
+
notificationsViewAll: 'View all',
|
|
2223
|
+
notificationsToday: 'Today',
|
|
2224
|
+
notificationsYesterday: 'Yesterday',
|
|
2225
|
+
notificationsEarlier: 'Earlier',
|
|
2226
|
+
notificationsJustNow: 'just now',
|
|
2227
|
+
notificationsNew: 'New notification: {0}',
|
|
2228
|
+
notificationsNewMany: '{0} new notifications',
|
|
2229
|
+
notificationsMarkedRead: 'Marked as read',
|
|
2230
|
+
notificationsMarkedUnread: 'Marked as unread',
|
|
2231
|
+
notificationsMarkedAllRead: 'All marked as read',
|
|
2232
|
+
notificationsRemoved: 'Notification removed',
|
|
2233
|
+
// --- Signature pad ---
|
|
2234
|
+
signaturePad: 'Signature area',
|
|
2235
|
+
signatureEmptyState: 'empty',
|
|
2236
|
+
signatureSignedState: 'signed',
|
|
2237
|
+
signaturePlaceholder: 'Sign here',
|
|
2238
|
+
signatureModes: 'How to sign',
|
|
2239
|
+
signatureDraw: 'Draw',
|
|
2240
|
+
signatureType: 'Type',
|
|
2241
|
+
signatureTypeLabel: 'Type your name',
|
|
2242
|
+
signatureHint: 'Draw your signature with the mouse, a finger or a pen, or choose "Type" to type your name.',
|
|
2243
|
+
signatureHintDraw: 'Draw your signature with the mouse, a finger or a pen.',
|
|
2244
|
+
signatureUndo: 'Undo stroke',
|
|
2245
|
+
signatureClear: 'Clear signature',
|
|
2246
|
+
signatureCleared: 'Signature cleared',
|
|
2247
|
+
signatureUndone: 'Stroke undone',
|
|
2248
|
+
// --- Image cropper ---
|
|
2249
|
+
cropperValue: '{0} × {1} of the image ({2} × {3} pixels)',
|
|
2250
|
+
cropperRatio: 'Aspect ratio',
|
|
2251
|
+
cropperRotateLeft: 'Rotate left',
|
|
2252
|
+
cropperRotateRight: 'Rotate right',
|
|
2253
|
+
cropperRotatedLeft: 'Image rotated left',
|
|
2254
|
+
cropperRotatedRight: 'Image rotated right',
|
|
2255
|
+
cropperChoose: 'Choose image',
|
|
2256
|
+
cropperChange: 'Change image',
|
|
2257
|
+
cropperEmpty: 'Drag an image here or choose it from your device.',
|
|
2258
|
+
cropperPreview: 'Crop preview',
|
|
2259
|
+
cropperDone: 'Image cropped',
|
|
2260
|
+
cropperInvalidFile: 'The file is not an image.',
|
|
2261
|
+
cropperLoadError: 'The image could not be loaded.',
|
|
2262
|
+
// --- Infinite scroll ---
|
|
2263
|
+
infiniteLoading: 'Loading more results…',
|
|
2264
|
+
infiniteLoadMore: 'Load more',
|
|
2265
|
+
infiniteLoaded: '{0} more results, {1} in total',
|
|
2266
|
+
infiniteEnd: 'No more results',
|
|
2267
|
+
infiniteError: 'More results could not be loaded.',
|
|
2268
|
+
infiniteRetry: 'Retry',
|
|
2269
|
+
// --- Media player ---
|
|
2270
|
+
mediaVideo: 'Video player',
|
|
2271
|
+
mediaAudio: 'Audio player',
|
|
2272
|
+
mediaControls: 'Controls',
|
|
2273
|
+
mediaPlay: 'Play',
|
|
2274
|
+
mediaPause: 'Pause',
|
|
2275
|
+
mediaBack: 'Back {0} seconds',
|
|
2276
|
+
mediaForward: 'Forward {0} seconds',
|
|
2277
|
+
mediaSeek: 'Progress',
|
|
2278
|
+
mediaTimeOf: '{0} of {1}',
|
|
2279
|
+
mediaHours: 'h',
|
|
2280
|
+
mediaMinutes: 'min',
|
|
2281
|
+
mediaSeconds: 's',
|
|
2282
|
+
mediaMute: 'Mute',
|
|
2283
|
+
mediaVolume: 'Volume',
|
|
2284
|
+
mediaVolumeSet: 'Volume {0}%',
|
|
2285
|
+
mediaSpeed: 'Speed',
|
|
2286
|
+
mediaSpeedSet: 'Speed {0}',
|
|
2287
|
+
mediaCaptions: 'Captions',
|
|
2288
|
+
mediaCaptionsLanguage: 'Captions language',
|
|
2289
|
+
mediaCaptionsNone: 'No captions',
|
|
2290
|
+
mediaCaptionsOn: 'Captions: {0}',
|
|
2291
|
+
mediaCaptionsOff: 'Captions off',
|
|
2292
|
+
mediaPip: 'Picture in picture',
|
|
2293
|
+
mediaFullscreen: 'Full screen',
|
|
2294
|
+
mediaExitFullscreen: 'Exit full screen',
|
|
2295
|
+
mediaTranscript: 'Transcript',
|
|
2296
|
+
mediaError: 'The media could not be loaded.',
|
|
2297
|
+
mediaShortcuts: 'Shortcuts: Space or K plays and pauses; left and right arrows, 5 seconds; J and L, 10 seconds; up and down arrows, volume; M mutes; F full screen; C captions; 0 to 9 jump to that point.',
|
|
2298
|
+
// --- Flow editor ---
|
|
2299
|
+
flowEditor: 'Flow editor',
|
|
2300
|
+
flowDiagram: 'Diagram',
|
|
2301
|
+
flowList: 'List',
|
|
2302
|
+
flowView: 'View',
|
|
2303
|
+
flowAdd: 'Add',
|
|
2304
|
+
flowStart: 'Start',
|
|
2305
|
+
flowTask: 'Task',
|
|
2306
|
+
flowDecision: 'Decision',
|
|
2307
|
+
flowEnd: 'End',
|
|
2308
|
+
flowNodeOf: '{0}: {1}',
|
|
2309
|
+
flowExits: 'Exits: {0}',
|
|
2310
|
+
flowNoExits: 'No exits',
|
|
2311
|
+
flowExitsOf: 'Exits of {0}',
|
|
2312
|
+
flowEdgeOf: 'Connection from {0} to {1}',
|
|
2313
|
+
flowConnect: 'Connect',
|
|
2314
|
+
flowConnectFrom: 'Connecting from {0}: go to the target node and press Enter. Escape cancels.',
|
|
2315
|
+
flowConnected: 'Connected: {0} → {1}',
|
|
2316
|
+
flowCannotConnect: '{0} cannot be connected to {1}.',
|
|
2317
|
+
flowConnectCancelled: 'Connection cancelled',
|
|
2318
|
+
flowDelete: 'Delete',
|
|
2319
|
+
flowDeleteNode: 'Delete {0}',
|
|
2320
|
+
flowAdded: 'Added: {0}',
|
|
2321
|
+
flowRemoved: 'Removed: {0}',
|
|
2322
|
+
flowNameOf: 'Name ({0})',
|
|
2323
|
+
flowEdgeLabel: 'Label',
|
|
2324
|
+
flowEdgeLabelOf: 'Label from {0} to {1}',
|
|
2325
|
+
flowConnectTo: 'Connect {0} to',
|
|
2326
|
+
flowChooseTarget: 'Choose the target',
|
|
2327
|
+
flowAddConnection: 'Add connection',
|
|
2328
|
+
flowRemoveConnection: 'Remove the connection to {0}',
|
|
2329
|
+
flowLayout: 'Arrange',
|
|
2330
|
+
flowLaidOut: 'Diagram arranged',
|
|
2331
|
+
flowZoomIn: 'Zoom in',
|
|
2332
|
+
flowZoomOut: 'Zoom out',
|
|
2333
|
+
flowFit: 'Fit to view',
|
|
2334
|
+
flowZoom: 'Zoom',
|
|
2335
|
+
flowEmpty: 'The flow is empty. Add a start to begin.',
|
|
2336
|
+
flowIssues: 'Issues ({0})',
|
|
2337
|
+
flowNoIssues: 'The flow is valid.',
|
|
2338
|
+
flowIssueOf: 'Issue: {0}',
|
|
2339
|
+
flowIssueNoStart: 'A start node is missing.',
|
|
2340
|
+
flowIssueManyStarts: 'There is more than one start: {0}.',
|
|
2341
|
+
flowIssueNoEnd: 'An end node is missing.',
|
|
2342
|
+
flowIssueStartIncoming: '{0} is a start and has incoming connections.',
|
|
2343
|
+
flowIssueEndOutgoing: '{0} is an end and has exits.',
|
|
2344
|
+
flowIssueDeadEnd: '{0} has no exit.',
|
|
2345
|
+
flowIssueBranches: 'The decision {0} needs at least two exits.',
|
|
2346
|
+
flowIssueBranchLabel: 'Some exit of the decision {0} has no label.',
|
|
2347
|
+
flowIssueUnreachable: '{0} cannot be reached from the start.',
|
|
2348
|
+
flowNodeHint: 'Arrows to move (Shift, further), Enter to rename, C to connect to another node and Delete to remove.',
|
|
2349
|
+
flowReadonlyHint: 'Enter to open.',
|
|
2350
|
+
flowEdgeHint: 'Enter to edit the label and Delete to remove.',
|
|
978
2351
|
};
|
|
979
2352
|
/** Idiomas incluidos. */
|
|
980
2353
|
const CB_LOCALES = { es: CB_LOCALE_ES, en: CB_LOCALE_EN };
|
|
@@ -1137,6 +2510,200 @@ function cbOverlayFocus(options) {
|
|
|
1137
2510
|
});
|
|
1138
2511
|
}
|
|
1139
2512
|
|
|
2513
|
+
/**
|
|
2514
|
+
* Fecha relativa a `now` ("hace 5 minutos", "ayer", "en 2 horas") en el idioma `locale`;
|
|
2515
|
+
* a partir de una semana, la fecha corta ("23 oct 2026"). Por debajo de un minuto devuelve
|
|
2516
|
+
* `justNow` ("ahora mismo").
|
|
2517
|
+
*
|
|
2518
|
+
* @example
|
|
2519
|
+
* ```ts
|
|
2520
|
+
* cbRelativeTime(comment.date, Date.now(), t().intlLocale, t().commentsJustNow);
|
|
2521
|
+
* ```
|
|
2522
|
+
*/
|
|
2523
|
+
function cbRelativeTime(date, now, locale, justNow) {
|
|
2524
|
+
const time = date instanceof Date ? date.getTime() : typeof date === 'number' ? date : new Date(date).getTime();
|
|
2525
|
+
if (Number.isNaN(time))
|
|
2526
|
+
return '';
|
|
2527
|
+
const diff = Math.round((time - now) / 1000);
|
|
2528
|
+
const abs = Math.abs(diff);
|
|
2529
|
+
if (abs < 60)
|
|
2530
|
+
return justNow;
|
|
2531
|
+
const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });
|
|
2532
|
+
if (abs < 3600)
|
|
2533
|
+
return rtf.format(Math.round(diff / 60), 'minute');
|
|
2534
|
+
if (abs < 86400)
|
|
2535
|
+
return rtf.format(Math.round(diff / 3600), 'hour');
|
|
2536
|
+
if (abs < 7 * 86400)
|
|
2537
|
+
return rtf.format(Math.round(diff / 86400), 'day');
|
|
2538
|
+
return new Intl.DateTimeFormat(locale, { dateStyle: 'medium' }).format(time);
|
|
2539
|
+
}
|
|
2540
|
+
|
|
2541
|
+
const formatters = new Map();
|
|
2542
|
+
/** Monedas sin decimales (ISO 4217); el resto se escribe con 2, igual en todos los navegadores. */
|
|
2543
|
+
const ZERO_DECIMALS = new Set(['BIF', 'CLP', 'DJF', 'GNF', 'ISK', 'JPY', 'KMF', 'KRW', 'PYG', 'RWF', 'UGX', 'UYI', 'VND', 'VUV', 'XAF', 'XOF', 'XPF']);
|
|
2544
|
+
function formatter(locale, options) {
|
|
2545
|
+
const key = `${locale}|${options.currency ?? ''}|${options.decimals ?? ''}|${options.currencyDisplay ?? ''}`;
|
|
2546
|
+
let f = formatters.get(key);
|
|
2547
|
+
if (!f) {
|
|
2548
|
+
const digits = options.decimals ?? (options.currency && ZERO_DECIMALS.has(options.currency.toUpperCase()) ? 0 : 2);
|
|
2549
|
+
f = new Intl.NumberFormat(locale, {
|
|
2550
|
+
style: options.currency ? 'currency' : 'decimal',
|
|
2551
|
+
currency: options.currency ?? undefined,
|
|
2552
|
+
currencyDisplay: options.currencyDisplay ?? 'narrowSymbol',
|
|
2553
|
+
minimumFractionDigits: digits,
|
|
2554
|
+
maximumFractionDigits: digits,
|
|
2555
|
+
});
|
|
2556
|
+
formatters.set(key, f);
|
|
2557
|
+
}
|
|
2558
|
+
return f;
|
|
2559
|
+
}
|
|
2560
|
+
/** Número a partir de un valor (número o texto numérico); `null` si no lo es. */
|
|
2561
|
+
function cbToNumber(value) {
|
|
2562
|
+
if (typeof value === 'number')
|
|
2563
|
+
return Number.isFinite(value) ? value : null;
|
|
2564
|
+
if (typeof value === 'string' && value.trim() !== '') {
|
|
2565
|
+
const n = Number(value);
|
|
2566
|
+
return Number.isFinite(n) ? n : null;
|
|
2567
|
+
}
|
|
2568
|
+
return null;
|
|
2569
|
+
}
|
|
2570
|
+
/**
|
|
2571
|
+
* Importe con el formato del idioma: separadores, decimales, moneda y negativos
|
|
2572
|
+
* entre paréntesis si se pide (`(1.234,50)`). Un valor que no es número se
|
|
2573
|
+
* devuelve como texto (vacío si es `null`).
|
|
2574
|
+
*
|
|
2575
|
+
* ```ts
|
|
2576
|
+
* cbFormatAmount(-1234.5, 'es-CO', { currency: 'COP', negative: 'parens' }); // "($ 1.234,50)"
|
|
2577
|
+
* ```
|
|
2578
|
+
*/
|
|
2579
|
+
function cbFormatAmount(value, locale, options = {}) {
|
|
2580
|
+
const n = cbToNumber(value);
|
|
2581
|
+
if (n === null)
|
|
2582
|
+
return value == null ? '' : String(value);
|
|
2583
|
+
const f = formatter(locale, options);
|
|
2584
|
+
if (options.negative === 'parens' && n < 0)
|
|
2585
|
+
return `(${f.format(-n)})`;
|
|
2586
|
+
// Evita "-0,00" al redondear un negativo muy pequeño.
|
|
2587
|
+
const text = f.format(n);
|
|
2588
|
+
return /^-0([.,]0+)?$/.test(text.replace(/[^\d.,-]/g, '')) ? f.format(0) : text;
|
|
2589
|
+
}
|
|
2590
|
+
/**
|
|
2591
|
+
* Total de una lista de valores (los que no son número se ignoran, salvo en
|
|
2592
|
+
* `count`). Las sumas se redondean para evitar errores de coma flotante
|
|
2593
|
+
* (`0.1 + 0.2` da `0.3`).
|
|
2594
|
+
*/
|
|
2595
|
+
function cbSummarize(values, kind) {
|
|
2596
|
+
if (kind === 'count')
|
|
2597
|
+
return values.filter((v) => v !== null && v !== undefined && v !== '').length;
|
|
2598
|
+
const nums = values.map(cbToNumber).filter((n) => n !== null);
|
|
2599
|
+
if (!nums.length)
|
|
2600
|
+
return kind === 'sum' ? 0 : null;
|
|
2601
|
+
const round = (n) => Math.round(n * 1e8) / 1e8;
|
|
2602
|
+
switch (kind) {
|
|
2603
|
+
case 'sum':
|
|
2604
|
+
return round(nums.reduce((a, b) => a + b, 0));
|
|
2605
|
+
case 'avg':
|
|
2606
|
+
return round(nums.reduce((a, b) => a + b, 0) / nums.length);
|
|
2607
|
+
case 'min':
|
|
2608
|
+
return Math.min(...nums);
|
|
2609
|
+
case 'max':
|
|
2610
|
+
return Math.max(...nums);
|
|
2611
|
+
}
|
|
2612
|
+
}
|
|
2613
|
+
/**
|
|
2614
|
+
* Formateador de importes con la moneda y el estilo de negativos de
|
|
2615
|
+
* `provideCaribeNG({ currency, negativeStyle, numberLocale })` (o el idioma activo).
|
|
2616
|
+
* Debe llamarse en un contexto de inyección.
|
|
2617
|
+
*/
|
|
2618
|
+
function injectCbAmount() {
|
|
2619
|
+
const config = inject(CB_CONFIG);
|
|
2620
|
+
const t = injectCbTranslation();
|
|
2621
|
+
return (value, options = {}) => cbFormatAmount(value, config.numberLocale ?? t().intlLocale, {
|
|
2622
|
+
...options,
|
|
2623
|
+
currency: options.currency === undefined ? (config.currency ?? null) : options.currency,
|
|
2624
|
+
negative: options.negative ?? config.negativeStyle ?? 'minus',
|
|
2625
|
+
});
|
|
2626
|
+
}
|
|
2627
|
+
|
|
2628
|
+
/** Ancho mínimo de cada breakpoint en px (coinciden con `--cb-breakpoint-*` y las utilidades `md:cb-*`). */
|
|
2629
|
+
const CB_BREAKPOINTS = {
|
|
2630
|
+
xs: 0,
|
|
2631
|
+
sm: 576,
|
|
2632
|
+
md: 768,
|
|
2633
|
+
lg: 992,
|
|
2634
|
+
xl: 1200,
|
|
2635
|
+
'2xl': 1400,
|
|
2636
|
+
};
|
|
2637
|
+
const ORDER = ['xs', 'sm', 'md', 'lg', 'xl', '2xl'];
|
|
2638
|
+
/**
|
|
2639
|
+
* El breakpoint actual como signals, para lo que las utilidades CSS no pueden hacer: no renderizar
|
|
2640
|
+
* una parte, cambiar un input o elegir otra vista según el ancho de la ventana (mobile-first).
|
|
2641
|
+
*
|
|
2642
|
+
* En el servidor (o sin `matchMedia`) todas las consultas son `false` y `current()` es `xs`.
|
|
2643
|
+
*
|
|
2644
|
+
* @example
|
|
2645
|
+
* ```ts
|
|
2646
|
+
* protected readonly bp = inject(CbBreakpoints);
|
|
2647
|
+
* protected readonly desktop = this.bp.up('lg');
|
|
2648
|
+
* ```
|
|
2649
|
+
* ```html
|
|
2650
|
+
* @if (desktop()) { <aside>…</aside> }
|
|
2651
|
+
* <cb-table [size]="bp.down('md')() ? 'sm' : 'md'" />
|
|
2652
|
+
* ```
|
|
2653
|
+
*/
|
|
2654
|
+
class CbBreakpoints {
|
|
2655
|
+
constructor() {
|
|
2656
|
+
this.isBrowser = isPlatformBrowser(inject(PLATFORM_ID)) && typeof matchMedia === 'function';
|
|
2657
|
+
/** Un signal por media query: el servicio vive lo que la app, así que los listeners no se quitan. */
|
|
2658
|
+
this.queries = new Map();
|
|
2659
|
+
/** El breakpoint mayor cuyo ancho mínimo se cumple. */
|
|
2660
|
+
this.current = computed(() => {
|
|
2661
|
+
for (let i = ORDER.length - 1; i > 0; i--) {
|
|
2662
|
+
if (this.up(ORDER[i])())
|
|
2663
|
+
return ORDER[i];
|
|
2664
|
+
}
|
|
2665
|
+
return 'xs';
|
|
2666
|
+
}, /* @ts-ignore */
|
|
2667
|
+
...(ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []));
|
|
2668
|
+
}
|
|
2669
|
+
/** `true` desde el ancho de `bp` en adelante (`md:` en las utilidades). */
|
|
2670
|
+
up(bp) {
|
|
2671
|
+
return bp === 'xs' ? ALWAYS : this.matches(`(min-width: ${CB_BREAKPOINTS[bp]}px)`);
|
|
2672
|
+
}
|
|
2673
|
+
/** `true` por debajo del ancho de `bp` (`down('md')` es el móvil y la tableta en vertical). */
|
|
2674
|
+
down(bp) {
|
|
2675
|
+
return bp === 'xs' ? NEVER : this.matches(`(max-width: ${CB_BREAKPOINTS[bp] - 0.02}px)`);
|
|
2676
|
+
}
|
|
2677
|
+
/** `true` desde `from` hasta antes de `to`. */
|
|
2678
|
+
between(from, to) {
|
|
2679
|
+
const up = this.up(from);
|
|
2680
|
+
const down = this.down(to);
|
|
2681
|
+
return computed(() => up() && down());
|
|
2682
|
+
}
|
|
2683
|
+
/** Cualquier media query (`(orientation: portrait)`, `(prefers-reduced-motion: reduce)`…) como signal. */
|
|
2684
|
+
matches(query) {
|
|
2685
|
+
let state = this.queries.get(query);
|
|
2686
|
+
if (!state) {
|
|
2687
|
+
// El valor inicial va en signal(): matches() se puede llamar dentro de un computed, donde no se escribe.
|
|
2688
|
+
const mql = this.isBrowser ? matchMedia(query) : null;
|
|
2689
|
+
const value = signal(mql?.matches ?? false, /* @ts-ignore */
|
|
2690
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
2691
|
+
mql?.addEventListener('change', (e) => value.set(e.matches));
|
|
2692
|
+
state = value.asReadonly();
|
|
2693
|
+
this.queries.set(query, state);
|
|
2694
|
+
}
|
|
2695
|
+
return state;
|
|
2696
|
+
}
|
|
2697
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbBreakpoints, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2698
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbBreakpoints, providedIn: 'root' }); }
|
|
2699
|
+
}
|
|
2700
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbBreakpoints, decorators: [{
|
|
2701
|
+
type: Injectable,
|
|
2702
|
+
args: [{ providedIn: 'root' }]
|
|
2703
|
+
}] });
|
|
2704
|
+
const ALWAYS = signal(true).asReadonly();
|
|
2705
|
+
const NEVER = signal(false).asReadonly();
|
|
2706
|
+
|
|
1140
2707
|
/*
|
|
1141
2708
|
* Public API Surface de @caribeng/ui (entry point primario: núcleo + tema)
|
|
1142
2709
|
*/
|
|
@@ -1145,4 +2712,4 @@ function cbOverlayFocus(options) {
|
|
|
1145
2712
|
* Generated bundle index. Do not edit.
|
|
1146
2713
|
*/
|
|
1147
2714
|
|
|
1148
|
-
export { CB_COLOR_PRESETS, CB_CONFIG, CB_DEFAULT_CONFIG, CB_LOCALES, CB_LOCALE_EN, CB_LOCALE_ES, CbLocaleService, CbThemeService, cbFieldState, cbFormat, cbOverlayFocus, injectCbTranslation, provideCaribeNG };
|
|
2715
|
+
export { CB_BREAKPOINTS, CB_COLOR_PRESETS, CB_CONFIG, CB_DEFAULT_CONFIG, CB_LOCALES, CB_LOCALE_EN, CB_LOCALE_ES, CbBreakpoints, CbConfirmationService, CbLocaleService, CbThemeService, cbFieldState, cbFormat, cbFormatAmount, cbOverlayFocus, cbRelativeTime, cbRunCommand, cbSummarize, cbToNumber, cbVisibleItems, injectCbAmount, injectCbTranslation, provideCaribeNG };
|