@inriver/inri 1.14.0 → 1.16.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 (120) 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 +20 -0
  5. package/azure/pipelines/templates/deployFramework.yml +30 -0
  6. package/azure/pipelines/templates/publishFramwork.yml +39 -0
  7. package/componentProperties.d.ts +8 -8
  8. package/configs/base-eslint-config.js +36 -36
  9. package/configs/base-tailwind-config.js +149 -149
  10. package/i18n.ts +11 -11
  11. package/index.ts +29 -29
  12. package/package.json +7 -2
  13. package/src/components/CAutoBreadcrumbs.vue +72 -72
  14. package/src/components/CBtn.vue +98 -98
  15. package/src/components/CColorPicker.vue +55 -55
  16. package/src/components/CContextMenu.vue +29 -29
  17. package/src/components/CDatePicker.vue +51 -51
  18. package/src/components/CDeleteTileBtn.vue +52 -52
  19. package/src/components/CDialog.vue +253 -253
  20. package/src/components/CDialogCloseBtn.vue +9 -9
  21. package/src/components/CDirtyCheck.vue +68 -68
  22. package/src/components/CDrawer.vue +44 -44
  23. package/src/components/CDrawerButton.vue +91 -91
  24. package/src/components/CExpansionItem.vue +57 -57
  25. package/src/components/CExpansionItemWithCheckbox.vue +41 -41
  26. package/src/components/CFileDropzone.vue +114 -114
  27. package/src/components/CGrid.vue +101 -101
  28. package/src/components/CHeader.vue +10 -10
  29. package/src/components/CHeaderLinks.vue +61 -61
  30. package/src/components/CHeaderMenuLink.vue +51 -51
  31. package/src/components/CHeaderSearch.vue +142 -142
  32. package/src/components/CIconBtn.vue +70 -70
  33. package/src/components/CMenuItem.vue +66 -66
  34. package/src/components/CPageContainer.vue +11 -11
  35. package/src/components/CPageError.vue +24 -24
  36. package/src/components/CPageSpinner.vue +18 -18
  37. package/src/components/CSearch.vue +45 -45
  38. package/src/components/CSection.vue +29 -29
  39. package/src/components/CSectionTitle.vue +8 -8
  40. package/src/components/CSelect.vue +208 -208
  41. package/src/components/CSlideEffect.vue +62 -62
  42. package/src/components/CSpinner.vue +107 -107
  43. package/src/components/CTableActions.vue +16 -16
  44. package/src/components/CTileBtn.vue +178 -178
  45. package/src/components/CTimePicker.vue +42 -42
  46. package/src/components/CToggleGridView.vue +26 -26
  47. package/src/components/CToggleSidebarBtn.vue +19 -19
  48. package/src/components/CTooltip.vue +44 -44
  49. package/src/components/CTreeNode.vue +39 -39
  50. package/src/components/cards/CBannerCard.vue +103 -103
  51. package/src/components/cards/CSmallCard.vue +149 -149
  52. package/src/components/internal-components/ConfirmDialog.vue +78 -78
  53. package/src/composables/useDialog.ts +46 -46
  54. package/src/composables/useDirtyCheck.ts +25 -25
  55. package/src/composables/useDoubleClickListener.ts +28 -28
  56. package/src/composables/useSelectable.ts +62 -62
  57. package/src/composables/useTruncateChips.ts +46 -46
  58. package/src/i18n/de/index.ts +17 -17
  59. package/src/i18n/en/index.ts +84 -84
  60. package/src/i18n/es/index.ts +7 -7
  61. package/src/i18n/fr/index.ts +7 -7
  62. package/src/init/initInriFramework.ts +37 -37
  63. package/src/init/useInriApp.ts +55 -55
  64. package/src/layouts/CLayoutBlank.vue +7 -7
  65. package/src/layouts/CLayoutWithBackButton.vue +50 -50
  66. package/src/layouts/CLayoutWithSidebars.vue +46 -46
  67. package/src/layouts/layout-fragments/CPageAutoBreadcrumbs.vue +6 -6
  68. package/src/layouts/layout-fragments/CPageBackButton.vue +18 -18
  69. package/src/layouts/layout-fragments/CPageBlank.vue +20 -20
  70. package/src/layouts/layout-fragments/CPageFlexCol.vue +5 -5
  71. package/src/layouts/layout-fragments/CPageLeftSidebar.vue +5 -5
  72. package/src/layouts/layout-fragments/CPageMainContent.vue +5 -5
  73. package/src/layouts/layout-fragments/CPageOuterWrapper.vue +5 -5
  74. package/src/layouts/layout-fragments/CPageRightSidebar.vue +5 -5
  75. package/src/layouts/layout-fragments/CPageTitle.vue +34 -34
  76. package/src/plugins/dialog.ts +45 -45
  77. package/src/plugins/errors/ErrorFactories.ts +59 -59
  78. package/src/plugins/errors/Errors.ts +156 -156
  79. package/src/plugins/errors/Exception.ts +6 -6
  80. package/src/plugins/errors/globalErrorHandler.ts +21 -21
  81. package/src/plugins/errors/handleError.ts +34 -34
  82. package/src/plugins/errors/logger.ts +16 -16
  83. package/src/plugins/errors/vueErrorHandler.ts +26 -26
  84. package/src/plugins/globalAppConfig.ts +25 -25
  85. package/src/plugins/i18n.ts +46 -46
  86. package/src/plugins/inriIcons.ts +58 -58
  87. package/src/plugins/inriverQuasarComponentConfigurations.ts +67 -67
  88. package/src/plugins/library.ts +119 -119
  89. package/src/plugins/notify.ts +153 -153
  90. package/src/plugins/quasar-user-options.ts +19 -19
  91. package/src/plugins/validationRules.ts +292 -292
  92. package/src/shims-vue.d.ts +6 -6
  93. package/src/stores/inriStore.ts +54 -54
  94. package/src/stores/interfaceLanguageStore.ts +27 -27
  95. package/src/styles/_css-variables.scss +101 -101
  96. package/src/styles/_reset.scss +67 -67
  97. package/src/styles/_transitions.scss +9 -9
  98. package/src/styles/_utils.scss +15 -15
  99. package/src/styles/components/_breadcrumbs.scss +3 -3
  100. package/src/styles/components/_checkboxes.scss +17 -17
  101. package/src/styles/components/_chips.scss +17 -17
  102. package/src/styles/components/_forms.scss +203 -203
  103. package/src/styles/components/_menu.scss +12 -12
  104. package/src/styles/components/_notifications.scss +24 -24
  105. package/src/styles/components/_q-editor.scss +14 -14
  106. package/src/styles/components/_radio-buttons.scss +17 -17
  107. package/src/styles/components/_tables.scss +92 -92
  108. package/src/styles/components/_tooltips.scss +5 -5
  109. package/src/styles/components/_tree.scss +86 -86
  110. package/src/styles/components/_truncated-chips.scss +39 -39
  111. package/src/styles/main.scss +45 -45
  112. package/src/styles/quasar.variables.scss +50 -50
  113. package/src/styles/tailwind/index.css +2 -2
  114. package/src/typings.d.ts +70 -70
  115. package/src/utils/colorUtils.ts +73 -73
  116. package/src/utils/errorUtils.ts +37 -37
  117. package/src/utils/fileUtils.ts +57 -57
  118. package/src/utils/helpers.ts +6 -6
  119. package/src/utils/routeUtils.ts +23 -23
  120. 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>