@inriver/inri 1.13.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +11 -0
  3. package/.eslintrc.js +5 -5
  4. package/azure/pipelines/single-build-release.yml +6 -0
  5. package/azure/pipelines/templates/deployFramework.yml +50 -0
  6. package/componentProperties.d.ts +8 -8
  7. package/configs/base-eslint-config.js +36 -36
  8. package/configs/base-tailwind-config.js +149 -149
  9. package/i18n.ts +11 -11
  10. package/index.ts +29 -29
  11. package/package.json +7 -2
  12. package/src/components/CAutoBreadcrumbs.vue +72 -72
  13. package/src/components/CBtn.vue +98 -98
  14. package/src/components/CColorPicker.vue +55 -55
  15. package/src/components/CContextMenu.vue +29 -29
  16. package/src/components/CDatePicker.vue +51 -51
  17. package/src/components/CDeleteTileBtn.vue +52 -52
  18. package/src/components/CDialog.vue +253 -253
  19. package/src/components/CDialogCloseBtn.vue +9 -9
  20. package/src/components/CDirtyCheck.vue +68 -68
  21. package/src/components/CDrawer.vue +44 -44
  22. package/src/components/CDrawerButton.vue +91 -91
  23. package/src/components/CExpansionItem.vue +57 -57
  24. package/src/components/CExpansionItemWithCheckbox.vue +41 -41
  25. package/src/components/CFileDropzone.vue +114 -114
  26. package/src/components/CGrid.vue +101 -101
  27. package/src/components/CHeader.vue +10 -10
  28. package/src/components/CHeaderLinks.vue +61 -61
  29. package/src/components/CHeaderMenuLink.vue +51 -51
  30. package/src/components/CHeaderSearch.vue +142 -142
  31. package/src/components/CIconBtn.vue +70 -70
  32. package/src/components/CMenuItem.vue +66 -66
  33. package/src/components/CPageContainer.vue +11 -11
  34. package/src/components/CPageError.vue +24 -24
  35. package/src/components/CPageSpinner.vue +18 -18
  36. package/src/components/CSearch.vue +45 -45
  37. package/src/components/CSection.vue +29 -29
  38. package/src/components/CSectionTitle.vue +8 -8
  39. package/src/components/CSelect.vue +208 -208
  40. package/src/components/CSlideEffect.vue +62 -62
  41. package/src/components/CSpinner.vue +107 -107
  42. package/src/components/CTableActions.vue +16 -16
  43. package/src/components/CTileBtn.vue +178 -178
  44. package/src/components/CTimePicker.vue +42 -42
  45. package/src/components/CToggleGridView.vue +26 -26
  46. package/src/components/CToggleSidebarBtn.vue +19 -19
  47. package/src/components/CTooltip.vue +44 -44
  48. package/src/components/CTreeNode.vue +39 -39
  49. package/src/components/cards/CBannerCard.vue +103 -103
  50. package/src/components/cards/CSmallCard.vue +149 -149
  51. package/src/components/internal-components/ConfirmDialog.vue +78 -78
  52. package/src/composables/useDialog.ts +46 -46
  53. package/src/composables/useDirtyCheck.ts +25 -25
  54. package/src/composables/useDoubleClickListener.ts +28 -28
  55. package/src/composables/useSelectable.ts +62 -62
  56. package/src/composables/useTruncateChips.ts +46 -46
  57. package/src/i18n/de/index.ts +17 -17
  58. package/src/i18n/en/index.ts +84 -84
  59. package/src/i18n/es/index.ts +7 -7
  60. package/src/i18n/fr/index.ts +7 -7
  61. package/src/init/initInriFramework.ts +37 -37
  62. package/src/init/useInriApp.ts +55 -55
  63. package/src/layouts/CLayoutBlank.vue +7 -7
  64. package/src/layouts/CLayoutWithBackButton.vue +50 -50
  65. package/src/layouts/CLayoutWithSidebars.vue +46 -46
  66. package/src/layouts/layout-fragments/CPageAutoBreadcrumbs.vue +6 -6
  67. package/src/layouts/layout-fragments/CPageBackButton.vue +18 -18
  68. package/src/layouts/layout-fragments/CPageBlank.vue +20 -20
  69. package/src/layouts/layout-fragments/CPageFlexCol.vue +5 -5
  70. package/src/layouts/layout-fragments/CPageLeftSidebar.vue +5 -5
  71. package/src/layouts/layout-fragments/CPageMainContent.vue +5 -5
  72. package/src/layouts/layout-fragments/CPageOuterWrapper.vue +5 -5
  73. package/src/layouts/layout-fragments/CPageRightSidebar.vue +5 -5
  74. package/src/layouts/layout-fragments/CPageTitle.vue +34 -34
  75. package/src/plugins/dialog.ts +45 -45
  76. package/src/plugins/errors/ErrorFactories.ts +59 -59
  77. package/src/plugins/errors/Errors.ts +156 -156
  78. package/src/plugins/errors/Exception.ts +6 -6
  79. package/src/plugins/errors/globalErrorHandler.ts +21 -21
  80. package/src/plugins/errors/handleError.ts +34 -34
  81. package/src/plugins/errors/logger.ts +16 -16
  82. package/src/plugins/errors/vueErrorHandler.ts +26 -26
  83. package/src/plugins/globalAppConfig.ts +25 -25
  84. package/src/plugins/i18n.ts +46 -46
  85. package/src/plugins/inriIcons.ts +58 -58
  86. package/src/plugins/inriverQuasarComponentConfigurations.ts +67 -67
  87. package/src/plugins/library.ts +119 -119
  88. package/src/plugins/notify.ts +153 -153
  89. package/src/plugins/quasar-user-options.ts +19 -19
  90. package/src/plugins/validationRules.ts +292 -292
  91. package/src/shims-vue.d.ts +6 -6
  92. package/src/stores/inriStore.ts +54 -54
  93. package/src/stores/interfaceLanguageStore.ts +27 -27
  94. package/src/styles/_css-variables.scss +101 -101
  95. package/src/styles/_reset.scss +67 -67
  96. package/src/styles/_transitions.scss +9 -9
  97. package/src/styles/_utils.scss +15 -15
  98. package/src/styles/components/_breadcrumbs.scss +3 -3
  99. package/src/styles/components/_checkboxes.scss +17 -17
  100. package/src/styles/components/_chips.scss +17 -17
  101. package/src/styles/components/_forms.scss +203 -203
  102. package/src/styles/components/_menu.scss +12 -12
  103. package/src/styles/components/_notifications.scss +24 -24
  104. package/src/styles/components/_q-editor.scss +14 -14
  105. package/src/styles/components/_radio-buttons.scss +17 -17
  106. package/src/styles/components/_tables.scss +92 -92
  107. package/src/styles/components/_tooltips.scss +5 -5
  108. package/src/styles/components/_tree.scss +86 -86
  109. package/src/styles/components/_truncated-chips.scss +39 -39
  110. package/src/styles/main.scss +45 -45
  111. package/src/styles/quasar.variables.scss +50 -50
  112. package/src/styles/tailwind/index.css +2 -2
  113. package/src/typings.d.ts +70 -70
  114. package/src/utils/colorUtils.ts +73 -73
  115. package/src/utils/errorUtils.ts +37 -37
  116. package/src/utils/fileUtils.ts +57 -57
  117. package/src/utils/helpers.ts +6 -6
  118. package/src/utils/routeUtils.ts +23 -23
  119. package/tsconfig.json +34 -34
