@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1317-c → 1.5.1317-d
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/assets/i18n/en.json +28 -0
- package/assets/i18n/es.json +28 -0
- package/assets/styles/main.min.css +1 -1
- package/assets/styles/main.min.css.map +1 -1
- package/esm2022/assets/i18n/en.json +28 -0
- package/esm2022/assets/i18n/es.json +28 -0
- package/esm2022/lib/components/bmb-portal/bmb-projected-content/bmb-projected-content.component.mjs +2 -2
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.mjs +51 -0
- package/esm2022/lib/components/bmb-text-editor/bmb-text-editor.component.mjs +66 -24
- package/esm2022/lib/components/utils/bmb-dropdown-content/bmb-dropdown-content.component.mjs +5 -3
- package/esm2022/lib/directives/bmb-layout/bmb-layout-item.directive.mjs +2 -2
- package/esm2022/lib/services/projection/projection.service.mjs +1 -1
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +311 -173
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/lib/components/bmb-text-editor/bmb-text-editor-prompt/bmb-text-editor-prompt.component.d.ts +13 -0
- package/lib/components/bmb-text-editor/bmb-text-editor.component.d.ts +10 -4
- package/package.json +1 -1
|
@@ -989,6 +989,34 @@ var notification_card$1 = {
|
|
|
989
989
|
primary_text: "No tienes elementos para mostrar"
|
|
990
990
|
}
|
|
991
991
|
};
|
|
992
|
+
var dropdown$1 = {
|
|
993
|
+
menu: {
|
|
994
|
+
filter_placeholder: "Selecciona una opción"
|
|
995
|
+
}
|
|
996
|
+
};
|
|
997
|
+
var text_editor$1 = {
|
|
998
|
+
prompt: {
|
|
999
|
+
link: {
|
|
1000
|
+
link_label: "Insertar enlace",
|
|
1001
|
+
link_placeholder: "https://example.com",
|
|
1002
|
+
link_helper: "Ingresa la URL a la que deseas enlazar.",
|
|
1003
|
+
target_label: "Selecciona destino",
|
|
1004
|
+
target_placeholder: "Selecciona una opción",
|
|
1005
|
+
target_helper: "Selecciona el destino del enlace.",
|
|
1006
|
+
rel_label: "Agregar atributo rel (noopener noreferrer)"
|
|
1007
|
+
},
|
|
1008
|
+
image: {
|
|
1009
|
+
image_label: "Insertar imagen",
|
|
1010
|
+
image_placeholder: "https://example.com/image.jpg",
|
|
1011
|
+
image_helper: "Ingresa la URL de la imagen que deseas insertar.",
|
|
1012
|
+
alt_label: "Texto alternativo",
|
|
1013
|
+
alt_helper: "Ingresa el texto alternativo para la imagen.",
|
|
1014
|
+
alt_placeholder: "Texto alternativo de la imagen"
|
|
1015
|
+
},
|
|
1016
|
+
primary_button: "Insertar",
|
|
1017
|
+
secondary_button: "Cancelar"
|
|
1018
|
+
}
|
|
1019
|
+
};
|
|
992
1020
|
var es = {
|
|
993
1021
|
account_statement: account_statement$1,
|
|
994
1022
|
advertisement_card: advertisement_card$1,
|
|
@@ -1010,7 +1038,9 @@ var es = {
|
|
|
1010
1038
|
totp: totp$1,
|
|
1011
1039
|
user_profile: user_profile$1,
|
|
1012
1040
|
user_summary: user_summary$1,
|
|
1013
|
-
notification_card: notification_card$1
|
|
1041
|
+
notification_card: notification_card$1,
|
|
1042
|
+
dropdown: dropdown$1,
|
|
1043
|
+
text_editor: text_editor$1
|
|
1014
1044
|
};
|
|
1015
1045
|
|
|
1016
1046
|
var account_statement = {
|
|
@@ -1130,6 +1160,34 @@ var notification_card = {
|
|
|
1130
1160
|
primary_text: "You have no notifications to show"
|
|
1131
1161
|
}
|
|
1132
1162
|
};
|
|
1163
|
+
var dropdown = {
|
|
1164
|
+
menu: {
|
|
1165
|
+
filter_placeholder: "Select an option"
|
|
1166
|
+
}
|
|
1167
|
+
};
|
|
1168
|
+
var text_editor = {
|
|
1169
|
+
prompt: {
|
|
1170
|
+
link: {
|
|
1171
|
+
link_label: "Insert Link",
|
|
1172
|
+
link_placeholder: "https://example.com",
|
|
1173
|
+
link_helper: "Enter the URL you want to link to.",
|
|
1174
|
+
target_label: "Select Target",
|
|
1175
|
+
target_placeholder: "Select an option",
|
|
1176
|
+
target_helper: "Select the target of the link.",
|
|
1177
|
+
rel_label: "Add rel attribute (noopener noreferrer)"
|
|
1178
|
+
},
|
|
1179
|
+
image: {
|
|
1180
|
+
image_label: "Insert Image",
|
|
1181
|
+
image_placeholder: "https://example.com/image.jpg",
|
|
1182
|
+
image_helper: "Enter the URL of the image you want to insert.",
|
|
1183
|
+
alt_label: "Alternative Text",
|
|
1184
|
+
alt_helper: "Provide alternative text for the image.",
|
|
1185
|
+
alt_placeholder: "Describe the image"
|
|
1186
|
+
},
|
|
1187
|
+
primary_button: "Insert",
|
|
1188
|
+
secondary_button: "Cancel"
|
|
1189
|
+
}
|
|
1190
|
+
};
|
|
1133
1191
|
var en = {
|
|
1134
1192
|
account_statement: account_statement,
|
|
1135
1193
|
advertisement_card: advertisement_card,
|
|
@@ -1151,7 +1209,9 @@ var en = {
|
|
|
1151
1209
|
totp: totp,
|
|
1152
1210
|
user_profile: user_profile,
|
|
1153
1211
|
user_summary: user_summary,
|
|
1154
|
-
notification_card: notification_card
|
|
1212
|
+
notification_card: notification_card,
|
|
1213
|
+
dropdown: dropdown,
|
|
1214
|
+
text_editor: text_editor
|
|
1155
1215
|
};
|
|
1156
1216
|
|
|
1157
1217
|
class BmbTranslationsService {
|
|
@@ -1325,7 +1385,7 @@ class BmbLayoutItemDirective {
|
|
|
1325
1385
|
this.isDynamicItem = input(false);
|
|
1326
1386
|
}
|
|
1327
1387
|
get elementClass() {
|
|
1328
|
-
const classes = [];
|
|
1388
|
+
const classes = ['bmb_layout-item'];
|
|
1329
1389
|
if (this.colSm())
|
|
1330
1390
|
classes.push(`bmb_col-sm-${this.colSm()}`);
|
|
1331
1391
|
if (this.colLg())
|
|
@@ -1779,7 +1839,7 @@ class BmbProjectedContentComponent {
|
|
|
1779
1839
|
});
|
|
1780
1840
|
Object.keys(this.outputContext()).forEach((key) => {
|
|
1781
1841
|
if (instance[key] && instance[key].subscribe) {
|
|
1782
|
-
instance[key].subscribe(() => {
|
|
1842
|
+
instance[key].subscribe((event) => {
|
|
1783
1843
|
this.outputContext()[key](event);
|
|
1784
1844
|
});
|
|
1785
1845
|
}
|
|
@@ -2786,7 +2846,7 @@ class BmbDropdownContentComponent {
|
|
|
2786
2846
|
}
|
|
2787
2847
|
}
|
|
2788
2848
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbDropdownContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2789
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbDropdownContentComponent, isStandalone: true, selector: "bmb-dropdown-content", inputs: { selectedOption: { classPropertyName: "selectedOption", publicName: "selectedOption", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, isKeyboardEvent: { classPropertyName: "isKeyboardEvent", publicName: "isKeyboardEvent", isSignal: true, isRequired: false, transformFunction: null }, enableFilter: { classPropertyName: "enableFilter", publicName: "enableFilter", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", isKeyboardEvent: "isKeyboardEventChange", clickedItem: "clickedItem", isOpen: "isOpenChange" }, ngImport: i0, template: "<div class=\"bmb_dropdown-content-modal\" [tabindex]=\"1\">\n <ul class=\"bmb_dropdown-content-container\" [tabindex]=\"-1\">\n @if (enableFilter()) {\n <li class=\"bmb_dropdown-content-item bmb_dropdown-content-item-filter\">\n <input\n type=\"text\"\n class=\"bmb_dropdown-content-item-filter-input\"\n placeholder=\"Select an option\"\n (input)=\"filterList($event)\"\n />\n <bmb-icon\n class=\"bmb_dropdown-content-item-filter-icon\"\n icon=\"search\"\n [size]=\"24\"\n />\n </li>\n }\n @for (item of filteredItems(); track $index) {\n <li\n class=\"bmb_dropdown-content-item\"\n [ngClass]=\"{\n 'bmb_dropdown-content-item-selected': isSelected(item.value!)\n }\"\n [id]=\"item.idItem\"\n >\n <bmb-check-external-link-button\n [link]=\"item.url!\"\n [target]=\"item.target!\"\n (buttonClick)=\"handleDropdown(item)\"\n >\n @if (!!item.icon) {\n <bmb-icon\n class=\"bmb_dropdown-content-item-icon\"\n [icon]=\"item.icon\"\n [size]=\"24\"\n [dotNotification]=\"item.dotNotification\"\n />\n }\n <span class=\"bmb_dropdown-content-item-text\">\n {{ item.text }}\n </span>\n </bmb-check-external-link-button>\n </li>\n }\n </ul>\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_dropdown-content-modal{background-color:var(--containers-main);border:0;z-index:1;box-shadow:var(--bmb-box-shadow-3);max-height:18rem;overflow:auto;width:100%;border-radius:.5rem;padding:0;margin:.5rem 0 0}.bmb_dropdown-content-container{list-style:none;padding:0;margin:0}.bmb_dropdown-content-item{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item .bmb_check-external-link-button-element{display:flex;align-items:center;background-color:transparent;border:none;padding:.5rem 1rem;text-decoration:none;width:100%;height:3rem;gap:var(--bmb-spacing-m)}.bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{background-color:var(--menu_select-on-surface-hovered);outline:0 none}.bmb_dropdown-content-item-selected{color:var(--menu_select-label-menu-active)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element{background-color:var(--menu_select-surface-activated)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus-visible{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb_dropdown-content-item-filter{position:sticky;top:0;left:0}.bmb_dropdown-content-item-filter-icon{position:absolute;left:.5rem;top:.5rem}.bmb_dropdown-content-item-filter-input{border-radius:.5rem .5rem 0 0;border:.0625rem solid var(--general_contrasts-50);background-color:var(--general_contrasts-input-background);padding:.5rem .5rem .5rem 3rem;color:var(--menu_select-label-menu-inactive);width:100%}.bmb_dropdown-content-item-filter-input:hover,.bmb_dropdown-content-item-filter-input:focus,.bmb_dropdown-content-item-filter-input:focus-visible{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbCheckExternalLinkButtonComponent, selector: "bmb-check-external-link-button", inputs: ["idElement", "link", "target", "disabled", "buttonName"], outputs: ["buttonPress", "buttonClick", "buttonKeyPress"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2849
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbDropdownContentComponent, isStandalone: true, selector: "bmb-dropdown-content", inputs: { selectedOption: { classPropertyName: "selectedOption", publicName: "selectedOption", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, isKeyboardEvent: { classPropertyName: "isKeyboardEvent", publicName: "isKeyboardEvent", isSignal: true, isRequired: false, transformFunction: null }, enableFilter: { classPropertyName: "enableFilter", publicName: "enableFilter", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange", isKeyboardEvent: "isKeyboardEventChange", clickedItem: "clickedItem", isOpen: "isOpenChange" }, ngImport: i0, template: "<div class=\"bmb_dropdown-content-modal\" [tabindex]=\"1\">\n <ul class=\"bmb_dropdown-content-container\" [tabindex]=\"-1\">\n @if (enableFilter()) {\n <li class=\"bmb_dropdown-content-item bmb_dropdown-content-item-filter\">\n <input\n type=\"text\"\n class=\"bmb_dropdown-content-item-filter-input\"\n [placeholder]=\"'dropdown.menu.filter_placeholder' | translate\"\n (input)=\"filterList($event)\"\n />\n <bmb-icon\n class=\"bmb_dropdown-content-item-filter-icon\"\n icon=\"search\"\n [size]=\"24\"\n />\n </li>\n }\n @for (item of filteredItems(); track $index) {\n <li\n class=\"bmb_dropdown-content-item\"\n [ngClass]=\"{\n 'bmb_dropdown-content-item-selected': isSelected(item.value!)\n }\"\n [id]=\"item.idItem\"\n >\n <bmb-check-external-link-button\n [link]=\"item.url!\"\n [target]=\"item.target!\"\n (buttonClick)=\"handleDropdown(item)\"\n >\n @if (!!item.icon) {\n <bmb-icon\n class=\"bmb_dropdown-content-item-icon\"\n [icon]=\"item.icon\"\n [size]=\"24\"\n [dotNotification]=\"item.dotNotification\"\n />\n }\n <span class=\"bmb_dropdown-content-item-text\">\n {{ item.text }}\n </span>\n </bmb-check-external-link-button>\n </li>\n }\n </ul>\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_dropdown-content-modal{background-color:var(--containers-main);border:0;z-index:1;box-shadow:var(--bmb-box-shadow-3);max-height:18rem;overflow:auto;width:100%;border-radius:.5rem;padding:0;margin:.5rem 0 0}.bmb_dropdown-content-container{list-style:none;padding:0;margin:0}.bmb_dropdown-content-item{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item .bmb_check-external-link-button-element{display:flex;align-items:center;background-color:transparent;border:none;padding:.5rem 1rem;text-decoration:none;width:100%;height:3rem;gap:var(--bmb-spacing-m)}.bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{background-color:var(--menu_select-on-surface-hovered);outline:0 none}.bmb_dropdown-content-item-selected{color:var(--menu_select-label-menu-active)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element{background-color:var(--menu_select-surface-activated)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus-visible{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb_dropdown-content-item-filter{position:sticky;top:0;left:0;background-color:var(--containers-main)}.bmb_dropdown-content-item-filter-icon{position:absolute;left:.5rem;top:.5rem}.bmb_dropdown-content-item-filter-input{border-radius:.5rem .5rem 0 0;border:.0625rem solid var(--general_contrasts-50);background-color:var(--general_contrasts-input-background);padding:.5rem .5rem .5rem 3rem;color:var(--menu_select-label-menu-inactive);width:100%}.bmb_dropdown-content-item-filter-input:hover,.bmb_dropdown-content-item-filter-input:focus,.bmb_dropdown-content-item-filter-input:focus-visible{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BmbCheckExternalLinkButtonComponent, selector: "bmb-check-external-link-button", inputs: ["idElement", "link", "target", "disabled", "buttonName"], outputs: ["buttonPress", "buttonClick", "buttonKeyPress"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2790
2850
|
}
|
|
2791
2851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbDropdownContentComponent, decorators: [{
|
|
2792
2852
|
type: Component,
|
|
@@ -2794,7 +2854,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2794
2854
|
CommonModule,
|
|
2795
2855
|
BmbCheckExternalLinkButtonComponent,
|
|
2796
2856
|
BmbIconComponent,
|
|
2797
|
-
|
|
2857
|
+
TranslatePipe,
|
|
2858
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bmb_dropdown-content-modal\" [tabindex]=\"1\">\n <ul class=\"bmb_dropdown-content-container\" [tabindex]=\"-1\">\n @if (enableFilter()) {\n <li class=\"bmb_dropdown-content-item bmb_dropdown-content-item-filter\">\n <input\n type=\"text\"\n class=\"bmb_dropdown-content-item-filter-input\"\n [placeholder]=\"'dropdown.menu.filter_placeholder' | translate\"\n (input)=\"filterList($event)\"\n />\n <bmb-icon\n class=\"bmb_dropdown-content-item-filter-icon\"\n icon=\"search\"\n [size]=\"24\"\n />\n </li>\n }\n @for (item of filteredItems(); track $index) {\n <li\n class=\"bmb_dropdown-content-item\"\n [ngClass]=\"{\n 'bmb_dropdown-content-item-selected': isSelected(item.value!)\n }\"\n [id]=\"item.idItem\"\n >\n <bmb-check-external-link-button\n [link]=\"item.url!\"\n [target]=\"item.target!\"\n (buttonClick)=\"handleDropdown(item)\"\n >\n @if (!!item.icon) {\n <bmb-icon\n class=\"bmb_dropdown-content-item-icon\"\n [icon]=\"item.icon\"\n [size]=\"24\"\n [dotNotification]=\"item.dotNotification\"\n />\n }\n <span class=\"bmb_dropdown-content-item-text\">\n {{ item.text }}\n </span>\n </bmb-check-external-link-button>\n </li>\n }\n </ul>\n</div>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_dropdown-content-modal{background-color:var(--containers-main);border:0;z-index:1;box-shadow:var(--bmb-box-shadow-3);max-height:18rem;overflow:auto;width:100%;border-radius:.5rem;padding:0;margin:.5rem 0 0}.bmb_dropdown-content-container{list-style:none;padding:0;margin:0}.bmb_dropdown-content-item{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item .bmb_check-external-link-button-element{display:flex;align-items:center;background-color:transparent;border:none;padding:.5rem 1rem;text-decoration:none;width:100%;height:3rem;gap:var(--bmb-spacing-m)}.bmb_dropdown-content-item .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item .bmb_check-external-link-button-element:focus-visible{background-color:var(--menu_select-on-surface-hovered);outline:0 none}.bmb_dropdown-content-item-selected{color:var(--menu_select-label-menu-active)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element{background-color:var(--menu_select-surface-activated)}.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:hover,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus,.bmb_dropdown-content-item-selected .bmb_check-external-link-button-element:focus-visible{color:var(--menu_select-label-menu-inactive)}.bmb_dropdown-content-item-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Poppins-Regular,sans-serif;font-size:.875rem}.bmb_dropdown-content-item-filter{position:sticky;top:0;left:0;background-color:var(--containers-main)}.bmb_dropdown-content-item-filter-icon{position:absolute;left:.5rem;top:.5rem}.bmb_dropdown-content-item-filter-input{border-radius:.5rem .5rem 0 0;border:.0625rem solid var(--general_contrasts-50);background-color:var(--general_contrasts-input-background);padding:.5rem .5rem .5rem 3rem;color:var(--menu_select-label-menu-inactive);width:100%}.bmb_dropdown-content-item-filter-input:hover,.bmb_dropdown-content-item-filter-input:focus,.bmb_dropdown-content-item-filter-input:focus-visible{outline:none}\n"] }]
|
|
2798
2859
|
}] });
|
|
2799
2860
|
|
|
2800
2861
|
class BmbDropdownMenuComponent {
|
|
@@ -13327,9 +13388,190 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
13327
13388
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-template #student>\n <section class=\"bmb_profile-info\">\n <bmb-icon-item\n icon=\"calendar_month\"\n label=\"Semestre\"\n [value]=\"_studentData.period\"\n />\n\n <bmb-icon-item\n icon=\"location_on\"\n label=\"Campus\"\n [value]=\"_studentData.campus\"\n />\n\n <bmb-icon-item\n icon=\"library_books\"\n label=\"Programa\"\n [value]=\"_studentData.program\"\n />\n\n @if (_studentData.isExatec && _studentData.linkedin) {\n <bmb-icon-item\n icon=\"work_history\"\n label=\"Historial Laboral\"\n [value]=\"_studentData.linkedin\"\n />\n } @else if (!_studentData.isExatec && _studentData.curp) {\n <bmb-icon-item\n icon=\"assignment_ind\"\n label=\"Curp\"\n [value]=\"_studentData.curp\"\n />\n }\n </section>\n</ng-template>\n\n<ng-template #collaborator>\n <section class=\"bmb_profile-info\">\n <bmb-icon-item\n icon=\"id_card\"\n label=\"Puesto\"\n [value]=\"collaboratorData()?.position!\"\n />\n\n <bmb-icon-item\n icon=\"location_on\"\n label=\"\u00C1rea\"\n [value]=\"collaboratorData()?.area!\"\n [showDivider]=\"false\"\n />\n </section>\n <section class=\"bmb_profile-access\">\n <h2 class=\"bmb_profile-title\">Mi L\u00EDder</h2>\n <bmb-container-button\n [title]=\"collaboratorData()?.leader?.userData?.name!\"\n [subtitle]=\"collaboratorData()?.leader?.userData?.email!\"\n [iconLeft]=\"collaboratorData()?.leader?.userData?.userImg!\"\n [isUserImage]=\"true\"\n [link]=\"collaboratorData()?.leader?.hierarchyLink!\"\n [target]=\"collaboratorData()?.leader?.hierarchyTarget!\"\n (onButton)=\"handleButtonClick(collaboratorData()?.leader?.userData)\"\n />\n <h2 class=\"bmb_profile-title\">Mi Generalista</h2>\n <bmb-container-button\n [title]=\"collaboratorData()?.generalist?.userData?.name!\"\n [subtitle]=\"collaboratorData()?.generalist?.userData?.email!\"\n [iconLeft]=\"collaboratorData()?.generalist?.userData?.userImg!\"\n [isUserImage]=\"true\"\n [link]=\"collaboratorData()?.generalist?.hierarchyLink!\"\n [target]=\"collaboratorData()?.generalist?.hierarchyTarget!\"\n (onButton)=\"handleButtonClick(collaboratorData()?.generalist?.userData)\"\n />\n </section>\n</ng-template>\n\n<ng-template #content>\n <section class=\"bmb_profile\">\n <bmb-user-summary-content\n [isProfile]=\"true\"\n [name]=\"getUserData().name!\"\n [userId]=\"getUserData().registration!\"\n [image]=\"getUserData().userImg\"\n [email]=\"getUserData().email\"\n contentLayout=\"row\"\n [isImageBordered]=\"false\"\n />\n @if (!isStandAlone()) {\n @if (isStudent()) {\n <ng-container [ngTemplateOutlet]=\"student\" />\n } @else {\n <ng-container [ngTemplateOutlet]=\"collaborator\" />\n }\n }\n @if (enableLangChange() && isStandAlone()) {\n <section class=\"bmb_profile-info-container theme\">\n <div class=\"bmb_profile-info-container-item\">\n <bmb-icon [icon]=\"'language'\" [size]=\"24\" />\n <span class=\"bmb_profile-info-container-item-text\">Idioma</span>\n </div>\n <div class=\"bmb_profile-lang-container\">\n <bmb-radial\n id=\"es\"\n value=\"es\"\n name=\"language\"\n label=\"ES\"\n [checked]=\"true\"\n [required]=\"true\"\n [disabled]=\"false\"\n [control]=\"langFormControl\"\n (change)=\"handleRadial('es')\"\n />\n <bmb-radial\n id=\"en\"\n value=\"en\"\n name=\"language\"\n label=\"EN\"\n [checked]=\"false\"\n [required]=\"true\"\n [disabled]=\"false\"\n [control]=\"langFormControl\"\n (change)=\"handleRadial('en')\"\n />\n </div>\n </section>\n <bmb-divider />\n }\n <section class=\"bmb_profile-info-container theme\">\n <div class=\"bmb_profile-info-container-item\">\n <bmb-icon [icon]=\"'palette'\" [size]=\"24\" />\n <span class=\"bmb_profile-info-container-item-text\">Tema</span>\n </div>\n <bmb-theme leftText=\"Light\" rightText=\"Dark\" [showControls]=\"true\" />\n </section>\n @if (isMobile() && !isStandAlone()) {\n <section class=\"bmb_profile-access\">\n <bmb-container-button\n title=\"ID Digital\"\n iconLeft=\"person\"\n iconRight=\"chevron_right\"\n [link]=\"idDigitalLink()\"\n [target]=\"targetLinks()!\"\n />\n <bmb-container-button\n title=\"Acceso a Campus\"\n iconLeft=\"qr_code\"\n iconRight=\"chevron_right\"\n [link]=\"campusAcessLink()\"\n [target]=\"targetLinks()!\"\n />\n <bmb-container-button\n title=\"TecServices\"\n iconLeft=\"forum\"\n iconRight=\"chevron_right\"\n [link]=\"tecServicesLink()\"\n [target]=\"targetLinks()!\"\n />\n </section>\n <div class=\"bmb_profile-version\">\n {{ versionLabel() }}\n </div>\n }\n <section class=\"bmb_profile-close\">\n <button\n bmbButton\n appearance=\"destructive\"\n icon=\"logout\"\n size=\"large\"\n position=\"left\"\n (click)=\"closeSession()\"\n >\n Cerrar Sesi\u00F3n\n </button>\n </section>\n </section>\n</ng-template>\n\n@if (isStandAlone()) {\n <section class=\"bmb_profile-stand_alone\">\n <ng-container [ngTemplateOutlet]=\"content\" />\n </section>\n} @else if (isMobile()) {\n <bmb-mobile-templates\n [title]=\"'Mi Perfil'\"\n (externalLinkOnClose)=\"closeProfile()\"\n >\n <ng-template #bmbTemplateMain>\n <ng-container [ngTemplateOutlet]=\"content\" />\n </ng-template>\n </bmb-mobile-templates>\n} @else {\n <bmb-home-card\n icon=\"person\"\n bgIconAppearance=\"green-light\"\n title=\"Mi perfil\"\n [showRightButton]=\"false\"\n contentPadding=\"l\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </bmb-home-card>\n}\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_profile{padding:1.375rem 1rem}.bmb_profile-info{margin-top:2.375rem}.bmb_profile-info-container{width:100%;display:flex;flex-direction:row;padding:1.375rem 0 1rem;align-items:center;justify-content:space-between}.bmb_profile-info-container-item{display:flex;align-items:center}.bmb_profile-info-container-item-text{font-family:Poppins-Bold,sans-serif;font-size:1rem;margin-left:1rem}.bmb_profile-access{display:flex;flex-direction:column;gap:1rem;margin-top:1.375rem}.bmb_profile-title{display:flex;padding:0 1.5rem;align-items:center;gap:.5rem;font-family:Poppins-Regular,sans-serif;font-size:1rem;color:var(--general_contrasts-75)}.bmb_profile-version{margin-top:1rem;font-family:Poppins-Regular,sans-serif;font-size:.75rem;color:var(--general_contrasts-75);font-weight:400;text-align:center}.bmb_profile-close{margin-top:1.5625rem}.bmb_profile-stand_alone{max-width:26.4375rem;padding:1.5rem;gap:1rem;border-radius:1.5rem;border:.0625rem solid var(--general_contrasts-container-outline);background:var(--containers-background);box-shadow:var(--bmb-box-shadow-3)}.bmb_profile-stand_alone .bmb_profile{padding:0}.bmb_profile-lang-container{display:flex;gap:1rem}\n"] }]
|
|
13328
13389
|
}] });
|
|
13329
13390
|
|
|
13391
|
+
class BmbFormValidatorComponent {
|
|
13392
|
+
constructor() {
|
|
13393
|
+
this.formGroup = model(new FormGroup({}));
|
|
13394
|
+
this.formGroupState = output();
|
|
13395
|
+
}
|
|
13396
|
+
ngAfterViewInit() {
|
|
13397
|
+
this.addControls();
|
|
13398
|
+
}
|
|
13399
|
+
addControls() {
|
|
13400
|
+
this.bmbInputs.forEach((child) => {
|
|
13401
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13402
|
+
});
|
|
13403
|
+
this.bmbDropdowns.forEach((child) => {
|
|
13404
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13405
|
+
});
|
|
13406
|
+
this.bmbInputPhoneNumbers.forEach((child) => {
|
|
13407
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13408
|
+
});
|
|
13409
|
+
this.bmbInputTags.forEach((child) => {
|
|
13410
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13411
|
+
});
|
|
13412
|
+
this.bmbDatepickers.forEach((child) => {
|
|
13413
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13414
|
+
});
|
|
13415
|
+
this.bmbDateRanges.forEach((child) => {
|
|
13416
|
+
this.addControl(`${child.name()}_start`, child.controlStart(), child.isControlStartNull);
|
|
13417
|
+
this.addControl(`${child.name()}_end`, child.controlEnd(), child.isControlEndNull);
|
|
13418
|
+
});
|
|
13419
|
+
this.bmbCheckboxes.forEach((child) => {
|
|
13420
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13421
|
+
});
|
|
13422
|
+
this.bmbRadials.forEach((child) => {
|
|
13423
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13424
|
+
});
|
|
13425
|
+
this.bmbSwitches.forEach((child) => {
|
|
13426
|
+
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13427
|
+
});
|
|
13428
|
+
}
|
|
13429
|
+
addControl(controlName, control, isControlNull) {
|
|
13430
|
+
if (!this.getFormControl(controlName)) {
|
|
13431
|
+
this.formGroup().addControl(controlName, control);
|
|
13432
|
+
}
|
|
13433
|
+
else {
|
|
13434
|
+
if (isControlNull)
|
|
13435
|
+
this.formGroup().setControl(controlName, control);
|
|
13436
|
+
}
|
|
13437
|
+
}
|
|
13438
|
+
addRadials() {
|
|
13439
|
+
const radialNames = this.bmbRadials.reduce((acc, currentElement) => {
|
|
13440
|
+
if (acc.includes(currentElement.name()))
|
|
13441
|
+
return acc;
|
|
13442
|
+
return [...acc, currentElement.name()];
|
|
13443
|
+
}, []);
|
|
13444
|
+
radialNames.forEach((name) => {
|
|
13445
|
+
const radialIndexWithSameName = this.bmbRadials.reduce((acc, currentElement, index) => {
|
|
13446
|
+
if (currentElement.name() === name)
|
|
13447
|
+
return [...acc, index];
|
|
13448
|
+
return acc;
|
|
13449
|
+
}, []);
|
|
13450
|
+
const radialControl = this.bmbRadials.get(radialIndexWithSameName[0]);
|
|
13451
|
+
if (this.bmbRadials
|
|
13452
|
+
.filter((element) => element.name() === name)
|
|
13453
|
+
.every((elementSelected) => !elementSelected.isControlNull)) {
|
|
13454
|
+
this.addControl(radialControl.name(), radialControl.control(), false);
|
|
13455
|
+
return;
|
|
13456
|
+
}
|
|
13457
|
+
const value = this.bmbRadials
|
|
13458
|
+
.filter((element) => element.name() === name)
|
|
13459
|
+
?.find((elementSelected) => elementSelected.checked())
|
|
13460
|
+
?.control()?.value;
|
|
13461
|
+
radialControl.control()?.setValue(value);
|
|
13462
|
+
radialIndexWithSameName.slice(1).forEach((element) => {
|
|
13463
|
+
this.bmbRadials.get(element)?.control.set(radialControl.control());
|
|
13464
|
+
});
|
|
13465
|
+
this.addControl(radialControl.name(), radialControl.control(), false);
|
|
13466
|
+
});
|
|
13467
|
+
}
|
|
13468
|
+
onSubmit() {
|
|
13469
|
+
this.formGroup().updateValueAndValidity();
|
|
13470
|
+
this.formGroup().markAllAsTouched();
|
|
13471
|
+
this.updateErrorState();
|
|
13472
|
+
this.formGroupState.emit(this.formGroup());
|
|
13473
|
+
}
|
|
13474
|
+
updateErrorState() {
|
|
13475
|
+
Object.keys(this.formGroup().controls).forEach((field) => {
|
|
13476
|
+
const control = this.getFormControl(field);
|
|
13477
|
+
if (!!control) {
|
|
13478
|
+
handleValidity(control);
|
|
13479
|
+
}
|
|
13480
|
+
});
|
|
13481
|
+
}
|
|
13482
|
+
getFormControl(name) {
|
|
13483
|
+
return this.formGroup().get(name);
|
|
13484
|
+
}
|
|
13485
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbFormValidatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13486
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbFormValidatorComponent, isStandalone: true, selector: "bmb-form-validator", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formGroup: "formGroupChange", formGroupState: "formGroupState" }, queries: [{ propertyName: "bmbInputs", predicate: BmbInputComponent, descendants: true }, { propertyName: "bmbDropdowns", predicate: BmbDropdownComponent, descendants: true }, { propertyName: "bmbInputPhoneNumbers", predicate: BmbInputPhoneNumberComponent, descendants: true }, { propertyName: "bmbInputTags", predicate: BmbInputTagsComponent, descendants: true }, { propertyName: "bmbDatepickers", predicate: BmbDatepickerComponent, descendants: true }, { propertyName: "bmbDateRanges", predicate: BmbDateRangeComponent, descendants: true }, { propertyName: "bmbCheckboxes", predicate: BmbCheckboxComponent, descendants: true }, { propertyName: "bmbRadials", predicate: BmbRadialComponent, descendants: true }, { propertyName: "bmbSwitches", predicate: BmbSwitchComponent, descendants: true }], ngImport: i0, template: `
|
|
13487
|
+
<form [formGroup]="formGroup()" (ngSubmit)="onSubmit()">
|
|
13488
|
+
<ng-content />
|
|
13489
|
+
</form>
|
|
13490
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
13491
|
+
}
|
|
13492
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbFormValidatorComponent, decorators: [{
|
|
13493
|
+
type: Component,
|
|
13494
|
+
args: [{
|
|
13495
|
+
selector: 'bmb-form-validator',
|
|
13496
|
+
standalone: true,
|
|
13497
|
+
imports: [CommonModule, ReactiveFormsModule],
|
|
13498
|
+
template: `
|
|
13499
|
+
<form [formGroup]="formGroup()" (ngSubmit)="onSubmit()">
|
|
13500
|
+
<ng-content />
|
|
13501
|
+
</form>
|
|
13502
|
+
`,
|
|
13503
|
+
encapsulation: ViewEncapsulation.None,
|
|
13504
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13505
|
+
}]
|
|
13506
|
+
}], propDecorators: { bmbInputs: [{
|
|
13507
|
+
type: ContentChildren,
|
|
13508
|
+
args: [BmbInputComponent, { descendants: true }]
|
|
13509
|
+
}], bmbDropdowns: [{
|
|
13510
|
+
type: ContentChildren,
|
|
13511
|
+
args: [BmbDropdownComponent, { descendants: true }]
|
|
13512
|
+
}], bmbInputPhoneNumbers: [{
|
|
13513
|
+
type: ContentChildren,
|
|
13514
|
+
args: [BmbInputPhoneNumberComponent, { descendants: true }]
|
|
13515
|
+
}], bmbInputTags: [{
|
|
13516
|
+
type: ContentChildren,
|
|
13517
|
+
args: [BmbInputTagsComponent, { descendants: true }]
|
|
13518
|
+
}], bmbDatepickers: [{
|
|
13519
|
+
type: ContentChildren,
|
|
13520
|
+
args: [BmbDatepickerComponent, { descendants: true }]
|
|
13521
|
+
}], bmbDateRanges: [{
|
|
13522
|
+
type: ContentChildren,
|
|
13523
|
+
args: [BmbDateRangeComponent, { descendants: true }]
|
|
13524
|
+
}], bmbCheckboxes: [{
|
|
13525
|
+
type: ContentChildren,
|
|
13526
|
+
args: [BmbCheckboxComponent, { descendants: true }]
|
|
13527
|
+
}], bmbRadials: [{
|
|
13528
|
+
type: ContentChildren,
|
|
13529
|
+
args: [BmbRadialComponent, { descendants: true }]
|
|
13530
|
+
}], bmbSwitches: [{
|
|
13531
|
+
type: ContentChildren,
|
|
13532
|
+
args: [BmbSwitchComponent, { descendants: true }]
|
|
13533
|
+
}] } });
|
|
13534
|
+
|
|
13535
|
+
class BmbTextEditorPromptComponent {
|
|
13536
|
+
constructor() {
|
|
13537
|
+
this.type = input.required();
|
|
13538
|
+
this.formValues = output();
|
|
13539
|
+
this.cancelForm = output();
|
|
13540
|
+
this.formGroup = new FormGroup({});
|
|
13541
|
+
}
|
|
13542
|
+
getFormControl(name) {
|
|
13543
|
+
return this.formGroup.get(name);
|
|
13544
|
+
}
|
|
13545
|
+
handleFormGroupState() {
|
|
13546
|
+
if (this.formGroup.valid) {
|
|
13547
|
+
const values = this.formGroup.getRawValue();
|
|
13548
|
+
this.formValues.emit(values);
|
|
13549
|
+
}
|
|
13550
|
+
}
|
|
13551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13552
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbTextEditorPromptComponent, isStandalone: true, selector: "app-bmb-text-editor-prompt", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formValues: "formValues", cancelForm: "cancelForm" }, ngImport: i0, template: "<div class=\"bmb_text-editor-prompt\">\n <bmb-card>\n <bmb-card-content padding=\"l\">\n <bmb-form-validator\n [(formGroup)]=\"formGroup\"\n (formGroupState)=\"handleFormGroupState()\"\n >\n <section bmbVerticalLayout margin=\"none\">\n <div bmbVerticalLayoutItem>\n <bmb-input\n inputId=\"prompt_url\"\n name=\"prompt_url\"\n [label]=\"\n type() === 'link'\n ? ('text_editor.prompt.link.link_label' | translate)\n : ('text_editor.prompt.image.image_label' | translate)\"\n [isRequired]=\"true\"\n [helperMessage]=\"\n type() === 'link'\n ? ('text_editor.prompt.link.link_helper' | translate)\n : ('text_editor.prompt.image.image_helper' | translate)\n \"\n [placeholder]=\"\n type() === 'link'\n ? ('text_editor.prompt.link.link_placeholder' | translate)\n : ('text_editor.prompt.image.image_placeholder' | translate)\n \"\n />\n </div>\n @switch (type()) {\n @case ('link') {\n <div bmbVerticalLayoutItem>\n <h3>\n {{ 'text_editor.prompt.link.target_helper' | translate }}\n </h3>\n <div bmbLayout margin=\"none\" gapSize=\"none\">\n <bmb-radial\n inputId=\"target_blank\"\n name=\"target\"\n label=\"Blank\"\n value=\"_blank\"\n [control]=\"getFormControl('target')\"\n bmbLayoutItem\n [colSm]=\"2\"\n />\n <bmb-radial\n inputId=\"target_self\"\n name=\"target\"\n label=\"Self\"\n value=\"_self\"\n bmbLayoutItem\n [control]=\"getFormControl('target')\"\n [colSm]=\"2\"\n />\n <bmb-radial\n inputId=\"target_parent\"\n name=\"target\"\n label=\"Parent\"\n value=\"_parent\"\n bmbLayoutItem\n [control]=\"getFormControl('target')\"\n [colSm]=\"2\"\n />\n <bmb-radial\n inputId=\"target_top\"\n name=\"target\"\n label=\"Top\"\n value=\"_top\"\n bmbLayoutItem\n [control]=\"getFormControl('target')\"\n [colSm]=\"2\"\n />\n </div>\n </div>\n <div bmbVerticalLayoutItem>\n <bmb-checkbox\n inputId=\"add_rel\"\n name=\"rel\"\n [checked]=\"true\"\n [label]=\"'text_editor.prompt.link.rel_label' | translate\"\n />\n </div>\n }\n @case ('image') {\n <div bmbVerticalLayoutItem>\n <bmb-input\n inputId=\"prompt_alt\"\n name=\"prompt_alt\"\n [label]=\"'text_editor.prompt.image.alt_label' | translate\"\n [helperMessage]=\"\n 'text_editor.prompt.image.alt_helper' | translate\n \"\n [placeholder]=\"\n 'text_editor.prompt.image.alt_placeholder' | translate\n \"\n />\n </div>\n }\n }\n <footer bmbVerticalLayoutItem>\n <div bmbLayout margin=\"none\" gapSize=\"m\">\n <button\n bmbLayoutItem\n [colSm]=\"4\"\n bmbButton\n appearance=\"primary\"\n type=\"submit\"\n >\n {{ 'text_editor.prompt.primary_button' | translate }}\n </button>\n <button\n bmbLayoutItem\n [colSm]=\"4\"\n bmbButton\n appearance=\"secondary-outlined\"\n type=\"button\"\n (click)=\"cancelForm.emit()\"\n >\n {{ 'text_editor.prompt.secondary_button' | translate }}\n </button>\n </div>\n </footer>\n </section>\n </bmb-form-validator>\n </bmb-card-content>\n </bmb-card>\n</div>\n", styles: [".bmb_text-editor-prompt{width:clamp(300px,90vw,400px)}\n"], dependencies: [{ kind: "component", type: BmbCardComponent, selector: "bmb-card", inputs: ["borderRadius", "margin", "type", "state", "boxShadowStyle", "borderColor", "alternative"] }, { kind: "component", type: BmbFormValidatorComponent, selector: "bmb-form-validator", inputs: ["formGroup"], outputs: ["formGroupChange", "formGroupState"] }, { kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbCardContentComponent, selector: "bmb-card-content", inputs: ["padding", "colorBackground", "setBorderRadius"] }, { kind: "component", type: BmbInputComponent, selector: "bmb-input", inputs: ["label", "type", "placeholder", "icon", "appearance", "errorMessage", "helperMessage", "disabled", "isRequired", "name", "spellcheck", "jsonFormat", "heightTextArea", "maxlength", "minlength", "pattern", "size", "max", "min", "id", "value", "autocomplete", "tooltip", "rows", "showMaxTextLength", "additionalAction", "tooltipPosition", "isClearable", "customValidation", "showError", "control"], outputs: ["showErrorChange", "controlChange", "isFocus", "isBlur", "onChange", "onKeyDown"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BmbCheckboxComponent, selector: "bmb-checkbox", inputs: ["name", "id", "disabled", "required", "value", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "errorMessage", "helperMessage", "customValidation", "control", "checked", "showError", "indeterminate", "inputId"], outputs: ["controlChange", "checkedChange", "showErrorChange", "indeterminateChange", "inputIdChange", "change"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems", "isContainerQuery"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "directive", type: BmbVerticalLayoutDirective, selector: "[bmbVerticalLayout]", inputs: ["gapSize", "justify", "alignItems", "layoutHeight"] }, { kind: "directive", type: BmbVerticalLayoutItemDirective, selector: "[bmbVerticalLayoutItem]", inputs: ["rowGrow"] }, { kind: "component", type: BmbRadialComponent, selector: "bmb-radial", inputs: ["id", "checked", "disabled", "value", "name", "label", "labelPosition", "ariaDescribedby", "ariaLabel", "ariaLabelledby", "required", "errorMessage", "helperMessage", "showError", "control", "inputId"], outputs: ["showErrorChange", "controlChange", "inputIdChange", "change", "onKeyDown"] }] }); }
|
|
13553
|
+
}
|
|
13554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorPromptComponent, decorators: [{
|
|
13555
|
+
type: Component,
|
|
13556
|
+
args: [{ selector: 'app-bmb-text-editor-prompt', standalone: true, imports: [
|
|
13557
|
+
BmbCardComponent,
|
|
13558
|
+
BmbFormValidatorComponent,
|
|
13559
|
+
BmbButtonDirective,
|
|
13560
|
+
BmbCardContentComponent,
|
|
13561
|
+
BmbInputComponent,
|
|
13562
|
+
TranslatePipe,
|
|
13563
|
+
BmbCheckboxComponent,
|
|
13564
|
+
BmbLayoutDirective,
|
|
13565
|
+
BmbLayoutItemDirective,
|
|
13566
|
+
BmbVerticalLayoutDirective,
|
|
13567
|
+
BmbVerticalLayoutItemDirective,
|
|
13568
|
+
BmbRadialComponent,
|
|
13569
|
+
], template: "<div class=\"bmb_text-editor-prompt\">\n <bmb-card>\n <bmb-card-content padding=\"l\">\n <bmb-form-validator\n [(formGroup)]=\"formGroup\"\n (formGroupState)=\"handleFormGroupState()\"\n >\n <section bmbVerticalLayout margin=\"none\">\n <div bmbVerticalLayoutItem>\n <bmb-input\n inputId=\"prompt_url\"\n name=\"prompt_url\"\n [label]=\"\n type() === 'link'\n ? ('text_editor.prompt.link.link_label' | translate)\n : ('text_editor.prompt.image.image_label' | translate)\"\n [isRequired]=\"true\"\n [helperMessage]=\"\n type() === 'link'\n ? ('text_editor.prompt.link.link_helper' | translate)\n : ('text_editor.prompt.image.image_helper' | translate)\n \"\n [placeholder]=\"\n type() === 'link'\n ? ('text_editor.prompt.link.link_placeholder' | translate)\n : ('text_editor.prompt.image.image_placeholder' | translate)\n \"\n />\n </div>\n @switch (type()) {\n @case ('link') {\n <div bmbVerticalLayoutItem>\n <h3>\n {{ 'text_editor.prompt.link.target_helper' | translate }}\n </h3>\n <div bmbLayout margin=\"none\" gapSize=\"none\">\n <bmb-radial\n inputId=\"target_blank\"\n name=\"target\"\n label=\"Blank\"\n value=\"_blank\"\n [control]=\"getFormControl('target')\"\n bmbLayoutItem\n [colSm]=\"2\"\n />\n <bmb-radial\n inputId=\"target_self\"\n name=\"target\"\n label=\"Self\"\n value=\"_self\"\n bmbLayoutItem\n [control]=\"getFormControl('target')\"\n [colSm]=\"2\"\n />\n <bmb-radial\n inputId=\"target_parent\"\n name=\"target\"\n label=\"Parent\"\n value=\"_parent\"\n bmbLayoutItem\n [control]=\"getFormControl('target')\"\n [colSm]=\"2\"\n />\n <bmb-radial\n inputId=\"target_top\"\n name=\"target\"\n label=\"Top\"\n value=\"_top\"\n bmbLayoutItem\n [control]=\"getFormControl('target')\"\n [colSm]=\"2\"\n />\n </div>\n </div>\n <div bmbVerticalLayoutItem>\n <bmb-checkbox\n inputId=\"add_rel\"\n name=\"rel\"\n [checked]=\"true\"\n [label]=\"'text_editor.prompt.link.rel_label' | translate\"\n />\n </div>\n }\n @case ('image') {\n <div bmbVerticalLayoutItem>\n <bmb-input\n inputId=\"prompt_alt\"\n name=\"prompt_alt\"\n [label]=\"'text_editor.prompt.image.alt_label' | translate\"\n [helperMessage]=\"\n 'text_editor.prompt.image.alt_helper' | translate\n \"\n [placeholder]=\"\n 'text_editor.prompt.image.alt_placeholder' | translate\n \"\n />\n </div>\n }\n }\n <footer bmbVerticalLayoutItem>\n <div bmbLayout margin=\"none\" gapSize=\"m\">\n <button\n bmbLayoutItem\n [colSm]=\"4\"\n bmbButton\n appearance=\"primary\"\n type=\"submit\"\n >\n {{ 'text_editor.prompt.primary_button' | translate }}\n </button>\n <button\n bmbLayoutItem\n [colSm]=\"4\"\n bmbButton\n appearance=\"secondary-outlined\"\n type=\"button\"\n (click)=\"cancelForm.emit()\"\n >\n {{ 'text_editor.prompt.secondary_button' | translate }}\n </button>\n </div>\n </footer>\n </section>\n </bmb-form-validator>\n </bmb-card-content>\n </bmb-card>\n</div>\n", styles: [".bmb_text-editor-prompt{width:clamp(300px,90vw,400px)}\n"] }]
|
|
13570
|
+
}] });
|
|
13571
|
+
|
|
13330
13572
|
class BmbTextEditorComponent {
|
|
13331
13573
|
detectAlignment() {
|
|
13332
|
-
const selection =
|
|
13574
|
+
const selection = globalThis.getSelection();
|
|
13333
13575
|
if (selection && selection.rangeCount > 0) {
|
|
13334
13576
|
const element = selection.getRangeAt(0)
|
|
13335
13577
|
.commonAncestorContainer;
|
|
@@ -13344,19 +13586,24 @@ class BmbTextEditorComponent {
|
|
|
13344
13586
|
this.execCommand('styleWithCSS', 'true');
|
|
13345
13587
|
this.execCommand('justify' + alignment.charAt(0).toUpperCase() + alignment.slice(1));
|
|
13346
13588
|
}
|
|
13347
|
-
constructor(sanitizer) {
|
|
13589
|
+
constructor(sanitizer, projectionContent) {
|
|
13348
13590
|
this.sanitizer = sanitizer;
|
|
13591
|
+
this.projectionContent = projectionContent;
|
|
13349
13592
|
this.control = input(new FormControl(''));
|
|
13350
13593
|
this.sanitizedContent = signal('');
|
|
13351
13594
|
this.currentAlignment = 'left';
|
|
13352
13595
|
this.showTableDialog = false;
|
|
13353
13596
|
this.tableRows = 2;
|
|
13354
13597
|
this.tableColumns = 2;
|
|
13598
|
+
this.userSelection = null;
|
|
13355
13599
|
}
|
|
13356
13600
|
ngOnInit() {
|
|
13357
|
-
this.sanitizedContent.set(
|
|
13601
|
+
this.sanitizedContent.set(
|
|
13602
|
+
// NOSONAR: Initial content sanitization
|
|
13603
|
+
this.sanitizer.bypassSecurityTrustHtml(this.control().value || ''));
|
|
13358
13604
|
this.control().valueChanges?.subscribe((value) => {
|
|
13359
13605
|
if (value === null) {
|
|
13606
|
+
// NOSONAR: Clear content sanitization
|
|
13360
13607
|
this.sanitizedContent.set(this.sanitizer.bypassSecurityTrustHtml(''));
|
|
13361
13608
|
}
|
|
13362
13609
|
});
|
|
@@ -13371,15 +13618,61 @@ class BmbTextEditorComponent {
|
|
|
13371
13618
|
}
|
|
13372
13619
|
}
|
|
13373
13620
|
execCommand(command, value = null) {
|
|
13621
|
+
if (this.userSelection) {
|
|
13622
|
+
const selection = globalThis.getSelection();
|
|
13623
|
+
if (selection) {
|
|
13624
|
+
selection.removeAllRanges();
|
|
13625
|
+
selection.addRange(this.userSelection);
|
|
13626
|
+
}
|
|
13627
|
+
}
|
|
13374
13628
|
document.execCommand(command, false, value || undefined);
|
|
13375
13629
|
this.updateContent();
|
|
13630
|
+
this.userSelection = null;
|
|
13631
|
+
}
|
|
13632
|
+
openPrompt(type, event) {
|
|
13633
|
+
this.userSelection = globalThis.getSelection()?.getRangeAt(0) || null;
|
|
13634
|
+
const buttonNode = event.currentTarget;
|
|
13635
|
+
this.projectionContent.openContent({
|
|
13636
|
+
content: BmbTextEditorPromptComponent,
|
|
13637
|
+
inputContext: { type },
|
|
13638
|
+
outputContext: {
|
|
13639
|
+
formValues: (values) => this.handleClosePrompt({ ...values, type }),
|
|
13640
|
+
cancelForm: () => this.projectionContent.closeContent(),
|
|
13641
|
+
},
|
|
13642
|
+
targetRef: buttonNode,
|
|
13643
|
+
});
|
|
13376
13644
|
}
|
|
13377
|
-
|
|
13378
|
-
|
|
13379
|
-
|
|
13380
|
-
|
|
13645
|
+
handleClosePrompt(values) {
|
|
13646
|
+
if (values['type'] === 'link' && values['prompt_url']) {
|
|
13647
|
+
this.insertLink(values);
|
|
13648
|
+
}
|
|
13649
|
+
else if (values['type'] === 'image' && values['prompt_url']) {
|
|
13650
|
+
this.insertImage(values);
|
|
13651
|
+
}
|
|
13652
|
+
this.projectionContent.closeContent();
|
|
13653
|
+
}
|
|
13654
|
+
insertLink(values) {
|
|
13655
|
+
const selection = globalThis.getSelection();
|
|
13656
|
+
if (!selection || selection.rangeCount === 0 || !values['prompt_url']) {
|
|
13657
|
+
return;
|
|
13658
|
+
}
|
|
13659
|
+
this.execCommand('createLink', values['prompt_url']);
|
|
13660
|
+
const range = selection.getRangeAt(0);
|
|
13661
|
+
const parentNode = range.commonAncestorContainer.parentNode;
|
|
13662
|
+
if (parentNode && parentNode instanceof HTMLAnchorElement) {
|
|
13663
|
+
parentNode.target = values['target'] || '_self';
|
|
13664
|
+
if (values['rel']) {
|
|
13665
|
+
parentNode.rel = 'noopener noreferrer';
|
|
13666
|
+
}
|
|
13381
13667
|
}
|
|
13382
13668
|
}
|
|
13669
|
+
insertImage(values) {
|
|
13670
|
+
const selection = globalThis.getSelection();
|
|
13671
|
+
if (!selection || selection.rangeCount === 0 || !values['prompt_url']) {
|
|
13672
|
+
return;
|
|
13673
|
+
}
|
|
13674
|
+
this.execCommand('insertImage', values['prompt_url']);
|
|
13675
|
+
}
|
|
13383
13676
|
updateContent() {
|
|
13384
13677
|
this.control().setValue(this.editor.nativeElement.innerHTML);
|
|
13385
13678
|
}
|
|
@@ -13390,17 +13683,6 @@ class BmbTextEditorComponent {
|
|
|
13390
13683
|
getCurrentState() {
|
|
13391
13684
|
return this.control().value;
|
|
13392
13685
|
}
|
|
13393
|
-
insertImage() {
|
|
13394
|
-
const url = prompt('Ingrese la URL de la imagen:');
|
|
13395
|
-
if (url) {
|
|
13396
|
-
if (this.isValidImageUrl(url)) {
|
|
13397
|
-
this.execCommand('insertImage', url);
|
|
13398
|
-
}
|
|
13399
|
-
else {
|
|
13400
|
-
alert('La URL de la imagen no es válida.');
|
|
13401
|
-
}
|
|
13402
|
-
}
|
|
13403
|
-
}
|
|
13404
13686
|
isValidImageUrl(url) {
|
|
13405
13687
|
try {
|
|
13406
13688
|
new URL(url); // Intenta crear un objeto URL
|
|
@@ -13443,7 +13725,7 @@ class BmbTextEditorComponent {
|
|
|
13443
13725
|
}
|
|
13444
13726
|
// Método para insertar HTML en el editor
|
|
13445
13727
|
insertHtml(html) {
|
|
13446
|
-
const selection =
|
|
13728
|
+
const selection = globalThis.getSelection();
|
|
13447
13729
|
if (selection && selection.rangeCount > 0) {
|
|
13448
13730
|
const range = selection.getRangeAt(0);
|
|
13449
13731
|
const div = document.createElement('div');
|
|
@@ -13452,13 +13734,13 @@ class BmbTextEditorComponent {
|
|
|
13452
13734
|
this.updateContent();
|
|
13453
13735
|
}
|
|
13454
13736
|
}
|
|
13455
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorComponent, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13456
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbTextEditorComponent, isStandalone: true, selector: "bmb-text-editor", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertLink()\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertImage()\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"], dependencies: [{ kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
13737
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorComponent, deps: [{ token: i1$2.DomSanitizer }, { token: BmbProjectionContentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13738
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbTextEditorComponent, isStandalone: true, selector: "bmb-text-editor", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('link', $event)\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('image', $event)\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"], dependencies: [{ kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbIconComponent, selector: "bmb-icon", inputs: ["icon", "materialIcon", "styleIcon", "isFill", "fontWeight", "size", "alt", "dotNotification"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
13457
13739
|
}
|
|
13458
13740
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbTextEditorComponent, decorators: [{
|
|
13459
13741
|
type: Component,
|
|
13460
|
-
args: [{ selector: 'bmb-text-editor', standalone: true, imports: [BmbButtonDirective, BmbIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertLink()\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"insertImage()\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"] }]
|
|
13461
|
-
}], ctorParameters: () => [{ type: i1$2.DomSanitizer }], propDecorators: { editor: [{
|
|
13742
|
+
args: [{ selector: 'bmb-text-editor', standalone: true, imports: [BmbButtonDirective, BmbIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"bmb_text-editor\">\n <header class=\"bmb_text-editor-header\">\n <span class=\"bmb_text-editor-header-group\">\n <select\n id=\"BmbTextEditorSelect\"\n class=\"bmb_text-editor-header-select\"\n (change)=\"handleChange($event, 'formatBlock')\"\n title=\"Estilo de p\u00E1rrafo\"\n >\n <option value=\"p\">P\u00E1rrafo</option>\n <option value=\"h1\">T\u00EDtulo 1</option>\n <option value=\"h2\">T\u00EDtulo 2</option>\n <option value=\"h3\">T\u00EDtulo 3</option>\n <option value=\"blockquote\">Cita</option>\n </select>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('bold')\"\n title=\"Negrita\"\n >\n <bmb-icon icon=\"format_bold\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('italic')\"\n title=\"Cursiva\"\n >\n <bmb-icon icon=\"format_italic\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('underline')\"\n title=\"Subrayado\"\n >\n <bmb-icon icon=\"format_underlined\" [size]=\"24\" />\n </button>\n <input\n id=\"BmbTextEditorColor\"\n type=\"color\"\n (change)=\"handleChange($event, 'foreColor')\"\n title=\"Color de texto\"\n />\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('left')\"\n [class.active]=\"currentAlignment === 'left'\"\n title=\"Alinear a la izquierda\"\n >\n <bmb-icon icon=\"format_align_left\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('center')\"\n [class.active]=\"currentAlignment === 'center'\"\n title=\"Centrar\"\n >\n <bmb-icon icon=\"format_align_center\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"applyAlignment('right')\"\n [class.active]=\"currentAlignment === 'right'\"\n title=\"Alinear a la derecha\"\n >\n <bmb-icon icon=\"format_align_right\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertOrderedList')\"\n title=\"Lista numerada\"\n >\n <bmb-icon icon=\"format_list_numbered\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('insertUnorderedList')\"\n title=\"Lista con vi\u00F1etas\"\n >\n <bmb-icon icon=\"format_list_bulleted\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('indent')\"\n title=\"Aumentar sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_increase\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"execCommand('outdent')\"\n title=\"Disminuir sangr\u00EDa\"\n >\n <bmb-icon icon=\"format_indent_decrease\" [size]=\"24\" />\n </button>\n </span>\n\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('link', $event)\"\n title=\"Insertar enlace\"\n >\n <bmb-icon icon=\"link\" [size]=\"24\" />\n </button>\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"openPrompt('image', $event)\"\n title=\"Insertar imagen\"\n >\n <bmb-icon icon=\"image\" [size]=\"24\" />\n </button>\n <!-- <button bmbButton appearance=\"transparent\" size=\"micro\" type=\"button\" (click)=\"openTableDialog()\" title=\"Insertar tabla\">\n <bmb-icon icon=\"table_chart\" [size]=\"24\"/>\n </button> -->\n </span>\n <span class=\"bmb_text-editor-header-group\">\n <button\n bmbButton\n appearance=\"transparent\"\n size=\"micro\"\n type=\"button\"\n (click)=\"clearFormatting()\"\n title=\"Limpiar formato\"\n >\n <bmb-icon icon=\"format_clear\" [size]=\"24\" />\n </button>\n </span>\n </header>\n\n <div\n class=\"bmb_text-editor-content\"\n #editor\n contenteditable=\"true\"\n (input)=\"updateContent()\"\n [innerHTML]=\"sanitizedContent()\"\n ></div>\n</section>\n\n<!-- Di\u00E1logo para definir filas y columnas -->\n<dialog class=\"dialog-overlay\" [open]=\"showTableDialog\">\n <div class=\"dialog\">\n <h3>Insertar tabla</h3>\n <label for=\"rows\">Filas:</label>\n <input type=\"number\" id=\"rows\" min=\"1\" max=\"10\" />\n\n <label for=\"columns\">Columnas:</label>\n <input type=\"number\" id=\"columns\" min=\"1\" max=\"10\" />\n\n <div class=\"dialog-buttons\">\n <button type=\"button\" (click)=\"insertTable()\">Insertar</button>\n <button type=\"button\" (click)=\"closeTableDialog()\">Cancelar</button>\n </div>\n </div>\n</dialog>\n", styles: ["@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_text-editor{border:.0625rem solid var(--general_contrasts-50);border-radius:var(--bmb-spacing-s);container-type:inline-size;display:flex;flex-flow:column}.bmb_text-editor-header{border-bottom:.0625rem solid var(--general_contrasts-50);padding:var(--bmb-spacing-s);display:flex;flex-wrap:nowrap;align-items:center;gap:var(--bmb-spacing-m);overflow:auto}.bmb_text-editor-header-select{background:transparent;border:0;cursor:pointer;color:var(--general_contrasts-100)}.bmb_text-editor-header-group{display:inline-flex;align-items:center;flex-wrap:nowrap}.bmb_text-editor-header-group:not(:last-child){padding-right:var(--bmb-spacing-m);border-right:.0625rem solid var(--general_contrasts-50)}.bmb_text-editor-content{padding:var(--bmb-spacing-s);background-color:var(--general_contrasts-input-background);min-height:100px;border-radius:0 0 var(--bmb-spacing-s) var(--bmb-spacing-s);flex:1}\n"] }]
|
|
13743
|
+
}], ctorParameters: () => [{ type: i1$2.DomSanitizer }, { type: BmbProjectionContentService }], propDecorators: { editor: [{
|
|
13462
13744
|
type: ViewChild,
|
|
13463
13745
|
args: ['editor']
|
|
13464
13746
|
}] } });
|
|
@@ -13764,150 +14046,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
13764
14046
|
args: [{ selector: 'bmb-button-icon', standalone: true, imports: [CommonModule, BmbActionIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"bmb_button_icon\"\n [ngClass]=\"{\n 'bmb_button_icon-active': active(),\n 'bmb_button_icon-container': showContainer(),\n 'bmb_button_icon-container-outline': showContainer() && isOutline(),\n 'bmb_button_icon-disabled': disabled(),\n 'bmb_button_icon-container-primary': appearanceContrast() === 'primary',\n 'bmb_button_icon-container-alternative':\n appearanceContrast() === 'alternative'\n }\"\n>\n <bmb-action-icon\n [idElement]=\"idElement()\"\n [icon]=\"icon()\"\n [iconSize]=\"showContainer() ? 24 : 32\"\n [disabled]=\"disabled()!\"\n (buttonPress)=\"handlePress()\"\n (buttonClick)=\"handleClick($event)\"\n />\n</span>\n", styles: [".bmb_button_icon{display:flex;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;background-color:transparent}.bmb_button_icon-active:not(.bmb_button_icon-container) .material-symbols-rounded{color:var(--buttons-primary-select);scale:1}.bmb_button_icon-container.bmb_button_icon{display:flex;justify-content:center;align-items:center;border-radius:var(--bmb-radius-s);border:.0625rem solid var(--general_contrasts-container-outline);background-color:var(--general_contrasts-input-background)}.bmb_button_icon-container.bmb_button_icon .material-symbols-rounded{color:var(--general_contrasts-50)}.bmb_button_icon-container.bmb_button_icon-active{border:.0625rem solid rgb(var(--color-charade-50));background-color:var(--general_contrasts-50)}.bmb_button_icon-container.bmb_button_icon-active .material-symbols-rounded{color:rgb(var(--color-charade-50))}.bmb_button_icon-container:not(.bmb_button_icon-disabled):hover{border:.0625rem solid var(--general_contrasts-container-outline);background-color:var(--general_contrasts-input-background)}.bmb_button_icon-container:not(.bmb_button_icon-disabled):hover .material-symbols-rounded{color:var(--buttons-alternative-text)}.bmb_button_icon-container:not(.bmb_button_icon-disabled):active{border:.0625rem solid rgb(var(--color-charade-50));background-color:var(--general_contrasts-50)}.bmb_button_icon-container:not(.bmb_button_icon-disabled):active .material-symbols-rounded{color:rgb(var(--color-charade-50))}.bmb_button_icon-container-outline.bmb_button_icon{border:.0625rem solid var(--general_contrasts-100);background-color:var(--general_contrasts-input-background)}.bmb_button_icon-container-outline.bmb_button_icon .material-symbols-rounded{color:var(--general_contrasts-100)}.bmb_button_icon-container-outline.bmb_button_icon-active{border:.0625rem solid var(--general_contrasts-input-background);background-color:var(--general_contrasts-100)}.bmb_button_icon-container-outline.bmb_button_icon-active .material-symbols-rounded{color:var(--general_contrasts-5)}.bmb_button_icon-container-outline:not(.bmb_button_icon-disabled):hover{border:.125rem solid var(--general_contrasts-100);background-color:var(--general_contrasts-input-background)}.bmb_button_icon-container-outline:not(.bmb_button_icon-disabled):hover .material-symbols-rounded{color:var(--general_contrasts-100)}.bmb_button_icon-container-outline:not(.bmb_button_icon-disabled):active{border:.0625rem solid var(--general_contrasts-input-background);background-color:var(--general_contrasts-100)}.bmb_button_icon-container-outline:not(.bmb_button_icon-disabled):active .material-symbols-rounded{color:var(--general_contrasts-5)}.bmb_button_icon-container-primary.bmb_button_icon{background-color:var(--containers-background)}.bmb_button_icon-container-alternative.bmb_button_icon{background-color:var(--containers-main)}.bmb_button_icon:not(.bmb_button_icon-container,.bmb_button_icon-disabled):hover .material-symbols-rounded{color:var(--white-primary);scale:1.2}.bmb_button_icon:not(.bmb_button_icon-container,.bmb_button_icon-disabled):active .material-symbols-rounded{color:var(--buttons-primary-select);scale:1}.bmb_button_icon .material-symbols-rounded{color:var(--white-primary)}\n"] }]
|
|
13765
14047
|
}] });
|
|
13766
14048
|
|
|
13767
|
-
class BmbFormValidatorComponent {
|
|
13768
|
-
constructor() {
|
|
13769
|
-
this.formGroup = model(new FormGroup({}));
|
|
13770
|
-
this.formGroupState = output();
|
|
13771
|
-
}
|
|
13772
|
-
ngAfterViewInit() {
|
|
13773
|
-
this.addControls();
|
|
13774
|
-
}
|
|
13775
|
-
addControls() {
|
|
13776
|
-
this.bmbInputs.forEach((child) => {
|
|
13777
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13778
|
-
});
|
|
13779
|
-
this.bmbDropdowns.forEach((child) => {
|
|
13780
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13781
|
-
});
|
|
13782
|
-
this.bmbInputPhoneNumbers.forEach((child) => {
|
|
13783
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13784
|
-
});
|
|
13785
|
-
this.bmbInputTags.forEach((child) => {
|
|
13786
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13787
|
-
});
|
|
13788
|
-
this.bmbDatepickers.forEach((child) => {
|
|
13789
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13790
|
-
});
|
|
13791
|
-
this.bmbDateRanges.forEach((child) => {
|
|
13792
|
-
this.addControl(`${child.name()}_start`, child.controlStart(), child.isControlStartNull);
|
|
13793
|
-
this.addControl(`${child.name()}_end`, child.controlEnd(), child.isControlEndNull);
|
|
13794
|
-
});
|
|
13795
|
-
this.bmbCheckboxes.forEach((child) => {
|
|
13796
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13797
|
-
});
|
|
13798
|
-
this.bmbRadials.forEach((child) => {
|
|
13799
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13800
|
-
});
|
|
13801
|
-
this.bmbSwitches.forEach((child) => {
|
|
13802
|
-
this.addControl(child.name(), child.control(), child.isControlNull);
|
|
13803
|
-
});
|
|
13804
|
-
}
|
|
13805
|
-
addControl(controlName, control, isControlNull) {
|
|
13806
|
-
if (!this.getFormControl(controlName)) {
|
|
13807
|
-
this.formGroup().addControl(controlName, control);
|
|
13808
|
-
}
|
|
13809
|
-
else {
|
|
13810
|
-
if (isControlNull)
|
|
13811
|
-
this.formGroup().setControl(controlName, control);
|
|
13812
|
-
}
|
|
13813
|
-
}
|
|
13814
|
-
addRadials() {
|
|
13815
|
-
const radialNames = this.bmbRadials.reduce((acc, currentElement) => {
|
|
13816
|
-
if (acc.includes(currentElement.name()))
|
|
13817
|
-
return acc;
|
|
13818
|
-
return [...acc, currentElement.name()];
|
|
13819
|
-
}, []);
|
|
13820
|
-
radialNames.forEach((name) => {
|
|
13821
|
-
const radialIndexWithSameName = this.bmbRadials.reduce((acc, currentElement, index) => {
|
|
13822
|
-
if (currentElement.name() === name)
|
|
13823
|
-
return [...acc, index];
|
|
13824
|
-
return acc;
|
|
13825
|
-
}, []);
|
|
13826
|
-
const radialControl = this.bmbRadials.get(radialIndexWithSameName[0]);
|
|
13827
|
-
if (this.bmbRadials
|
|
13828
|
-
.filter((element) => element.name() === name)
|
|
13829
|
-
.every((elementSelected) => !elementSelected.isControlNull)) {
|
|
13830
|
-
this.addControl(radialControl.name(), radialControl.control(), false);
|
|
13831
|
-
return;
|
|
13832
|
-
}
|
|
13833
|
-
const value = this.bmbRadials
|
|
13834
|
-
.filter((element) => element.name() === name)
|
|
13835
|
-
?.find((elementSelected) => elementSelected.checked())
|
|
13836
|
-
?.control()?.value;
|
|
13837
|
-
radialControl.control()?.setValue(value);
|
|
13838
|
-
radialIndexWithSameName.slice(1).forEach((element) => {
|
|
13839
|
-
this.bmbRadials.get(element)?.control.set(radialControl.control());
|
|
13840
|
-
});
|
|
13841
|
-
this.addControl(radialControl.name(), radialControl.control(), false);
|
|
13842
|
-
});
|
|
13843
|
-
}
|
|
13844
|
-
onSubmit() {
|
|
13845
|
-
this.formGroup().updateValueAndValidity();
|
|
13846
|
-
this.formGroup().markAllAsTouched();
|
|
13847
|
-
this.updateErrorState();
|
|
13848
|
-
this.formGroupState.emit(this.formGroup());
|
|
13849
|
-
}
|
|
13850
|
-
updateErrorState() {
|
|
13851
|
-
Object.keys(this.formGroup().controls).forEach((field) => {
|
|
13852
|
-
const control = this.getFormControl(field);
|
|
13853
|
-
if (!!control) {
|
|
13854
|
-
handleValidity(control);
|
|
13855
|
-
}
|
|
13856
|
-
});
|
|
13857
|
-
}
|
|
13858
|
-
getFormControl(name) {
|
|
13859
|
-
return this.formGroup().get(name);
|
|
13860
|
-
}
|
|
13861
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbFormValidatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13862
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BmbFormValidatorComponent, isStandalone: true, selector: "bmb-form-validator", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formGroup: "formGroupChange", formGroupState: "formGroupState" }, queries: [{ propertyName: "bmbInputs", predicate: BmbInputComponent, descendants: true }, { propertyName: "bmbDropdowns", predicate: BmbDropdownComponent, descendants: true }, { propertyName: "bmbInputPhoneNumbers", predicate: BmbInputPhoneNumberComponent, descendants: true }, { propertyName: "bmbInputTags", predicate: BmbInputTagsComponent, descendants: true }, { propertyName: "bmbDatepickers", predicate: BmbDatepickerComponent, descendants: true }, { propertyName: "bmbDateRanges", predicate: BmbDateRangeComponent, descendants: true }, { propertyName: "bmbCheckboxes", predicate: BmbCheckboxComponent, descendants: true }, { propertyName: "bmbRadials", predicate: BmbRadialComponent, descendants: true }, { propertyName: "bmbSwitches", predicate: BmbSwitchComponent, descendants: true }], ngImport: i0, template: `
|
|
13863
|
-
<form [formGroup]="formGroup()" (ngSubmit)="onSubmit()">
|
|
13864
|
-
<ng-content />
|
|
13865
|
-
</form>
|
|
13866
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
13867
|
-
}
|
|
13868
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbFormValidatorComponent, decorators: [{
|
|
13869
|
-
type: Component,
|
|
13870
|
-
args: [{
|
|
13871
|
-
selector: 'bmb-form-validator',
|
|
13872
|
-
standalone: true,
|
|
13873
|
-
imports: [CommonModule, ReactiveFormsModule],
|
|
13874
|
-
template: `
|
|
13875
|
-
<form [formGroup]="formGroup()" (ngSubmit)="onSubmit()">
|
|
13876
|
-
<ng-content />
|
|
13877
|
-
</form>
|
|
13878
|
-
`,
|
|
13879
|
-
encapsulation: ViewEncapsulation.None,
|
|
13880
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13881
|
-
}]
|
|
13882
|
-
}], propDecorators: { bmbInputs: [{
|
|
13883
|
-
type: ContentChildren,
|
|
13884
|
-
args: [BmbInputComponent, { descendants: true }]
|
|
13885
|
-
}], bmbDropdowns: [{
|
|
13886
|
-
type: ContentChildren,
|
|
13887
|
-
args: [BmbDropdownComponent, { descendants: true }]
|
|
13888
|
-
}], bmbInputPhoneNumbers: [{
|
|
13889
|
-
type: ContentChildren,
|
|
13890
|
-
args: [BmbInputPhoneNumberComponent, { descendants: true }]
|
|
13891
|
-
}], bmbInputTags: [{
|
|
13892
|
-
type: ContentChildren,
|
|
13893
|
-
args: [BmbInputTagsComponent, { descendants: true }]
|
|
13894
|
-
}], bmbDatepickers: [{
|
|
13895
|
-
type: ContentChildren,
|
|
13896
|
-
args: [BmbDatepickerComponent, { descendants: true }]
|
|
13897
|
-
}], bmbDateRanges: [{
|
|
13898
|
-
type: ContentChildren,
|
|
13899
|
-
args: [BmbDateRangeComponent, { descendants: true }]
|
|
13900
|
-
}], bmbCheckboxes: [{
|
|
13901
|
-
type: ContentChildren,
|
|
13902
|
-
args: [BmbCheckboxComponent, { descendants: true }]
|
|
13903
|
-
}], bmbRadials: [{
|
|
13904
|
-
type: ContentChildren,
|
|
13905
|
-
args: [BmbRadialComponent, { descendants: true }]
|
|
13906
|
-
}], bmbSwitches: [{
|
|
13907
|
-
type: ContentChildren,
|
|
13908
|
-
args: [BmbSwitchComponent, { descendants: true }]
|
|
13909
|
-
}] } });
|
|
13910
|
-
|
|
13911
14049
|
class BmbSelectorDirective {
|
|
13912
14050
|
constructor() {
|
|
13913
14051
|
this.idSelector = input.required();
|