divhunt 2.0.4 → 2.0.6

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 (125) hide show
  1. package/addons/render/assets/back/functions/import.js +44 -0
  2. package/addons/render/assets/back/load.js +2 -0
  3. package/package.json +3 -3
  4. package/addons/render/elements/front/items/self/base/menu/menu.js +0 -96
  5. package/addons/render/elements/front/items/self/base/menu/styles/base.css +0 -116
  6. package/addons/render/elements/front/items/self/base/menu/styles/sizes.css +0 -27
  7. package/addons/render/elements/front/items/self/base/menu/styles/variants.css +0 -99
  8. package/addons/render/elements/front/items/self/base/tag/tag.css +0 -199
  9. package/addons/render/elements/front/items/self/base/tag/tag.js +0 -37
  10. package/addons/render/elements/front/items/self/cards/basic/basic.js +0 -89
  11. package/addons/render/elements/front/items/self/cards/basic/styles/base.css +0 -66
  12. package/addons/render/elements/front/items/self/cards/basic/styles/sizes.css +0 -32
  13. package/addons/render/elements/front/items/self/cards/basic/styles/variants.css +0 -99
  14. package/addons/render/elements/front/items/self/cards/list/list.js +0 -108
  15. package/addons/render/elements/front/items/self/cards/list/styles/base.css +0 -96
  16. package/addons/render/elements/front/items/self/cards/list/styles/sizes.css +0 -32
  17. package/addons/render/elements/front/items/self/cards/list/styles/variants.css +0 -99
  18. package/addons/render/elements/front/items/self/cards/media/media.js +0 -116
  19. package/addons/render/elements/front/items/self/cards/media/styles/base.css +0 -126
  20. package/addons/render/elements/front/items/self/cards/media/styles/sizes.css +0 -49
  21. package/addons/render/elements/front/items/self/cards/media/styles/variants.css +0 -74
  22. package/addons/render/elements/front/items/self/cards/profile/profile.js +0 -95
  23. package/addons/render/elements/front/items/self/cards/profile/styles/base.css +0 -142
  24. package/addons/render/elements/front/items/self/cards/profile/styles/sizes.css +0 -43
  25. package/addons/render/elements/front/items/self/cards/profile/styles/variants.css +0 -131
  26. package/addons/render/elements/front/items/self/cards/stat/stat.js +0 -117
  27. package/addons/render/elements/front/items/self/cards/stat/styles/base.css +0 -97
  28. package/addons/render/elements/front/items/self/cards/stat/styles/sizes.css +0 -49
  29. package/addons/render/elements/front/items/self/cards/stat/styles/variants.css +0 -124
  30. package/addons/render/elements/front/items/self/content/html/html.css +0 -93
  31. package/addons/render/elements/front/items/self/content/html/html.js +0 -40
  32. package/addons/render/elements/front/items/self/content/markdown/markdown.css +0 -200
  33. package/addons/render/elements/front/items/self/content/markdown/markdown.js +0 -120
  34. package/addons/render/elements/front/items/self/data/comments/comments.css +0 -253
  35. package/addons/render/elements/front/items/self/data/comments/comments.js +0 -134
  36. package/addons/render/elements/front/items/self/data/files/files.css +0 -116
  37. package/addons/render/elements/front/items/self/data/files/files.js +0 -85
  38. package/addons/render/elements/front/items/self/data/folders/folders.css +0 -104
  39. package/addons/render/elements/front/items/self/data/folders/folders.js +0 -73
  40. package/addons/render/elements/front/items/self/data/inbox/inbox.css +0 -225
  41. package/addons/render/elements/front/items/self/data/inbox/inbox.js +0 -111
  42. package/addons/render/elements/front/items/self/data/logs/logs.css +0 -133
  43. package/addons/render/elements/front/items/self/data/logs/logs.js +0 -65
  44. package/addons/render/elements/front/items/self/data/plans/plans.css +0 -231
  45. package/addons/render/elements/front/items/self/data/plans/plans.js +0 -104
  46. package/addons/render/elements/front/items/self/data/properties/properties.css +0 -108
  47. package/addons/render/elements/front/items/self/data/properties/properties.js +0 -156
  48. package/addons/render/elements/front/items/self/data/table/table.css +0 -153
  49. package/addons/render/elements/front/items/self/data/table/table.js +0 -106
  50. package/addons/render/elements/front/items/self/data/timeline/timeline.css +0 -127
  51. package/addons/render/elements/front/items/self/data/timeline/timeline.js +0 -57
  52. package/addons/render/elements/front/items/self/feedback/alert/alert.css +0 -258
  53. package/addons/render/elements/front/items/self/feedback/alert/alert.js +0 -67
  54. package/addons/render/elements/front/items/self/feedback/confirm/confirm.css +0 -229
  55. package/addons/render/elements/front/items/self/feedback/confirm/confirm.js +0 -81
  56. package/addons/render/elements/front/items/self/feedback/loader/loader.css +0 -203
  57. package/addons/render/elements/front/items/self/feedback/loader/loader.js +0 -25
  58. package/addons/render/elements/front/items/self/feedback/progress/progress.css +0 -136
  59. package/addons/render/elements/front/items/self/feedback/progress/progress.js +0 -40
  60. package/addons/render/elements/front/items/self/form/button/button.js +0 -105
  61. package/addons/render/elements/front/items/self/form/button/styles/base.css +0 -176
  62. package/addons/render/elements/front/items/self/form/button/styles/sizes.css +0 -78
  63. package/addons/render/elements/front/items/self/form/button/styles/variants.css +0 -421
  64. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +0 -57
  65. package/addons/render/elements/front/items/self/form/checkbox/styles/base.css +0 -52
  66. package/addons/render/elements/front/items/self/form/checkbox/styles/sizes.css +0 -39
  67. package/addons/render/elements/front/items/self/form/checkbox/styles/variants.css +0 -121
  68. package/addons/render/elements/front/items/self/form/field/field.css +0 -96
  69. package/addons/render/elements/front/items/self/form/field/field.js +0 -39
  70. package/addons/render/elements/front/items/self/form/input/input.css +0 -111
  71. package/addons/render/elements/front/items/self/form/input/input.js +0 -78
  72. package/addons/render/elements/front/items/self/form/input/styles/base.css +0 -26
  73. package/addons/render/elements/front/items/self/form/input/styles/sizes.css +0 -15
  74. package/addons/render/elements/front/items/self/form/input/styles/variants.css +0 -98
  75. package/addons/render/elements/front/items/self/form/radio/radio.js +0 -57
  76. package/addons/render/elements/front/items/self/form/radio/styles/base.css +0 -48
  77. package/addons/render/elements/front/items/self/form/radio/styles/sizes.css +0 -36
  78. package/addons/render/elements/front/items/self/form/radio/styles/variants.css +0 -121
  79. package/addons/render/elements/front/items/self/form/rating/rating.css +0 -95
  80. package/addons/render/elements/front/items/self/form/rating/rating.js +0 -88
  81. package/addons/render/elements/front/items/self/form/section/section.css +0 -107
  82. package/addons/render/elements/front/items/self/form/section/section.js +0 -39
  83. package/addons/render/elements/front/items/self/form/slider/slider.css +0 -244
  84. package/addons/render/elements/front/items/self/form/slider/slider.js +0 -69
  85. package/addons/render/elements/front/items/self/form/textarea/textarea.css +0 -117
  86. package/addons/render/elements/front/items/self/form/textarea/textarea.js +0 -69
  87. package/addons/render/elements/front/items/self/layout/empty/empty.css +0 -154
  88. package/addons/render/elements/front/items/self/layout/empty/empty.js +0 -43
  89. package/addons/render/elements/front/items/self/layout/heading/heading.css +0 -117
  90. package/addons/render/elements/front/items/self/layout/heading/heading.js +0 -47
  91. package/addons/render/elements/front/items/self/layout/hero/hero.js +0 -88
  92. package/addons/render/elements/front/items/self/layout/hero/styles/base.css +0 -81
  93. package/addons/render/elements/front/items/self/layout/hero/styles/sizes.css +0 -24
  94. package/addons/render/elements/front/items/self/layout/hero/styles/variants.css +0 -98
  95. package/addons/render/elements/front/items/self/navigation/breadcrumb/addon/_class/addon.js +0 -9
  96. package/addons/render/elements/front/items/self/navigation/breadcrumb/addon/functions/get.js +0 -22
  97. package/addons/render/elements/front/items/self/navigation/breadcrumb/breadcrumb.css +0 -13
  98. package/addons/render/elements/front/items/self/navigation/breadcrumb/breadcrumb.js +0 -51
  99. package/addons/render/elements/front/items/self/navigation/footer/addon/_class/addon.js +0 -11
  100. package/addons/render/elements/front/items/self/navigation/footer/addon/functions/columns.js +0 -11
  101. package/addons/render/elements/front/items/self/navigation/footer/addon/functions/get.js +0 -34
  102. package/addons/render/elements/front/items/self/navigation/footer/footer.css +0 -283
  103. package/addons/render/elements/front/items/self/navigation/footer/footer.js +0 -139
  104. package/addons/render/elements/front/items/self/navigation/navbar/addon/_class/addon.js +0 -13
  105. package/addons/render/elements/front/items/self/navigation/navbar/addon/functions/active.js +0 -7
  106. package/addons/render/elements/front/items/self/navigation/navbar/addon/functions/get.js +0 -31
  107. package/addons/render/elements/front/items/self/navigation/navbar/navbar.css +0 -140
  108. package/addons/render/elements/front/items/self/navigation/navbar/navbar.js +0 -118
  109. package/addons/render/elements/front/items/self/navigation/pagination/pagination.css +0 -160
  110. package/addons/render/elements/front/items/self/navigation/pagination/pagination.js +0 -131
  111. package/addons/render/elements/front/items/self/navigation/sidebar/addon/_class/addon.js +0 -12
  112. package/addons/render/elements/front/items/self/navigation/sidebar/addon/functions/active.js +0 -7
  113. package/addons/render/elements/front/items/self/navigation/sidebar/addon/functions/get.js +0 -35
  114. package/addons/render/elements/front/items/self/navigation/sidebar/addon/functions/groups.js +0 -10
  115. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.css +0 -278
  116. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.js +0 -85
  117. package/addons/render/elements/front/items/self/navigation/stepper/stepper.css +0 -202
  118. package/addons/render/elements/front/items/self/navigation/stepper/stepper.js +0 -82
  119. package/addons/render/elements/front/items/self/navigation/tabs/addon.js +0 -32
  120. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +0 -239
  121. package/addons/render/elements/front/items/self/navigation/tabs/tabs.js +0 -76
  122. package/addons/render/elements/front/items/self/preview/html/html.css +0 -377
  123. package/addons/render/elements/front/items/self/preview/html/html.js +0 -107
  124. package/lib/LICENSE.txt +0 -40
  125. /package/lib/{load.back.js → load.js} +0 -0
