aloha-vue 1.2.114 → 1.2.116

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.
Files changed (80) hide show
  1. package/docs/src/views/Functions/Filters/PageFilterBoolean/i18n/ar.json +5 -23
  2. package/docs/src/views/Functions/Filters/PageFilterBoolean/i18n/en.json +5 -23
  3. package/docs/src/views/Functions/Filters/PageFilterBoolean/i18n/es.json +5 -23
  4. package/docs/src/views/Functions/Filters/PageFilterBoolean/i18n/fr.json +5 -23
  5. package/docs/src/views/Functions/Filters/PageFilterBoolean/i18n/it.json +5 -23
  6. package/docs/src/views/Functions/Utils/PageUtilsIsArrayOfArrays/i18n/ar.json +2 -2
  7. package/docs/src/views/Functions/Utils/PageUtilsIsArrayOfArrays/i18n/es.json +2 -2
  8. package/docs/src/views/Functions/Utils/PageUtilsIsArrayOfArrays/i18n/fr.json +2 -2
  9. package/docs/src/views/Functions/Utils/PageUtilsIsArrayOfArrays/i18n/it.json +2 -2
  10. package/docs/src/views/PageFilters/PageFiltersDefaultHide/PageFiltersDefaultHide.js +19 -19
  11. package/docs/src/views/PageFilters/PageFiltersExample/PageFiltersExample.js +9 -6
  12. package/docs/src/views/PageFilters/PageFiltersExample/PageFiltersExample.pug +2 -0
  13. package/docs/src/views/PageFilters/PageFiltersModelId/PageFiltersModelId.js +0 -1
  14. package/docs/src/views/PageFilters/i18n/de.json +4 -1
  15. package/docs/src/views/PageList/i18n/ar.json +5 -3
  16. package/docs/src/views/PageList/i18n/es.json +4 -2
  17. package/docs/src/views/PageList/i18n/fr.json +5 -3
  18. package/docs/src/views/PageList/i18n/it.json +4 -2
  19. package/package.json +1 -1
  20. package/src/ADropdown/ADropdown.js +40 -2
  21. package/src/ADropdown/compositionAPI/PopoverAPI.js +21 -6
  22. package/src/ADropdown/compositionAPI/ToggleAPI.js +16 -3
  23. package/src/AFilters/AFilterCenter/AFilterCenter.js +24 -7
  24. package/src/AFilters/AFilterCenter/AFilterCenterItem/compositionAPI/GoToAPI.js +4 -11
  25. package/src/AFilters/AFilterCenter/compositionAPI/VisibleFiltersAPI.js +9 -2
  26. package/src/AFilters/AFilters/AFilters.js +42 -13
  27. package/src/AFilters/AFilters/compositionAPI/CloseFilterAPI.js +8 -0
  28. package/src/AFilters/AFilters/compositionAPI/FiltersAPI.js +8 -8
  29. package/src/AFilters/AFilters/compositionAPI/SaveAPI.js +4 -1
  30. package/src/AFilters/AFiltersHorizontal/AFiltersHorizontal.js +233 -179
  31. package/src/AFilters/AFiltersHorizontal/AFiltersHorizontalFilter/AFiltersHorizontalFilter.js +1 -12
  32. package/src/AFilters/AFiltersHorizontal/compositionAPI/DropdownAPI.js +30 -0
  33. package/src/AFilters/AFiltersHorizontal/compositionAPI/EventBusAPI.js +3 -3
  34. package/src/AFilters/AFiltersHorizontal/compositionAPI/FiltersSaveAPI.js +52 -8
  35. package/src/AFilters/AFiltersHorizontal/compositionAPI/FiltersSavedDeleteAPI.js +18 -8
  36. package/src/AFilters/AFiltersHorizontal/compositionAPI/FormAPI.js +55 -0
  37. package/src/AFilters/AFiltersHorizontal/compositionAPI/SearchAPI.js +2 -2
  38. package/src/AFilters/AFiltersMain/AFiltersMain.js +103 -0
  39. package/src/AFilters/AFiltersMain/compositionAPI/IdAPI.js +16 -0
  40. package/src/AFilters/AFiltersMain/compositionAPI/MainFilterAPI.js +26 -0
  41. package/src/AFilters/AFiltersMain/compositionAPI/SearchAPI.js +18 -0
  42. package/src/AFilters/AFiltersSaveModal/AFiltersSaveModal.js +7 -0
  43. package/src/AFilters/AFiltersSaveModal/compositionAPI/ModelAPI.js +2 -1
  44. package/src/AFilters/AFiltersSaveModal/compositionAPI/SaveAPI.js +1 -1
  45. package/src/AFilters/i18n/de.json +24 -22
  46. package/src/AModal/AModal.js +32 -1
  47. package/src/AModal/compositionAPI/AttributesAPI.js +34 -0
  48. package/src/AModal/compositionAPI/WrapperAPI.js +21 -0
  49. package/src/AModalForm/AModalForm.js +17 -0
  50. package/src/APopup/APopup.js +108 -0
  51. package/src/APopup/compositionAPI/ContainerAPI.js +29 -0
  52. package/src/APopup/compositionAPI/ToggleAPI.js +29 -0
  53. package/src/ATable/ATableTdAction/ATableTdAction.js +4 -0
  54. package/src/compositionAPI/APopupAPI.js +58 -0
  55. package/src/filters/i18n/ar.json +10 -10
  56. package/src/filters/i18n/en.json +10 -10
  57. package/src/filters/i18n/es.json +10 -10
  58. package/src/filters/i18n/fr.json +10 -10
  59. package/src/filters/i18n/it.json +10 -10
  60. package/src/plugins/AIconPlugin.js +2 -0
  61. package/src/styles/components/AFilters.scss +135 -4
  62. package/src/styles/components/ui/ADatepicker.scss +1 -1
  63. package/src/styles/components/ui/AInputNumber.scss +1 -1
  64. package/src/styles/components/ui/ui.scss +0 -7
  65. package/src/ui/ADatepicker/ADatepickerCalendarPanel/ADatepickerCalendarPanel.js +22 -7
  66. package/src/ui/ADatepicker/panel/APanelDate/APanelDate.js +4 -3
  67. package/src/ui/ADatepicker/panel/APanelMonth/APanelMonth.js +5 -5
  68. package/src/ui/ADatepicker/panel/APanelYearItem/APanelYearItem.js +4 -4
  69. package/src/ui/AForm/AForm.js +65 -58
  70. package/src/ui/AForm/compositionAPI/HideAPI.js +16 -0
  71. package/src/ui/AForm/compositionAPI/ModelAPI.js +40 -0
  72. package/src/ui/AForm/compositionAPI/RequiredAPI.js +31 -0
  73. package/src/ui/AForm/utils/__test__/AForm.utils.getModelId.test.js +24 -0
  74. package/src/ui/AForm/utils/utils.js +11 -0
  75. package/src/ui/AGroup/AGroup.js +31 -11
  76. package/src/ui/AGroup/compositionAPI/SpecificTypeAPI.js +69 -0
  77. package/src/ui/ASelect/ASelect.js +58 -49
  78. package/src/ui/ASelect/ASelectElement/compositionAPI/EventsAPI.js +2 -2
  79. package/src/ui/const/AUiTypesNotFocusable.js +4 -0
  80. package/src/AFilters/AFiltersHorizontal/compositionAPI/ToggleAPI.js +0 -54