@@ -1,84 +1,84 @@
1
- export default {
2
- inri: {
3
- validation: {
4
- required: 'This field is required',
5
- maxLength: 'This field can be no longer than {parsedLength} characters long',
6
- minLength: 'This field must be at least {parsedLength} characters long',
7
- email: 'This field must be a valid email address',
8
- url: 'This field must be a valid URL',
9
- https: 'This field must be a valid URL using https',
10
- extension: 'Valid file extensions: {extensions}',
11
- contains: 'This field is not valid. Must contain {match}',
12
- notContains: 'This field is not valid. Must not contain {match}',
13
- notBeginsWith: 'This field is not valid. Must not begin with {match}',
14
- notEndsWith: 'This field is not valid. Must not end with {match}',
15
- maxFileSize: 'Files can be no larger than {parsedFileSize}',
16
- maxImageSize: 'Images can be no larger than {size}',
17
- fileSizeTooBig: 'file size too big',
18
- fileTypeInvalid: 'file type invalid',
19
- },
20
- error: {
21
- unauthorized: 'Unauthorized',
22
- session_expired: 'Your session has expired and you will be returned to login.',
23
- internal_server_error: 'Internal server error',
24
- unknown_error: 'Unknown error',
25
- undefined_error: 'Undefined error',
26
- file_error: 'Could not load file',
27
- error: 'Error',
28
- network_error: 'Network error',
29
- error_occurred: 'An error occurred',
30
- service_unavailable: 'Service unavailable',
31
- service_unavailable_try_again: 'Request could not be handled. Please try again in a minute',
32
- not_found: 'Not found',
33
- requested_asset_not_found: 'The requested asset does not exist',
34
- folder_does_not_exist: 'Folder does not exist',
35
- could_not_retrieve_assets: 'Folder does not exist. Could not retrieve assets',
36
- error_code: 'error code: {code}',
37
- page_does_not_exist: 'Sorry! This page does not exist!',
38
- },
39
- common: {
40
- ok: 'ok',
41
- save: 'save',
42
- cancel: 'cancel',
43
- confirm: 'confirm',
44
- yes: 'yes',
45
- delete: 'delete',
46
- close: 'close',
47
- download: 'download',
48
- more: 'more',
49
- },
50
- dialog: {
51
- unsaved_changes_title: 'unsaved changes',
52
- unsaved_changes_message: 'changes are not saved, do you want to continue?',
53
- confirm_tooltip_invalid_fields: 'all required fields needs to have a valid value',
54
- confirm_delete_title: 'are you sure you want to delete?',
55
- },
56
- toggle_actions: {
57
- sidebar: 'toggle sidebar',
58
- grid_view: 'grid view',
59
- table_view: 'table view',
60
- },
61
- select: {
62
- select_all: 'select all',
63
- no_results: 'no results',
64
- },
65
- navigate_back: 'go back',
66
- languages: {
67
- en: 'english',
68
- de: 'german',
69
- fr: 'french',
70
- es: 'spanish',
71
- },
72
- dropzone: {
73
- hint: 'drop files to instantly add them to {0}',
74
- hint_general: 'drop files to instantly add them here',
75
- invalid_drop_items: 'Invalid item(s) dragged into the dropzone',
76
- },
77
- toggle_drawer: 'toggle drawer',
78
- authentication: {
79
- session_expired: 'your session has expired',
80
- session_inactive: 'you have been inactive for too long, or you have been logged out of the main inriver portal.',
81
- log_in: 'log in again',
82
- },
83
- },
84
- }
1
+ export default {
2
+ inri: {
3
+ validation: {
4
+ required: 'This field is required',
5
+ maxLength: 'This field can be no longer than {parsedLength} characters long',
6
+ minLength: 'This field must be at least {parsedLength} characters long',
7
+ email: 'This field must be a valid email address',
8
+ url: 'This field must be a valid URL',
9
+ https: 'This field must be a valid URL using https',
10
+ extension: 'Valid file extensions: {extensions}',
11
+ contains: 'This field is not valid. Must contain {match}',
12
+ notContains: 'This field is not valid. Must not contain {match}',
13
+ notBeginsWith: 'This field is not valid. Must not begin with {match}',
14
+ notEndsWith: 'This field is not valid. Must not end with {match}',
15
+ maxFileSize: 'Files can be no larger than {parsedFileSize}',
16
+ maxImageSize: 'Images can be no larger than {size}',
17
+ fileSizeTooBig: 'file size too big',
18
+ fileTypeInvalid: 'file type invalid',
19
+ },
20
+ error: {
21
+ unauthorized: 'Unauthorized',
22
+ session_expired: 'Your session has expired and you will be returned to login.',
23
+ internal_server_error: 'Internal server error',
24
+ unknown_error: 'Unknown error',
25
+ undefined_error: 'Undefined error',
26
+ file_error: 'Could not load file',
27
+ error: 'Error',
28
+ network_error: 'Network error',
29
+ error_occurred: 'An error occurred',
30
+ service_unavailable: 'Service unavailable',
31
+ service_unavailable_try_again: 'Request could not be handled. Please try again in a minute',
32
+ not_found: 'Not found',
33
+ requested_asset_not_found: 'The requested asset does not exist',
34
+ folder_does_not_exist: 'Folder does not exist',
35
+ could_not_retrieve_assets: 'Folder does not exist. Could not retrieve assets',
36
+ error_code: 'error code: {code}',
37
+ page_does_not_exist: 'Sorry! This page does not exist!',
38
+ },
39
+ common: {
40
+ ok: 'ok',
41
+ save: 'save',
42
+ cancel: 'cancel',
43
+ confirm: 'confirm',
44
+ yes: 'yes',
45
+ delete: 'delete',
46
+ close: 'close',
47
+ download: 'download',
48
+ more: 'more',
49
+ },
50
+ dialog: {
51
+ unsaved_changes_title: 'unsaved changes',
52
+ unsaved_changes_message: 'changes are not saved, do you want to continue?',
53
+ confirm_tooltip_invalid_fields: 'all required fields needs to have a valid value',
54
+ confirm_delete_title: 'are you sure you want to delete?',
55
+ },
56
+ toggle_actions: {
57
+ sidebar: 'toggle sidebar',
58
+ grid_view: 'grid view',
59
+ table_view: 'table view',
60
+ },
61
+ select: {
62
+ select_all: 'select all',
63
+ no_results: 'no results',
64
+ },
65
+ navigate_back: 'go back',
66
+ languages: {
67
+ en: 'english',
68
+ de: 'german',
69
+ fr: 'french',
70
+ es: 'spanish',
71
+ },
72
+ dropzone: {
73
+ hint: 'drop files to instantly add them to {0}',
74
+ hint_general: 'drop files to instantly add them here',
75
+ invalid_drop_items: 'Invalid item(s) dragged into the dropzone',
76
+ },
77
+ toggle_drawer: 'toggle drawer',
78
+ authentication: {
79
+ session_expired: 'your session has expired',
80
+ session_inactive: 'you have been inactive for too long, or you have been logged out of the main inriver portal.',
81
+ log_in: 'log in again',
82
+ },
83
+ },
84
+ }
@@ -1,7 +1,7 @@
1
- export default {
2
- inri: {
3
- common: {
4
- yes: 'sí',
5
- },
6
- },
7
- }
1
+ export default {
2
+ inri: {
3
+ common: {
4
+ yes: 'sí',
5
+ },
6
+ },
7
+ }
@@ -1,7 +1,7 @@
1
- export default {
2
- inri: {
3
- common: {
4
- yes: 'Oui',
5
- },
6
- },
7
- }
1
+ export default {
2
+ inri: {
3
+ common: {
4
+ yes: 'Oui',
5
+ },
6
+ },
7
+ }
@@ -1,37 +1,37 @@
1
- import '../styles/main.scss'
2
- import 'windi.css'
3
- // import '../styles/tailwind/index.css'
4
- import { App } from 'vue'
5
- import { Quasar, Notify, Dialog, Meta } from 'quasar'
6
- import { registerComponents } from '../plugins/library'
7
- import { registerAppConfigurations } from '../plugins/globalAppConfig'
8
- import { i18n } from '../plugins/i18n'
9
- import logger from '../plugins/errors/logger'
10
- import { VueErrorHandler } from '../plugins/errors/vueErrorHandler'
11
- import '../plugins/errors/globalErrorHandler'
12
-
13
- // Quasar plugins
14
- import iconSet from 'quasar/icon-set/mdi-v6'
15
- import '@quasar/extras/mdi-v6/mdi-v6.css'
16
- iconSet.field.error = 'mdi-alert-circle-outline'
17
-
18
- export const initInriFramework = (Vue: App): void => {
19
- // Register C-components
20
- registerComponents(Vue)
21
-
22
- // Register global application configurations
23
- registerAppConfigurations(Vue)
24
-
25
- Vue.use(Quasar as any, {
26
- plugins: {
27
- Notify,
28
- Dialog,
29
- Meta,
30
- },
31
- iconSet: iconSet,
32
- })
33
- Vue.use(i18n)
34
- Vue.use(VueErrorHandler)
35
-
36
- logger.init()
37
- }
1
+ import '../styles/main.scss'
2
+ // import 'windi.css'
3
+ // import '../styles/tailwind/index.css'
4
+ import { App } from 'vue'
5
+ import { Quasar, Notify, Dialog, Meta } from 'quasar'
6
+ import { registerComponents } from '../plugins/library'
7
+ import { registerAppConfigurations } from '../plugins/globalAppConfig'
8
+ import { i18n } from '../plugins/i18n'
9
+ import logger from '../plugins/errors/logger'
10
+ import { VueErrorHandler } from '../plugins/errors/vueErrorHandler'
11
+ import '../plugins/errors/globalErrorHandler'
12
+
13
+ // Quasar plugins
14
+ import iconSet from 'quasar/icon-set/mdi-v6'
15
+ import '@quasar/extras/mdi-v6/mdi-v6.css'
16
+ iconSet.field.error = 'mdi-alert-circle-outline'
17
+
18
+ export const initInriFramework = (Vue: App): void => {
19
+ // Register C-components
20
+ registerComponents(Vue)
21
+
22
+ // Register global application configurations
23
+ registerAppConfigurations(Vue)
24
+
25
+ Vue.use(Quasar as any, {
26
+ plugins: {
27
+ Notify,
28
+ Dialog,
29
+ Meta,
30
+ },
31
+ iconSet: iconSet,
32
+ })
33
+ Vue.use(i18n)
34
+ Vue.use(VueErrorHandler)
35
+
36
+ logger.init()
37
+ }
@@ -1,55 +1,55 @@
1
- import { initInriIcons } from '../plugins/inriIcons'
2
- import { useRouter, RouteLocationNormalized } from 'vue-router'
3
- import { watch } from 'vue'
4
- import { getRouteTitle } from '../utils/routeUtils'
5
- import { useMeta } from 'quasar'
6
- import { useInriStore } from '../stores/inriStore'
7
-
8
- export default function useInriApp () {
9
- const router = useRouter()
10
- const inriStore = useInriStore()
11
-
12
- initInriIcons()
13
-
14
- router.beforeResolve((to) => {
15
- setPageTitle(to)
16
- setRouteTheme(to)
17
- })
18
-
19
- watch(inriStore.isAnyDirty, (value) => (
20
- setDirtyPageTitle(value)
21
- ))
22
-
23
- // Methods
24
- function setPageTitle (to: RouteLocationNormalized) {
25
- let pageTitle = ''
26
-
27
- if (to.meta.title) {
28
- pageTitle = getRouteTitle(to)
29
- } else if (to.matched[0]) {
30
- pageTitle = getRouteTitle(to.matched[0])
31
- } else {
32
- pageTitle = ''
33
- }
34
-
35
- document.title = pageTitle.length ? `inriver - ${pageTitle}` : 'inriver'
36
- }
37
-
38
- function setDirtyPageTitle (isDirty) {
39
- if (isDirty) {
40
- document.title = `* ${document.title}`
41
- } else {
42
- document.title = document.title.replace('* ', '')
43
- }
44
- }
45
-
46
- function setRouteTheme (to) {
47
- // This will create something like <body theme="route-demo-theme">
48
- // It can then be used as a CSS selector for overriding colors
49
- useMeta({
50
- bodyAttr: {
51
- theme: to.meta?.theme ? to.meta.theme : '',
52
- },
53
- })
54
- }
55
- }
1
+ import { initInriIcons } from '../plugins/inriIcons'
2
+ import { useRouter, RouteLocationNormalized } from 'vue-router'
3
+ import { watch } from 'vue'
4
+ import { getRouteTitle } from '../utils/routeUtils'
5
+ import { useMeta } from 'quasar'
6
+ import { useInriStore } from '../stores/inriStore'
7
+
8
+ export default function useInriApp () {
9
+ const router = useRouter()
10
+ const inriStore = useInriStore()
11
+
12
+ initInriIcons()
13
+
14
+ router.beforeResolve((to) => {
15
+ setPageTitle(to)
16
+ setRouteTheme(to)
17
+ })
18
+
19
+ watch(inriStore.isAnyDirty, (value) => (
20
+ setDirtyPageTitle(value)
21
+ ))
22
+
23
+ // Methods
24
+ function setPageTitle (to: RouteLocationNormalized) {
25
+ let pageTitle = ''
26
+
27
+ if (to.meta.title) {
28
+ pageTitle = getRouteTitle(to)
29
+ } else if (to.matched[0]) {
30
+ pageTitle = getRouteTitle(to.matched[0])
31
+ } else {
32
+ pageTitle = ''
33
+ }
34
+
35
+ document.title = pageTitle.length ? `inriver - ${pageTitle}` : 'inriver'
36
+ }
37
+
38
+ function setDirtyPageTitle (isDirty) {
39
+ if (isDirty) {
40
+ document.title = `* ${document.title}`
41
+ } else {
42
+ document.title = document.title.replace('* ', '')
43
+ }
44
+ }
45
+
46
+ function setRouteTheme (to) {
47
+ // This will create something like <body theme="route-demo-theme">
48
+ // It can then be used as a CSS selector for overriding colors
49
+ useMeta({
50
+ bodyAttr: {
51
+ theme: to.meta?.theme ? to.meta.theme : '',
52
+ },
53
+ })
54
+ }
55
+ }
@@ -1,7 +1,7 @@
1
- <template>
2
- <c-page-blank>
3
- <c-page-main-content class="px-15">
4
- <slot />
5
- </c-page-main-content>
6
- </c-page-blank>
7
- </template>
1
+ <template>
2
+ <c-page-blank>
3
+ <c-page-main-content class="px-15">
4
+ <slot />
5
+ </c-page-main-content>
6
+ </c-page-blank>
7
+ </template>
@@ -1,50 +1,50 @@
1
- <template>
2
- <c-page-blank class="border-t">
3
- <c-page-flex-col>
4
- <div
5
- v-if="!hideTitle"
6
- class="flex"
7
- >
8
- <c-page-back-button />
9
- <c-page-title :title="title" />
10
- </div>
11
-
12
- <c-page-outer-wrapper>
13
- <c-page-left-sidebar :style="{ width: leftSidebarWidth + 'px' }">
14
- <slot name="left-sidebar" />
15
- </c-page-left-sidebar>
16
-
17
- <c-page-flex-col>
18
- <c-page-auto-breadcrumbs v-if="showBreadcrumbs" />
19
-
20
- <c-page-main-content>
21
- <slot />
22
- </c-page-main-content>
23
- </c-page-flex-col>
24
- </c-page-outer-wrapper>
25
- </c-page-flex-col>
26
-
27
- <c-page-right-sidebar :style="{ width: rightSidebarWidth + 'px' }">
28
- <slot name="right-sidebar" />
29
- </c-page-right-sidebar>
30
- </c-page-blank>
31
- </template>
32
-
33
- <script setup lang="ts">
34
- defineProps({
35
- title: {
36
- type: String,
37
- default: undefined,
38
- },
39
- showBreadcrumbs: Boolean,
40
- hideTitle: Boolean,
41
- leftSidebarWidth: {
42
- type: [String, Number],
43
- default: '60',
44
- },
45
- rightSidebarWidth: {
46
- type: [String, Number],
47
- default: '60',
48
- },
49
- })
50
- </script>
1
+ <template>
2
+ <c-page-blank class="border-t">
3
+ <c-page-flex-col>
4
+ <div
5
+ v-if="!hideTitle"
6
+ class="flex"
7
+ >
8
+ <c-page-back-button />
9
+ <c-page-title :title="title" />
10
+ </div>
11
+
12
+ <c-page-outer-wrapper>
13
+ <c-page-left-sidebar :style="{ width: leftSidebarWidth + 'px' }">
14
+ <slot name="left-sidebar" />
15
+ </c-page-left-sidebar>
16
+
17
+ <c-page-flex-col>
18
+ <c-page-auto-breadcrumbs v-if="showBreadcrumbs" />
19
+
20
+ <c-page-main-content>
21
+ <slot />
22
+ </c-page-main-content>
23
+ </c-page-flex-col>
24
+ </c-page-outer-wrapper>
25
+ </c-page-flex-col>
26
+
27
+ <c-page-right-sidebar :style="{ width: rightSidebarWidth + 'px' }">
28
+ <slot name="right-sidebar" />
29
+ </c-page-right-sidebar>
30
+ </c-page-blank>
31
+ </template>
32
+
33
+ <script setup lang="ts">
34
+ defineProps({
35
+ title: {
36
+ type: String,
37
+ default: undefined,
38
+ },
39
+ showBreadcrumbs: Boolean,
40
+ hideTitle: Boolean,
41
+ leftSidebarWidth: {
42
+ type: [String, Number],
43
+ default: '60',
44
+ },
45
+ rightSidebarWidth: {
46
+ type: [String, Number],
47
+ default: '60',
48
+ },
49
+ })
50
+ </script>
@@ -1,46 +1,46 @@
1
- <template>
2
- <c-page-blank class="border-t">
3
- <c-page-flex-col>
4
- <c-page-outer-wrapper>
5
- <c-page-left-sidebar :style="{ width: leftSidebarWidth + 'px' }">
6
- <slot name="left-sidebar" />
7
- </c-page-left-sidebar>
8
-
9
- <c-page-flex-col>
10
- <div v-if="!hideTitle">
11
- <c-page-title :title="title" />
12
- </div>
13
-
14
- <c-page-auto-breadcrumbs v-if="showBreadcrumbs" />
15
-
16
- <c-page-main-content>
17
- <slot />
18
- </c-page-main-content>
19
- </c-page-flex-col>
20
- </c-page-outer-wrapper>
21
- </c-page-flex-col>
22
-
23
- <c-page-right-sidebar :style="{ width: rightSidebarWidth + 'px' }">
24
- <slot name="right-sidebar" />
25
- </c-page-right-sidebar>
26
- </c-page-blank>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- defineProps({
31
- title: {
32
- type: String,
33
- default: undefined,
34
- },
35
- showBreadcrumbs: Boolean,
36
- hideTitle: Boolean,
37
- leftSidebarWidth: {
38
- type: [String, Number],
39
- default: '60',
40
- },
41
- rightSidebarWidth: {
42
- type: [String, Number],
43
- default: '60',
44
- },
45
- })
46
- </script>
1
+ <template>
2
+ <c-page-blank class="border-t">
3
+ <c-page-flex-col>
4
+ <c-page-outer-wrapper>
5
+ <c-page-left-sidebar :style="{ width: leftSidebarWidth + 'px' }">
6
+ <slot name="left-sidebar" />
7
+ </c-page-left-sidebar>
8
+
9
+ <c-page-flex-col>
10
+ <div v-if="!hideTitle">
11
+ <c-page-title :title="title" />
12
+ </div>
13
+
14
+ <c-page-auto-breadcrumbs v-if="showBreadcrumbs" />
15
+
16
+ <c-page-main-content>
17
+ <slot />
18
+ </c-page-main-content>
19
+ </c-page-flex-col>
20
+ </c-page-outer-wrapper>
21
+ </c-page-flex-col>
22
+
23
+ <c-page-right-sidebar :style="{ width: rightSidebarWidth + 'px' }">
24
+ <slot name="right-sidebar" />
25
+ </c-page-right-sidebar>
26
+ </c-page-blank>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ defineProps({
31
+ title: {
32
+ type: String,
33
+ default: undefined,
34
+ },
35
+ showBreadcrumbs: Boolean,
36
+ hideTitle: Boolean,
37
+ leftSidebarWidth: {
38
+ type: [String, Number],
39
+ default: '60',
40
+ },
41
+ rightSidebarWidth: {
42
+ type: [String, Number],
43
+ default: '60',
44
+ },
45
+ })
46
+ </script>
@@ -1,6 +1,6 @@
1
- <template>
2
- <div>
3
- <c-auto-breadcrumbs class="px-6 h-12 flex content-center" />
4
- <q-separator />
5
- </div>
6
- </template>
1
+ <template>
2
+ <div>
3
+ <c-auto-breadcrumbs class="px-6 h-12 flex content-center" />
4
+ <q-separator />
5
+ </div>
6
+ </template>
@@ -1,18 +1,18 @@
1
- <template>
2
- <c-tile-btn
3
- v-if="parentRoute"
4
- data-id="page-back-btn"
5
- icon="inri-arrow"
6
- class="rotate-180"
7
- :tooltip-right="$t('inri.navigate_back')"
8
- :to="{ name: parentRoute }"
9
- />
10
- </template>
11
-
12
- <script setup lang="ts">
13
- import { computed } from 'vue'
14
- import { useRoute } from 'vue-router'
15
-
16
- const route = useRoute()
17
- const parentRoute = computed(() => route.meta?.parent)
18
- </script>
1
+ <template>
2
+ <c-tile-btn
3
+ v-if="parentRoute"
4
+ data-id="page-back-btn"
5
+ icon="inri-arrow"
6
+ class="rotate-180"
7
+ :tooltip-right="$t('inri.navigate_back')"
8
+ :to="{ name: parentRoute }"
9
+ />
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import { computed } from 'vue'
14
+ import { useRoute } from 'vue-router'
15
+
16
+ const route = useRoute()
17
+ const parentRoute = computed(() => route.meta?.parent)
18
+ </script>