@@ -1,118 +0,0 @@
1
- import elements from '#elements/load.js';
2
-
3
- elements.ItemAdd({
4
- id: 'navbar',
5
- icon: 'menu',
6
- name: 'Navbar',
7
- description: 'Navigation bar component with logo, menu items, and action button. Fully responsive with mobile menu support.',
8
- category: 'Navigation',
9
- author: 'Divhunt',
10
- config: {
11
- variant: {
12
- type: 'array',
13
- value: ['bg-2', 'border-bottom'],
14
- options: ['bg-1', 'bg-2', 'bg-3', 'bg-4', 'border-bottom']
15
- },
16
- container: {
17
- type: 'string',
18
- value: 'full',
19
- options: ['none', 's', 'm', 'l', 'full']
20
- },
21
- size: {
22
- type: 'string',
23
- value: 'm',
24
- options: ['s', 'm', 'l']
25
- },
26
- onMenuClick: {
27
- type: 'function'
28
- }
29
- },
30
- render: function()
31
- {
32
- this.leftMenus = navbar.Fn('get', 'left');
33
- this.middleMenus = navbar.Fn('get', 'middle');
34
- this.rightMenus = navbar.Fn('get', 'right');
35
-
36
- const update = () =>
37
- {
38
- this.leftMenus = navbar.Fn('get', 'left');
39
- this.middleMenus = navbar.Fn('get', 'middle');
40
- this.rightMenus = navbar.Fn('get', 'right');
41
- };
42
-
43
- navbar.ItemOn('added', update, 'navbar');
44
- navbar.ItemOn('removed', update, 'navbar');
45
- navbar.ItemOn('modified', update, 'navbar');
46
-
47
- this.handleMenuClick = (item) =>
48
- {
49
- navbar.Fn('active', item.id);
50
-
51
- if (this.onMenuClick)
52
- {
53
- this.onMenuClick({ item });
54
- }
55
- };
56
-
57
- this.containerClass = () =>
58
- {
59
- if (this.container === 'none')
60
- {
61
- return '';
62
- }
63
-
64
- return `dh-container-${this.container}`;
65
- };
66
-
67
- return `
68
- <nav class="holder" :variant="variant.join(' ')" :size="size">
69
- <div :class="containerClass()">
70
- <div class="left">
71
- <slot name="left:start"></slot>
72
- <div class="menu" dh-if="leftMenus.length > 0">
73
- <e-menu dh-for="menu in leftMenus"
74
- :icon="menu.icon"
75
- :label="menu.label"
76
- :href="menu.href"
77
- :active="menu.active"
78
- :variant="menu.variant"
79
- :onClick="() => handleMenuClick(menu)">
80
- </e-menu>
81
- </div>
82
- <slot name="left:end"></slot>
83
- </div>
84
-
85
- <div class="middle">
86
- <slot name="middle:start"></slot>
87
- <div class="menu" dh-if="middleMenus.length > 0">
88
- <e-menu dh-for="menu in middleMenus"
89
- :icon="menu.icon"
90
- :label="menu.label"
91
- :href="menu.href"
92
- :active="menu.active"
93
- :variant="menu.variant"
94
- :onClick="() => handleMenuClick(menu)">
95
- </e-menu>
96
- </div>
97
- <slot name="middle:end"></slot>
98
- </div>
99
-
100
- <div class="right">
101
- <slot name="right:start"></slot>
102
- <div class="menu" dh-if="rightMenus.length > 0">
103
- <e-menu dh-for="menu in rightMenus"
104
- :icon="menu.icon"
105
- :label="menu.label"
106
- :href="menu.href"
107
- :active="menu.active"
108
- :variant="menu.variant"
109
- :onClick="() => handleMenuClick(menu)">
110
- </e-menu>
111
- </div>
112
- <slot name="right:end"></slot>
113
- </div>
114
- </div>
115
- </nav>
116
- `;
117
- }
118
- });
@@ -1,160 +0,0 @@
1
- /* Base */
2
- .e-727a7230 > .holder
3
- {
4
- display: flex;
5
- align-items: center;
6
- gap: var(--dh-spacing-x);
7
- }
8
-
9
- .e-727a7230 > .holder > .button,
10
- .e-727a7230 > .holder > .pages > .page
11
- {
12
- display: flex;
13
- align-items: center;
14
- justify-content: center;
15
- min-width: 36px;
16
- height: 36px;
17
- padding: 0 var(--dh-spacing-s);
18
- border: 1px solid var(--dh-bg-2-border);
19
- border-radius: var(--dh-radius-s);
20
- background: transparent;
21
- color: var(--dh-text-1);
22
- font-weight: 500;
23
- cursor: pointer;
24
- transition: all 0.2s ease;
25
- user-select: none;
26
- }
27
-
28
- .e-727a7230 > .holder > .button:hover:not(:disabled),
29
- .e-727a7230 > .holder > .pages > .page:hover:not(:disabled):not([active="true"])
30
- {
31
- background: var(--dh-bg-2);
32
- border-color: var(--dh-bg-2-border);
33
- }
34
-
35
- .e-727a7230 > .holder > .button:disabled,
36
- .e-727a7230 > .holder > .pages > .page:disabled
37
- {
38
- opacity: 0.4;
39
- cursor: not-allowed;
40
- }
41
-
42
- .e-727a7230 > .holder > .button > .icon
43
- {
44
- font-size: 18px;
45
- }
46
-
47
- .e-727a7230 > .holder > .pages
48
- {
49
- display: flex;
50
- align-items: center;
51
- gap: var(--dh-spacing-x);
52
- }
53
-
54
- .e-727a7230 > .holder > .pages > .page[active="true"]
55
- {
56
- background: var(--dh-brand);
57
- border-color: var(--dh-brand-border);
58
- color: white;
59
- cursor: default;
60
- }
61
-
62
- /* Variants - Background */
63
- .e-727a7230 > .holder[variant*="bg-1"] > .button,
64
- .e-727a7230 > .holder[variant*="bg-1"] > .pages > .page
65
- {
66
- background: var(--dh-bg-1);
67
- border-color: var(--dh-bg-1-border);
68
- }
69
-
70
- .e-727a7230 > .holder[variant*="bg-1"] > .button:hover:not(:disabled),
71
- .e-727a7230 > .holder[variant*="bg-1"] > .pages > .page:hover:not(:disabled):not([active="true"])
72
- {
73
- background: var(--dh-bg-1-hover);
74
- }
75
-
76
- .e-727a7230 > .holder[variant*="bg-2"] > .button,
77
- .e-727a7230 > .holder[variant*="bg-2"] > .pages > .page
78
- {
79
- background: var(--dh-bg-2);
80
- border-color: var(--dh-bg-2-border);
81
- }
82
-
83
- .e-727a7230 > .holder[variant*="bg-2"] > .button:hover:not(:disabled),
84
- .e-727a7230 > .holder[variant*="bg-2"] > .pages > .page:hover:not(:disabled):not([active="true"])
85
- {
86
- background: var(--dh-bg-2-hover);
87
- }
88
-
89
- .e-727a7230 > .holder[variant*="bg-3"] > .button,
90
- .e-727a7230 > .holder[variant*="bg-3"] > .pages > .page
91
- {
92
- background: var(--dh-bg-3);
93
- border-color: var(--dh-bg-3-border);
94
- }
95
-
96
- .e-727a7230 > .holder[variant*="bg-3"] > .button:hover:not(:disabled),
97
- .e-727a7230 > .holder[variant*="bg-3"] > .pages > .page:hover:not(:disabled):not([active="true"])
98
- {
99
- background: var(--dh-bg-3-hover);
100
- }
101
-
102
- .e-727a7230 > .holder[variant*="bg-4"] > .button,
103
- .e-727a7230 > .holder[variant*="bg-4"] > .pages > .page
104
- {
105
- background: var(--dh-bg-4);
106
- border-color: var(--dh-bg-4-border);
107
- }
108
-
109
- .e-727a7230 > .holder[variant*="bg-4"] > .button:hover:not(:disabled),
110
- .e-727a7230 > .holder[variant*="bg-4"] > .pages > .page:hover:not(:disabled):not([active="true"])
111
- {
112
- background: var(--dh-bg-4-hover);
113
- }
114
-
115
- /* Variants - Border */
116
- .e-727a7230 > .holder[variant*="border"] > .button,
117
- .e-727a7230 > .holder[variant*="border"] > .pages > .page
118
- {
119
- border: 1px solid var(--dh-bg-2-border);
120
- }
121
-
122
- /* Variants - Sizes */
123
- .e-727a7230 > .holder[variant*="size-s"] > .button,
124
- .e-727a7230 > .holder[variant*="size-s"] > .pages > .page
125
- {
126
- min-width: 32px;
127
- height: 32px;
128
- font-size: var(--dh-size-s);
129
- }
130
-
131
- .e-727a7230 > .holder[variant*="size-s"] > .button > .icon
132
- {
133
- font-size: 16px;
134
- }
135
-
136
- .e-727a7230 > .holder[variant*="size-m"] > .button,
137
- .e-727a7230 > .holder[variant*="size-m"] > .pages > .page
138
- {
139
- min-width: 36px;
140
- height: 36px;
141
- font-size: var(--dh-size-m);
142
- }
143
-
144
- .e-727a7230 > .holder[variant*="size-m"] > .button > .icon
145
- {
146
- font-size: 18px;
147
- }
148
-
149
- .e-727a7230 > .holder[variant*="size-l"] > .button,
150
- .e-727a7230 > .holder[variant*="size-l"] > .pages > .page
151
- {
152
- min-width: 42px;
153
- height: 42px;
154
- font-size: var(--dh-size-l);
155
- }
156
-
157
- .e-727a7230 > .holder[variant*="size-l"] > .button > .icon
158
- {
159
- font-size: 20px;
160
- }
@@ -1,131 +0,0 @@
1
- import elements from '#elements/load.js';
2
-
3
- elements.ItemAdd({
4
- id: 'pagination',
5
- icon: 'last_page',
6
- name: 'Pagination',
7
- description: 'Pagination component with page numbers, previous/next buttons, and customizable appearance.',
8
- category: 'Navigation',
9
- author: 'Divhunt',
10
- config: {
11
- page: {
12
- type: 'number',
13
- value: 1
14
- },
15
- pages: {
16
- type: 'number',
17
- value: 10
18
- },
19
- visible: {
20
- type: 'number',
21
- value: 5
22
- },
23
- first: {
24
- type: 'boolean',
25
- value: true
26
- },
27
- last: {
28
- type: 'boolean',
29
- value: true
30
- },
31
- prev: {
32
- type: 'boolean',
33
- value: true
34
- },
35
- next: {
36
- type: 'boolean',
37
- value: true
38
- },
39
- variant: {
40
- type: 'array',
41
- value: ['size-m'],
42
- options: ['bg-1', 'bg-2', 'bg-3', 'bg-4', 'border', 'size-s', 'size-m', 'size-l']
43
- },
44
- onChange: {
45
- type: 'function'
46
- }
47
- },
48
- render: function()
49
- {
50
- this.getPages = () =>
51
- {
52
- const pageList = [];
53
- const half = Math.floor(this.visible / 2);
54
- let start = Math.max(1, this.page - half);
55
- let end = Math.min(this.pages, start + this.visible - 1);
56
-
57
- if (end - start + 1 < this.visible)
58
- {
59
- start = Math.max(1, end - this.visible + 1);
60
- }
61
-
62
- if (start > 1)
63
- {
64
- pageList.push(1);
65
- if (start > 2)
66
- {
67
- pageList.push('...');
68
- }
69
- }
70
-
71
- for (let i = start; i <= end; i++)
72
- {
73
- pageList.push(i);
74
- }
75
-
76
- if (end < this.pages)
77
- {
78
- if (end < this.pages - 1)
79
- {
80
- pageList.push('...');
81
- }
82
- pageList.push(this.pages);
83
- }
84
-
85
- return pageList;
86
- };
87
-
88
- this.goToPage = (pageNum) =>
89
- {
90
- if (pageNum !== '...' && pageNum !== this.page && pageNum >= 1 && pageNum <= this.pages)
91
- {
92
- this.page = pageNum;
93
- if (this.onChange)
94
- {
95
- this.onChange(pageNum);
96
- }
97
- }
98
- };
99
-
100
- this.goToFirst = () => this.goToPage(1);
101
- this.goToLast = () => this.goToPage(this.pages);
102
- this.goToPrev = () => this.goToPage(this.page - 1);
103
- this.goToNext = () => this.goToPage(this.page + 1);
104
-
105
- return `
106
- <div class="holder" :variant="variant.join(' ')">
107
- <button dh-if="first" class="button first" :disabled="page === 1" dh-click="goToFirst">
108
- <i class="icon">first_page</i>
109
- </button>
110
-
111
- <button dh-if="prev" class="button prev" :disabled="page === 1" dh-click="goToPrev">
112
- <i class="icon">chevron_left</i>
113
- </button>
114
-
115
- <div class="pages">
116
- <button dh-for="pageNum in getPages()" class="page" :active="pageNum === page ? 'true' : 'false'" :disabled="pageNum === '...'" dh-click="() => goToPage(pageNum)">
117
- {{ pageNum }}
118
- </button>
119
- </div>
120
-
121
- <button dh-if="next" class="button next" :disabled="page === pages" dh-click="goToNext">
122
- <i class="icon">chevron_right</i>
123
- </button>
124
-
125
- <button dh-if="last" class="button last" :disabled="page === pages" dh-click="goToLast">
126
- <i class="icon">last_page</i>
127
- </button>
128
- </div>
129
- `;
130
- }
131
- });
@@ -1,12 +0,0 @@
1
- const sidebar = divhunt.Addon('sidebar', (addon) =>
2
- {
3
- addon.Field('id', ['string|number']);
4
- addon.Field('type', ['string', 'item']);
5
- addon.Field('group', ['string', '']);
6
- addon.Field('order', ['number', 0]);
7
- addon.Field('icon', ['string', 'folder']);
8
- addon.Field('label', ['string', 'Menu Item']);
9
- addon.Field('href', ['string', '#']);
10
- addon.Field('active', ['boolean', false]);
11
- addon.Field('condition', ['boolean', true]);
12
- });
@@ -1,7 +0,0 @@
1
- sidebar.Fn('active', function(id)
2
- {
3
- Object.values(sidebar.Items()).forEach(item =>
4
- {
5
- item.Set('active', item.Get('id') === id);
6
- });
7
- });
@@ -1,35 +0,0 @@
1
- sidebar.Fn('get', function(filter = {})
2
- {
3
- return Object.values(sidebar.Items())
4
- .filter(item =>
5
- {
6
- if (item.Get('condition') === false)
7
- {
8
- return false;
9
- }
10
-
11
- if (filter.type && item.Get('type') !== filter.type)
12
- {
13
- return false;
14
- }
15
-
16
- if (filter.group && item.Get('group') !== filter.group)
17
- {
18
- return false;
19
- }
20
-
21
- return true;
22
- })
23
- .sort((a, b) => a.Get('order') - b.Get('order'))
24
- .map(item =>
25
- ({
26
- id: item.Get('id'),
27
- type: item.Get('type'),
28
- group: item.Get('group'),
29
- order: item.Get('order'),
30
- icon: item.Get('icon'),
31
- label: item.Get('label'),
32
- href: item.Get('href'),
33
- active: item.Get('active')
34
- }));
35
- });
@@ -1,10 +0,0 @@
1
- sidebar.Fn('groups', function()
2
- {
3
- const groups = sidebar.Fn('get', { type: 'group' });
4
-
5
- return groups.map(group => ({
6
- id: group.id,
7
- label: group.label,
8
- items: this.Fn('get', { type: 'item', group: group.id })
9
- }));
10
- });