@@ -1,25 +1,7 @@
1
1
  {
2
- "_A_BASIC_USAGE_": "الاستخدام الأساسي",
3
- "_ALOHA_TABLE_COLUMN_DEFAULT_": "الافتراضي",
4
- "_ALOHA_TABLE_COLUMN_DESCRIPTION_": "الوصف",
5
- "_ALOHA_TABLE_COLUMN_NAME_": "الاسم",
6
- "_ALOHA_TABLE_COLUMN_REQUIRED_": "مطلوب",
7
- "_ALOHA_TABLE_COLUMN_TYPE_": "النوع",
8
- "_COPIED_TO_CLIPBOARD_": "تم النسخ إلى الحافظة",
9
- "_COPY_CODE_HTML_": "نسخ كود HTML",
10
- "_COPY_CODE_JS_": "نسخ كود JS",
11
- "_HIDE_SOURCE_": "إخفاء المصدر",
12
- "_SUPPORT_FRAMEWORKS_": "ندعم الإطارات CSS التالية",
13
- "_VIEW_SOURCE_": "عرض المصدر",
14
- "_ALOHA_TABLE_TRANSLATE_LABEL_": "الترجمات",
15
- "_ALOHA_TABLE_COLUMN_TRANSLATE_PLACEHOLDER_": "عنصر نائب",
16
- "_ALOHA_TABLE_COLUMN_TRANSLATE_": "الترجمة",
17
- "_WELCOME_": "مرحبا",
18
- "_JS_TYPE_OBJECT_": "كائن",
19
- "_JS_TYPE_ARRAY_": "مصفوفة",
20
- "_JS_TYPE_ANY_": "أي",
21
- "_JS_TYPE_STRING_": "سلسلة",
22
- "_JS_TYPE_NUMBER_": "رقم",
23
- "_JS_TYPE_FUNCTION_": "وظيفة",
24
- "_JS_TYPE_BOOLEAN_": "قيمة بوليانية"
2
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_FALSE_VALUE_": "النص المترجم الذي سيتم إرجاعه في حال كانت القيمة <strong>خاطئة</strong>",
3
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_TRUE_VALUE_": "النص المترجم الذي سيتم إرجاعه في حال كانت القيمة <strong>صحيحة</strong>",
4
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_USE_NIL_": "يشير إلى ما إذا كان يجب إرجاع سلسلة فارغة لـ <strong>غير محدد</strong> أو <strong>فارغ</strong>",
5
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_VALUE_": "القيمة التي ستتحول إلى نص مترجم",
6
+ "_PAGE_FILTER_BOOLEAN_DESCRIPTION_": "تُستخدم وظيفة <strong>filterBoolean</strong> لتحويل <strong>قيمة بوليانية</strong> إلى نص مترجم. تتيح تخصيص النصوص للقيم <strong>صحيح</strong> و <strong>خاطئ</strong> وخيار إرجاع سلسلة فارغة لـ <strong>غير محدد</strong> أو <strong>فارغ</strong>."
25
7
  }
@@ -1,25 +1,7 @@
1
1
  {
2
- "_A_BASIC_USAGE_": "Basic Usage",
3
- "_ALOHA_TABLE_COLUMN_DEFAULT_": "Default",
4
- "_ALOHA_TABLE_COLUMN_DESCRIPTION_": "Description",
5
- "_ALOHA_TABLE_COLUMN_NAME_": "Name",
6
- "_ALOHA_TABLE_COLUMN_REQUIRED_": "Required",
7
- "_ALOHA_TABLE_COLUMN_TYPE_": "Type",
8
- "_COPIED_TO_CLIPBOARD_": "Copied to Clipboard",
9
- "_COPY_CODE_HTML_": "Copy Code HTML",
10
- "_COPY_CODE_JS_": "Copy Code JS",
11
- "_HIDE_SOURCE_": "Hide Source",
12
- "_SUPPORT_FRAMEWORKS_": "We support the following CSS frameworks",
13
- "_VIEW_SOURCE_": "View Source",
14
- "_ALOHA_TABLE_TRANSLATE_LABEL_": "Translations",
15
- "_ALOHA_TABLE_COLUMN_TRANSLATE_PLACEHOLDER_": "Placeholder",
16
- "_ALOHA_TABLE_COLUMN_TRANSLATE_": "Translation",
17
- "_WELCOME_": "Welcome",
18
- "_JS_TYPE_OBJECT_": "Object",
19
- "_JS_TYPE_ARRAY_": "Array",
20
- "_JS_TYPE_ANY_": "Any",
21
- "_JS_TYPE_STRING_": "String",
22
- "_JS_TYPE_NUMBER_": "Number",
23
- "_JS_TYPE_FUNCTION_": "Function",
24
- "_JS_TYPE_BOOLEAN_": "Boolean"
2
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_FALSE_VALUE_": "The translated text to be returned in case the value is <strong>False</strong>",
3
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_TRUE_VALUE_": "The translated text to be returned in case the value is <strong>True</strong>",
4
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_USE_NIL_": "Indicates whether an empty string should be returned for <strong>undefined</strong> or <strong>null</strong>",
5
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_VALUE_": "The value to be converted into translated text",
6
+ "_PAGE_FILTER_BOOLEAN_DESCRIPTION_": "The function <strong>filterBoolean</strong> is used to convert a <strong>boolean value</strong> into translated text. It allows customization of the texts for <strong>True</strong> and <strong>False</strong> values and the option to return an empty string for <strong>undefined</strong> or <strong>null</strong>."
25
7
  }
@@ -1,25 +1,7 @@
1
1
  {
2
- "_A_BASIC_USAGE_": "Uso Básico",
3
- "_ALOHA_TABLE_COLUMN_DEFAULT_": "Predeterminado",
4
- "_ALOHA_TABLE_COLUMN_DESCRIPTION_": "Descripción",
5
- "_ALOHA_TABLE_COLUMN_NAME_": "Nombre",
6
- "_ALOHA_TABLE_COLUMN_REQUIRED_": "Obligatorio",
7
- "_ALOHA_TABLE_COLUMN_TYPE_": "Tipo",
8
- "_COPIED_TO_CLIPBOARD_": "Copiado al Portapapeles",
9
- "_COPY_CODE_HTML_": "Copiar Código HTML",
10
- "_COPY_CODE_JS_": "Copiar Código JS",
11
- "_HIDE_SOURCE_": "Ocultar Fuente",
12
- "_SUPPORT_FRAMEWORKS_": "Apoyamos los siguientes frameworks CSS",
13
- "_VIEW_SOURCE_": "Ver Fuente",
14
- "_ALOHA_TABLE_TRANSLATE_LABEL_": "Traducciones",
15
- "_ALOHA_TABLE_COLUMN_TRANSLATE_PLACEHOLDER_": "Marcador de posición",
16
- "_ALOHA_TABLE_COLUMN_TRANSLATE_": "Traducción",
17
- "_WELCOME_": "Bienvenido",
18
- "_JS_TYPE_OBJECT_": "Objeto",
19
- "_JS_TYPE_ARRAY_": "Arreglo",
20
- "_JS_TYPE_ANY_": "Cualquiera",
21
- "_JS_TYPE_STRING_": "Cadena",
22
- "_JS_TYPE_NUMBER_": "Número",
23
- "_JS_TYPE_FUNCTION_": "Función",
24
- "_JS_TYPE_BOOLEAN_": "Booleano"
2
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_FALSE_VALUE_": "El texto traducido que se devolverá en caso de que el valor sea <strong>Falso</strong>",
3
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_TRUE_VALUE_": "El texto traducido que se devolverá en caso de que el valor sea <strong>Verdadero</strong>",
4
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_USE_NIL_": "Indica si se debe devolver una cadena vacía para <strong>undefined</strong> o <strong>null</strong>",
5
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_VALUE_": "El valor que se convertirá en texto traducido",
6
+ "_PAGE_FILTER_BOOLEAN_DESCRIPTION_": "La función <strong>filterBoolean</strong> se utiliza para convertir un <strong>valor booleano</strong> en texto traducido. Permite la personalización de los textos para los valores <strong>Verdadero</strong> y <strong>Falso</strong> y la opción de devolver una cadena vacía para <strong>undefined</strong> o <strong>null</strong>."
25
7
  }
@@ -1,25 +1,7 @@
1
1
  {
2
- "_A_BASIC_USAGE_": "Utilisation de Base",
3
- "_ALOHA_TABLE_COLUMN_DEFAULT_": "Par Défaut",
4
- "_ALOHA_TABLE_COLUMN_DESCRIPTION_": "Description",
5
- "_ALOHA_TABLE_COLUMN_NAME_": "Nom",
6
- "_ALOHA_TABLE_COLUMN_REQUIRED_": "Requis",
7
- "_ALOHA_TABLE_COLUMN_TYPE_": "Type",
8
- "_COPIED_TO_CLIPBOARD_": "Copié dans le Presse-papiers",
9
- "_COPY_CODE_HTML_": "Copier le Code HTML",
10
- "_COPY_CODE_JS_": "Copier le Code JS",
11
- "_HIDE_SOURCE_": "Masquer la Source",
12
- "_SUPPORT_FRAMEWORKS_": "Nous soutenons les frameworks CSS suivants",
13
- "_VIEW_SOURCE_": "Voir la Source",
14
- "_ALOHA_TABLE_TRANSLATE_LABEL_": "Traductions",
15
- "_ALOHA_TABLE_COLUMN_TRANSLATE_PLACEHOLDER_": "Espace réservé",
16
- "_ALOHA_TABLE_COLUMN_TRANSLATE_": "Traduction",
17
- "_WELCOME_": "Bienvenue",
18
- "_JS_TYPE_OBJECT_": "Objet",
19
- "_JS_TYPE_ARRAY_": "Tableau",
20
- "_JS_TYPE_ANY_": "Quelconque",
21
- "_JS_TYPE_STRING_": "Chaîne",
22
- "_JS_TYPE_NUMBER_": "Nombre",
23
- "_JS_TYPE_FUNCTION_": "Fonction",
24
- "_JS_TYPE_BOOLEAN_": "Booléen"
2
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_FALSE_VALUE_": "Le texte traduit à retourner dans le cas où la valeur est <strong>Faux</strong>",
3
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_TRUE_VALUE_": "Le texte traduit à retourner dans le cas où la valeur est <strong>Vrai</strong>",
4
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_USE_NIL_": "Indique si une chaîne vide doit être retournée pour <strong>undefined</strong> ou <strong>null</strong>",
5
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_VALUE_": "La valeur à convertir en texte traduit",
6
+ "_PAGE_FILTER_BOOLEAN_DESCRIPTION_": "La fonction <strong>filterBoolean</strong> est utilisée pour convertir une <strong>valeur booléenne</strong> en texte traduit. Elle permet la personnalisation des textes pour les valeurs <strong>Vrai</strong> et <strong>Faux</strong> et l'option de retourner une chaîne vide pour <strong>undefined</strong> ou <strong>null</strong>."
25
7
  }
@@ -1,25 +1,7 @@
1
1
  {
2
- "_A_BASIC_USAGE_": "Uso Base",
3
- "_ALOHA_TABLE_COLUMN_DEFAULT_": "Predefinito",
4
- "_ALOHA_TABLE_COLUMN_DESCRIPTION_": "Descrizione",
5
- "_ALOHA_TABLE_COLUMN_NAME_": "Nome",
6
- "_ALOHA_TABLE_COLUMN_REQUIRED_": "Obbligatorio",
7
- "_ALOHA_TABLE_COLUMN_TYPE_": "Tipo",
8
- "_COPIED_TO_CLIPBOARD_": "Copiato negli Appunti",
9
- "_COPY_CODE_HTML_": "Copia Codice HTML",
10
- "_COPY_CODE_JS_": "Copia Codice JS",
11
- "_HIDE_SOURCE_": "Nascondi Sorgente",
12
- "_SUPPORT_FRAMEWORKS_": "Supportiamo i seguenti framework CSS",
13
- "_VIEW_SOURCE_": "Visualizza Sorgente",
14
- "_ALOHA_TABLE_TRANSLATE_LABEL_": "Traduzioni",
15
- "_ALOHA_TABLE_COLUMN_TRANSLATE_PLACEHOLDER_": "Segnaposto",
16
- "_ALOHA_TABLE_COLUMN_TRANSLATE_": "Traduzione",
17
- "_WELCOME_": "Benvenuto",
18
- "_JS_TYPE_OBJECT_": "Oggetto",
19
- "_JS_TYPE_ARRAY_": "Array",
20
- "_JS_TYPE_ANY_": "Qualsiasi",
21
- "_JS_TYPE_STRING_": "Stringa",
22
- "_JS_TYPE_NUMBER_": "Numero",
23
- "_JS_TYPE_FUNCTION_": "Funzione",
24
- "_JS_TYPE_BOOLEAN_": "Booleano"
2
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_FALSE_VALUE_": "Il testo tradotto da restituire nel caso il valore sia <strong>Falso</strong>",
3
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_TRUE_VALUE_": "Il testo tradotto da restituire nel caso il valore sia <strong>Vero</strong>",
4
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_USE_NIL_": "Indica se deve essere restituita una stringa vuota per <strong>undefined</strong> o <strong>null</strong>",
5
+ "_PAGE_FILTER_BOOLEAN_ARGUMENTS_VALUE_": "Il valore da convertire in testo tradotto",
6
+ "_PAGE_FILTER_BOOLEAN_DESCRIPTION_": "La funzione <strong>filterBoolean</strong> viene utilizzata per convertire un <strong>valore booleano</strong> in testo tradotto. Consente la personalizzazione dei testi per i valori <strong>Vero</strong> e <strong>Falso</strong> e l'opzione di restituire una stringa vuota per <strong>undefined</strong> o <strong>null</strong>."
25
7
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_",
3
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_"
2
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "المصفوفة المراد فحصها",
3
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "يتحقق مما إذا كانت الإدخال المُعطى عبارة عن مصفوفة من المصفوفات."
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_",
3
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_"
2
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "El array que se va a comprobar",
3
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "Verifica si la entrada dada es un array de arrays."
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_",
3
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_"
2
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "Le tableau à vérifier",
3
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "Vérifie si l'entrée donnée est un tableau de tableaux."
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_",
3
- "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_"
2
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_ARGUMENTS_VALUE_": "L'array da controllare",
3
+ "_PAGE_UTILS_IS_ARRAY_OF_ARRAYS_DESCRIPTION_": "Controlla se l'input fornito è un array di array."
4
4
  }
@@ -24,11 +24,29 @@ export default {
24
24
  } = JsAPI();
25
25
 
26
26
  const filters = [
27
+ {
28
+ type: "select",
29
+ id: "select1",
30
+ label: "Select 1",
31
+ alwaysVisible: true,
32
+ keyLabel: "label",
33
+ keyId: "id",
34
+ data: [
35
+ {
36
+ label: "Aloha 0",
37
+ id: "aloha_0",
38
+ },
39
+ {
40
+ label: "Aloha 1",
41
+ id: "aloha_1",
42
+ },
43
+ ],
44
+ },
27
45
  {
28
46
  type: "text",
29
47
  id: "search",
30
48
  label: "_A_TABLE_FILTER_SEARCH_",
31
- main: true,
49
+ alwaysVisible: true,
32
50
  },
33
51
  {
34
52
  type: "text",
@@ -60,24 +78,6 @@ export default {
60
78
  id: "integerNumber",
61
79
  label: "Integer range",
62
80
  },
63
- {
64
- type: "select",
65
- id: "select1",
66
- label: "Select 1",
67
- alwaysVisible: true,
68
- keyLabel: "label",
69
- keyId: "id",
70
- data: [
71
- {
72
- label: "Aloha 0",
73
- id: "aloha_0",
74
- },
75
- {
76
- label: "Aloha 1",
77
- id: "aloha_1",
78
- },
79
- ],
80
- },
81
81
  ];
82
82
 
83
83
  const appliedModel = ref({});
@@ -23,13 +23,13 @@ export default {
23
23
  codeJs,
24
24
  } = JsAPI();
25
25
 
26
+ const filterMain = {
27
+ type: "text",
28
+ id: "search",
29
+ label: "_A_PAGE_FILTER_SEARCH_",
30
+ };
31
+
26
32
  const filters = [
27
- {
28
- type: "text",
29
- id: "search",
30
- label: "_A_PAGE_FILTER_SEARCH_",
31
- main: true,
32
- },
33
33
  {
34
34
  type: "text",
35
35
  id: "aloha",
@@ -63,13 +63,16 @@ export default {
63
63
  ];
64
64
 
65
65
  const appliedModel = ref({});
66
+ const mainModel = ref({});
66
67
  const unappliedModel = ref({});
67
68
 
68
69
  return {
69
70
  appliedModel,
70
71
  codeHtml,
71
72
  codeJs,
73
+ filterMain,
72
74
  filters,
75
+ mainModel,
73
76
  unappliedModel,
74
77
  };
75
78
  },
@@ -8,7 +8,9 @@ aloha-example(
8
8
  div
9
9
  a-filters(
10
10
  :can-save="true"
11
+ :filter-main="filterMain"
11
12
  :filters="filters"
12
13
  v-model:applied-model="appliedModel"
13
14
  v-model:unapplied-model="unappliedModel"
15
+ v-model:main-model="mainModel"
14
16
  )
@@ -28,7 +28,6 @@ export default {
28
28
  type: "text",
29
29
  id: "search",
30
30
  label: "_A_TABLE_FILTER_SEARCH_",
31
- main: true,
32
31
  },
33
32
  {
34
33
  type: "checkbox",
@@ -3,5 +3,8 @@
3
3
  "_A_FILTERS_COMPONENT_NAME_": "Filters",
4
4
  "_A_PAGE_FILTER_SEARCH_": "Schnellsuche",
5
5
  "_A_PAGE_FILTER_TEXT_": "Text",
6
- "_A_PAGE_FILTER_DATE_": "Datum"
6
+ "_A_PAGE_FILTER_DATE_": "Datum",
7
+ "_A_PAGE_FILTER_INTEGER_": "Ganze Zahl",
8
+ "_A_TABLE_FILTER_INPUT_DATE_RANGE_": "Zeitraum",
9
+ "_A_TABLE_FILTER_INPUT_NUMBER_RANGE_": "Zahlenbereich"
7
10
  }
@@ -28,10 +28,12 @@
28
28
  "_A_LIST_KEY_LABEL_PROP_DESCRIPTION_": "مفتاح للتسمية المراد عرضها، إذا كانت data عبارة عن مصفوفة من الكائنات",
29
29
  "_A_LIST_LABEL_TAG_PROP_DESCRIPTION_": "وسم HTML للتسميات",
30
30
  "_A_LIST_LIST_ITEM_TAG_PROP_DESCRIPTION_": "وسم HTML للعناصر في القائمة",
31
- "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "فاصل بين العناصر",
32
- "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_",
33
31
  "_A_LIST_SLOT_DESCRIPTION_": "محتوى مخصص لكل عنصر في القائمة",
34
32
  "_A_LIST_TAG_PROP_DESCRIPTION_": "وسم HTML للقائمة بأكملها",
35
33
  "_A_LIST_WITH_SLOT_DESCRIPTION_": "قائمة بمحتوى مخصص في العناصر عبر الشق.",
36
- "_A_LIST_WITH_SLOT_HEADER_": "شق"
34
+ "_A_LIST_WITH_SLOT_HEADER_": "شق",
35
+ "_A_LIST_GROUP_SEPARATOR_HTML_DESCRIPTION_": "المحتوى المستخدم كفاصل بين عناصر في قائمة يمكن أيضًا تحديده بتنسيق HTML. سيتم تنقية هذا المحتوى.",
36
+ "_A_LIST_GROUP_SEPARATOR_HTML_HEADER_": "فاصل مخصص بين عناصر القائمة بتنسيق HTML",
37
+ "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "فاصل بين عناصر القائمة.",
38
+ "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "فاصل بين عناصر القائمة بتنسيق HTML."
37
39
  }
@@ -28,10 +28,12 @@
28
28
  "_A_LIST_KEY_LABEL_PROP_DESCRIPTION_": "Clave para la etiqueta que se mostrará, si los datos son un array de objetos",
29
29
  "_A_LIST_LABEL_TAG_PROP_DESCRIPTION_": "Etiqueta HTML para las etiquetas",
30
30
  "_A_LIST_LIST_ITEM_TAG_PROP_DESCRIPTION_": "Etiqueta HTML para los elementos en la lista",
31
- "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "Separador entre elementos",
32
- "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_",
33
31
  "_A_LIST_SLOT_DESCRIPTION_": "Contenido personalizado para cada elemento en la lista",
34
32
  "_A_LIST_TAG_PROP_DESCRIPTION_": "Etiqueta HTML para toda la lista",
35
33
  "_A_LIST_WITH_SLOT_DESCRIPTION_": "Una lista con contenido personalizado en los elementos a través del slot.",
34
+ "_A_LIST_GROUP_SEPARATOR_HTML_DESCRIPTION_": "El contenido utilizado como separador entre elementos de una lista también puede especificarse en formato HTML. Este contenido será saneado.",
35
+ "_A_LIST_GROUP_SEPARATOR_HTML_HEADER_": "Separador personalizado entre elementos de una lista en formato HTML",
36
+ "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "Separador entre elementos de una lista.",
37
+ "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "Separador entre elementos de una lista en formato HTML.",
36
38
  "_A_LIST_WITH_SLOT_HEADER_": "Slot"
37
39
  }
@@ -28,10 +28,12 @@
28
28
  "_A_LIST_KEY_LABEL_PROP_DESCRIPTION_": "Clé pour l'étiquette à afficher, si les données sont un tableau d'objets",
29
29
  "_A_LIST_LABEL_TAG_PROP_DESCRIPTION_": "Balise HTML pour les étiquettes",
30
30
  "_A_LIST_LIST_ITEM_TAG_PROP_DESCRIPTION_": "Balise HTML pour les éléments de la liste",
31
- "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "Séparateur entre les éléments",
32
- "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_",
33
31
  "_A_LIST_SLOT_DESCRIPTION_": "Contenu personnalisé pour chaque élément de la liste",
34
32
  "_A_LIST_TAG_PROP_DESCRIPTION_": "Balise HTML pour la liste entière",
35
33
  "_A_LIST_WITH_SLOT_DESCRIPTION_": "Une liste avec du contenu personnalisé dans les éléments via le slot.",
36
- "_A_LIST_WITH_SLOT_HEADER_": "Slot"
34
+ "_A_LIST_WITH_SLOT_HEADER_": "Slot",
35
+ "_A_LIST_GROUP_SEPARATOR_HTML_DESCRIPTION_": "Le contenu utilisé comme séparateur entre les éléments d'une liste peut également être spécifié au format HTML. Ce contenu sera nettoyé.",
36
+ "_A_LIST_GROUP_SEPARATOR_HTML_HEADER_": "Séparateur personnalisé entre les éléments d'une liste au format HTML",
37
+ "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "Séparateur entre les éléments d'une liste.",
38
+ "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "Séparateur entre les éléments d'une liste au format HTML."
37
39
  }
@@ -28,10 +28,12 @@
28
28
  "_A_LIST_KEY_LABEL_PROP_DESCRIPTION_": "Chiave per l'etichetta da visualizzare, se i dati sono un array di oggetti",
29
29
  "_A_LIST_LABEL_TAG_PROP_DESCRIPTION_": "Tag HTML per le etichette",
30
30
  "_A_LIST_LIST_ITEM_TAG_PROP_DESCRIPTION_": "Tag HTML per gli elementi nella lista",
31
- "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "Separatore tra gli elementi",
32
- "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_",
33
31
  "_A_LIST_SLOT_DESCRIPTION_": "Contenuto personalizzato per ogni elemento della lista",
34
32
  "_A_LIST_TAG_PROP_DESCRIPTION_": "Tag HTML per l'intera lista",
35
33
  "_A_LIST_WITH_SLOT_DESCRIPTION_": "Una lista con contenuto personalizzato negli elementi tramite lo slot.",
34
+ "_A_LIST_GROUP_SEPARATOR_HTML_DESCRIPTION_": "Il contenuto utilizzato come separatore tra gli elementi in una lista può essere specificato anche in formato HTML. Questo contenuto sarà sanificato.",
35
+ "_A_LIST_GROUP_SEPARATOR_HTML_HEADER_": "Separatore personalizzato tra elementi di una lista in formato HTML",
36
+ "_A_LIST_SEPARATOR_PROP_DESCRIPTION_": "Separatore tra elementi di una lista.",
37
+ "_A_LIST_SEPARATOR_HTML_PROP_DESCRIPTION_": "Separatore tra elementi di una lista in formato HTML.",
36
38
  "_A_LIST_WITH_SLOT_HEADER_": "Slot"
37
39
  }
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "Vue.js"
15
15
  ],
16
16
  "homepage": "https://github.com/ilia-brykin/aloha/#README.md",
17
- "version": "1.2.114",
17
+ "version": "1.2.116",
18
18
  "author": {
19
19
  "name": "Ilia Brykin",
20
20
  "email": "brykin.ilia@gmail.com"
@@ -23,12 +23,14 @@ import RefsAPI from "./compositionAPI/RefsAPI";
23
23
  import ToggleAPI from "./compositionAPI/ToggleAPI";
24
24
 
25
25
  import placements from "../const/placements";
26
+ import {
27
+ focusableSelector,
28
+ } from "../const/AFocusableElements";
26
29
  import {
27
30
  difference,
28
31
  uniqueId,
29
32
  } from "lodash-es";
30
33
 
31
-
32
34
  export default {
33
35
  name: "ADropdown",
34
36
  inheritAttrs: false,
@@ -169,6 +171,10 @@ export default {
169
171
  required: false,
170
172
  default: undefined,
171
173
  },
174
+ dropdownRenderDefault: {
175
+ type: Boolean,
176
+ required: false,
177
+ },
172
178
  dropdownTag: {
173
179
  type: String,
174
180
  required: false,
@@ -177,13 +183,33 @@ export default {
177
183
  elementsForArrows: {
178
184
  type: String,
179
185
  required: false,
180
- default: "button:not([disabled]), input:not([disabled]), a",
186
+ default: focusableSelector,
181
187
  },
182
188
  extra: {
183
189
  type: Object,
184
190
  required: false,
185
191
  default: undefined,
186
192
  },
193
+ floatingFlip: {
194
+ type: Object,
195
+ required: false,
196
+ // mainAxis?: boolean;
197
+ // crossAxis?: boolean;
198
+ // fallbackAxisSideDirection?: 'none' | 'start' | 'end';
199
+ // flipAlignment?: boolean;
200
+ // fallbackPlacements?: Array<Placement>;
201
+ // fallbackStrategy?: 'bestFit' | 'initialPlacement';
202
+ default: () => ({}),
203
+ },
204
+ floatingShift: {
205
+ type: Object,
206
+ required: false,
207
+ default: () => ({
208
+ use: true,
209
+ crossAxis: true,
210
+ padding: 20,
211
+ }),
212
+ },
187
213
  hasCaret: {
188
214
  type: Boolean,
189
215
  required: false,
@@ -213,6 +239,16 @@ export default {
213
239
  type: Boolean,
214
240
  required: false,
215
241
  },
242
+ lockArrowsNavigation: {
243
+ type: Boolean,
244
+ required: false,
245
+ default: true,
246
+ },
247
+ lockTabNavigation: {
248
+ type: Boolean,
249
+ required: false,
250
+ default: true,
251
+ },
216
252
  menuWidth: {
217
253
  type: Number,
218
254
  required: false,
@@ -340,6 +376,8 @@ export default {
340
376
  hasActions,
341
377
  idLocal,
342
378
  isMenuRendered,
379
+ onClose,
380
+ onOpen,
343
381
  popperContainerIdSelector,
344
382
  startPopper,
345
383
  statusExpanded,
@@ -1,4 +1,5 @@
1
1
  import {
2
+ computed,
2
3
  ref,
3
4
  toRef,
4
5
  } from "vue";
@@ -7,18 +8,35 @@ import {
7
8
  autoUpdate,
8
9
  computePosition,
9
10
  flip,
10
- limitShift,
11
- shift
11
+ shift,
12
12
  } from "@floating-ui/vue";
13
13
 
14
14
  export default function PopoverAPI(props, {
15
15
  dropdownButtonRef = ref(undefined),
16
16
  dropdownRef = ref(undefined),
17
17
  }) {
18
+ const floatingFlip = toRef(props, "floatingFlip");
19
+ const floatingShift = toRef(props, "floatingShift");
18
20
  const placement = toRef(props, "placement");
19
21
 
20
22
  const cleanupPopper = ref(undefined);
21
23
 
24
+ const middleware = computed(() => {
25
+ const MIDDLEWARE = [];
26
+ if (floatingFlip.value?.use) {
27
+ MIDDLEWARE.push(
28
+ flip(floatingFlip.value),
29
+ );
30
+ }
31
+ if (floatingShift.value?.use) {
32
+ MIDDLEWARE.push(
33
+ shift(floatingShift.value),
34
+ );
35
+ }
36
+
37
+ return MIDDLEWARE;
38
+ });
39
+
22
40
  const startPopper = () => {
23
41
  if (!cleanupPopper.value) {
24
42
  cleanupPopper.value = autoUpdate(
@@ -30,10 +48,7 @@ export default function PopoverAPI(props, {
30
48
  dropdownRef.value,
31
49
  {
32
50
  placement: placement.value,
33
- middleware: [
34
- flip(),
35
- shift({ limiter: limitShift() }),
36
- ]
51
+ middleware: middleware.value,
37
52
  },
38
53
  ).then(({ x, y }) => {
39
54
  Object.assign(dropdownRef.value.style, {
@@ -22,9 +22,12 @@ export default function ToggleAPI(props, {
22
22
  startPopper = () => {},
23
23
  }) {
24
24
  const disabled = toRef(props, "disabled");
25
+ const dropdownRenderDefault = toRef(props, "dropdownRenderDefault");
25
26
  const elementsForArrows = toRef(props, "elementsForArrows");
26
27
  const isCloseByClickInside = toRef(props, "isCloseByClickInside");
27
28
  const isListWidthSameWithButton = toRef(props, "isListWidthSameWithButton");
29
+ const lockArrowsNavigation = toRef(props, "lockArrowsNavigation");
30
+ const lockTabNavigation = toRef(props, "lockTabNavigation");
28
31
  const persist = toRef(props, "persist");
29
32
 
30
33
  const buttonWidth = ref(undefined);
@@ -32,7 +35,7 @@ export default function ToggleAPI(props, {
32
35
  const statusExpanded = ref(false);
33
36
  const timerCloseHover = ref(undefined);
34
37
  const triggerOpen = ref(undefined);
35
- const wasOpened = ref(false);
38
+ const wasOpened = ref(dropdownRenderDefault.value || false);
36
39
 
37
40
  const {
38
41
  closeDropdownGlobal,
@@ -76,6 +79,9 @@ export default function ToggleAPI(props, {
76
79
  const EVENT = $event || window.$event;
77
80
  if (EVENT.keyCode === AKeysCode.arrowDown ||
78
81
  EVENT.keyCode === AKeysCode.arrowUp) { // arrow down or up
82
+ if (!lockArrowsNavigation.value) {
83
+ return;
84
+ }
79
85
  const DOWN = EVENT.keyCode === AKeysCode.arrowDown;
80
86
  pressArrows({ down: DOWN });
81
87
  $event.preventDefault();
@@ -85,6 +91,9 @@ export default function ToggleAPI(props, {
85
91
  $event.preventDefault();
86
92
  $event.stopPropagation();
87
93
  } else if (EVENT.keyCode === AKeysCode.tab) {
94
+ if (!lockTabNavigation.value) {
95
+ return;
96
+ }
88
97
  if (EVENT.shiftKey) {
89
98
  onClose();
90
99
  setTimeout(() => {
@@ -136,7 +145,7 @@ export default function ToggleAPI(props, {
136
145
  }
137
146
  };
138
147
 
139
- const onOpen = ({ trigger = "click" } = {}) => {
148
+ const onOpen = ({ trigger = "click", selectorToFocus } = {}) => {
140
149
  if (trigger === "hover" && triggerOpen.value === "hover") {
141
150
  clearTimeout(timerCloseHover.value);
142
151
  }
@@ -154,7 +163,11 @@ export default function ToggleAPI(props, {
154
163
  wasOpened.value = true;
155
164
  setTimeout(() => {
156
165
  setEventCloseClick();
157
- if (trigger === "click") {
166
+ if (selectorToFocus) {
167
+ setTimeout(() => {
168
+ document.getElementById(selectorToFocus).focus();
169
+ });
170
+ } else if (trigger === "click") {
158
171
  setTimeout(() => {
159
172
  setFocusToFirstElement();
160
173
  });