matestack-ui-bootstrap 2.0.1 → 3.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +36 -60
- data/lib/matestack/ui/bootstrap/base_component.rb +0 -2
- data/lib/matestack/ui/bootstrap/base_vue_js_component.rb +1 -3
- data/lib/matestack/ui/bootstrap/components/alert.js +14 -12
- data/lib/matestack/ui/bootstrap/components/carousel.js +17 -15
- data/lib/matestack/ui/bootstrap/components/collapse.js +18 -16
- data/lib/matestack/ui/bootstrap/components/dropdown.js +7 -5
- data/lib/matestack/ui/bootstrap/components/modal.js +12 -11
- data/lib/matestack/ui/bootstrap/components/navbar.rb +3 -3
- data/lib/matestack/ui/bootstrap/components/popover.js +10 -9
- data/lib/matestack/ui/bootstrap/components/toast.js +19 -18
- data/lib/matestack/ui/bootstrap/components/toast.rb +3 -3
- data/lib/matestack/ui/bootstrap/components/tooltip.js +9 -9
- data/lib/matestack/ui/bootstrap/content/smart_collection/content.rb +16 -3
- data/lib/matestack/ui/bootstrap/form/checkbox.rb +15 -8
- data/lib/matestack/ui/bootstrap/form/input.rb +7 -7
- data/lib/matestack/ui/bootstrap/form/radio.rb +6 -6
- data/lib/matestack/ui/bootstrap/form/select.rb +2 -4
- data/lib/matestack/ui/bootstrap/form/submit.rb +2 -2
- data/lib/matestack/ui/bootstrap/form/switch.rb +1 -3
- data/lib/matestack/ui/bootstrap/form/textarea.rb +47 -0
- data/lib/matestack/ui/bootstrap/index.js +26 -10
- data/lib/matestack/ui/bootstrap/initialize.rb +3 -0
- data/lib/matestack/ui/bootstrap/layout/sidebar.js +9 -8
- data/lib/matestack/ui/bootstrap/layout/sidebar.rb +10 -12
- data/lib/matestack/ui/bootstrap/{apps → layouts}/admin_template.rb +9 -11
- data/lib/matestack/ui/bootstrap/registry.rb +4 -0
- data/lib/matestack/ui/bootstrap/version.rb +1 -1
- data/lib/matestack/ui/bootstrap.rb +5 -2
- metadata +24 -14
- data/config/webpack/development.js +0 -5
- data/config/webpack/environment.js +0 -29
- data/config/webpack/production.js +0 -33
- data/config/webpack/test.js +0 -5
- data/config/webpacker.yml +0 -96
@@ -69,7 +69,11 @@ module Matestack::Ui::Bootstrap::Content::SmartCollection::Content
|
|
69
69
|
|
70
70
|
def cell(data, key, value)
|
71
71
|
td class: cell_class(value) do
|
72
|
-
|
72
|
+
if value.is_a?(Hash) && value[:slot]
|
73
|
+
value[:slot].call(data)
|
74
|
+
else
|
75
|
+
plain cell_text(data, key, value)
|
76
|
+
end
|
73
77
|
end
|
74
78
|
end
|
75
79
|
|
@@ -81,8 +85,17 @@ module Matestack::Ui::Bootstrap::Content::SmartCollection::Content
|
|
81
85
|
end
|
82
86
|
|
83
87
|
def cell_text(data, key, value)
|
84
|
-
|
85
|
-
|
88
|
+
if value.is_a?(Hash)
|
89
|
+
if value[:attribute].present?
|
90
|
+
text = data.instance_eval(value[:attribute].to_s)
|
91
|
+
else
|
92
|
+
text = data.instance_eval(key.to_s)
|
93
|
+
end
|
94
|
+
text = value[:format].call(text) if value[:format].present?
|
95
|
+
else
|
96
|
+
text = data.instance_eval(key.to_s)
|
97
|
+
end
|
98
|
+
|
86
99
|
text
|
87
100
|
end
|
88
101
|
|
@@ -1,7 +1,5 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Form::Checkbox < Matestack::Ui::VueJs::Components::Form::Checkbox
|
2
2
|
|
3
|
-
include Matestack::Ui::Bootstrap::Registry
|
4
|
-
|
5
3
|
vue_name "matestack-ui-core-form-checkbox"
|
6
4
|
|
7
5
|
optional :form_text
|
@@ -10,7 +8,7 @@ class Matestack::Ui::Bootstrap::Form::Checkbox < Matestack::Ui::VueJs::Component
|
|
10
8
|
|
11
9
|
def response
|
12
10
|
div class: "matestack-ui-bootstrap-form-checkbox" do
|
13
|
-
label input_label, class: "form-label", for:
|
11
|
+
label input_label, class: "form-label", ":for": id if input_label && multiple?
|
14
12
|
render_options
|
15
13
|
render_errors
|
16
14
|
render_form_text unless context.form_text.nil? # otherwise renders empty div
|
@@ -19,6 +17,15 @@ class Matestack::Ui::Bootstrap::Form::Checkbox < Matestack::Ui::VueJs::Component
|
|
19
17
|
|
20
18
|
private
|
21
19
|
|
20
|
+
def bootstrap_attributes
|
21
|
+
classes = 'form-check-input'
|
22
|
+
classes = [options[:class], classes].join(' ')
|
23
|
+
{
|
24
|
+
class: classes,
|
25
|
+
disabled: context.disabled
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
22
29
|
def multiple?
|
23
30
|
checkbox_options.present?
|
24
31
|
end
|
@@ -28,15 +35,15 @@ class Matestack::Ui::Bootstrap::Form::Checkbox < Matestack::Ui::VueJs::Component
|
|
28
35
|
if multiple?
|
29
36
|
checkbox_options.to_a.each do |item|
|
30
37
|
checkbox_wrapper do
|
31
|
-
input options.merge(checkbox_attributes(item)).merge(
|
38
|
+
input options.merge(checkbox_attributes(item)).merge(bootstrap_attributes)
|
32
39
|
bootstrap_label text: item_label(item), for_input: item_id(item)
|
33
40
|
end
|
34
41
|
end
|
35
42
|
# checked/unchecked checkbox (true/false checkbox)
|
36
43
|
else
|
37
44
|
checkbox_wrapper do
|
38
|
-
input true_false_checkbox_attributes.merge(type: :hidden, id: nil
|
39
|
-
input true_false_checkbox_attributes.merge(type: :checkbox, id: item_id(1)
|
45
|
+
input true_false_checkbox_attributes.merge(type: :hidden, id: nil)
|
46
|
+
input true_false_checkbox_attributes.merge(type: :checkbox, ":id": item_id(1)).merge(bootstrap_attributes)
|
40
47
|
|
41
48
|
bootstrap_label text: input_label, for_input: item_id(1)
|
42
49
|
end
|
@@ -53,7 +60,7 @@ class Matestack::Ui::Bootstrap::Form::Checkbox < Matestack::Ui::VueJs::Component
|
|
53
60
|
end
|
54
61
|
|
55
62
|
def bootstrap_label(text:, for_input:)
|
56
|
-
label text, for: for_input, class: 'form-check-label'
|
63
|
+
label text, ":for": for_input, class: 'form-check-label'
|
57
64
|
end
|
58
65
|
|
59
66
|
def render_errors
|
@@ -73,7 +80,7 @@ class Matestack::Ui::Bootstrap::Form::Checkbox < Matestack::Ui::VueJs::Component
|
|
73
80
|
end
|
74
81
|
|
75
82
|
def render_form_text
|
76
|
-
div
|
83
|
+
div class: "form-text form-text-for-#{attribute_key}" do
|
77
84
|
plain context.form_text
|
78
85
|
end
|
79
86
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Form::Input < Matestack::Ui::VueJs::Components::Form::Input
|
2
2
|
|
3
|
-
include Matestack::Ui::Bootstrap::Registry
|
4
|
-
|
5
3
|
vue_name "matestack-ui-core-form-input"
|
6
4
|
|
7
5
|
optional :form_text
|
@@ -16,12 +14,12 @@ class Matestack::Ui::Bootstrap::Form::Input < Matestack::Ui::VueJs::Components::
|
|
16
14
|
|
17
15
|
def response
|
18
16
|
div class: "matestack-ui-bootstrap-input" do
|
19
|
-
label input_label, for:
|
17
|
+
label input_label, ":for": id, class: "form-label" if input_label
|
20
18
|
case context.type
|
21
19
|
when :range
|
22
20
|
input options.merge(input_attributes).merge(bootstrap_range_attributes)
|
23
21
|
if context.show_value
|
24
|
-
div
|
22
|
+
div class: "form-text form-text-for-#{attribute_key}" do
|
25
23
|
plain "{{ data['#{attribute_key}'] }}"
|
26
24
|
end
|
27
25
|
end
|
@@ -37,9 +35,11 @@ class Matestack::Ui::Bootstrap::Form::Input < Matestack::Ui::VueJs::Components::
|
|
37
35
|
|
38
36
|
def bootstrap_input_attributes
|
39
37
|
{
|
40
|
-
id: (options[:id] || attribute_key),
|
41
38
|
class: (options[:class] || "") << (" form-control"),
|
42
|
-
disabled: context.disabled
|
39
|
+
disabled: context.disabled,
|
40
|
+
min: context.min,
|
41
|
+
max: context.max,
|
42
|
+
step: context.step
|
43
43
|
}
|
44
44
|
end
|
45
45
|
|
@@ -108,7 +108,7 @@ class Matestack::Ui::Bootstrap::Form::Input < Matestack::Ui::VueJs::Components::
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def render_form_text
|
111
|
-
div
|
111
|
+
div class: "form-text form-text-for-#{attribute_key}" do
|
112
112
|
plain context.form_text
|
113
113
|
end
|
114
114
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Form::Radio < Matestack::Ui::VueJs::Components::Form::Radio
|
2
2
|
|
3
|
-
include Matestack::Ui::Bootstrap::Registry
|
4
|
-
|
5
3
|
vue_name "matestack-ui-core-form-radio"
|
6
4
|
|
7
5
|
optional :form_text
|
@@ -10,12 +8,12 @@ class Matestack::Ui::Bootstrap::Form::Radio < Matestack::Ui::VueJs::Components::
|
|
10
8
|
|
11
9
|
def response
|
12
10
|
div class: "matestack-ui-bootstrap-radio" do
|
13
|
-
label input_label, class: "form-label" if input_label
|
11
|
+
label input_label, class: "form-label", ":for": id if input_label
|
14
12
|
|
15
13
|
radio_options.to_a.each_with_index do |item, index|
|
16
14
|
div class: "form-check #{'form-check-inline' if context.variant == :inline}" do
|
17
15
|
input options.merge(radio_attributes(item)).merge(bootstrap_radio_attributes)
|
18
|
-
label item_label(item), class: "form-check-label", for: item_id(item_value(item))
|
16
|
+
label item_label(item), class: "form-check-label", ":for": item_id(item_value(item))
|
19
17
|
if index == radio_options.to_a.size - 1
|
20
18
|
render_errors
|
21
19
|
end
|
@@ -26,16 +24,18 @@ class Matestack::Ui::Bootstrap::Form::Radio < Matestack::Ui::VueJs::Components::
|
|
26
24
|
|
27
25
|
end
|
28
26
|
|
27
|
+
private
|
29
28
|
|
30
29
|
def bootstrap_radio_attributes
|
30
|
+
classes = 'form-check-input'
|
31
31
|
{
|
32
|
-
class: (options[:class] || "") <<
|
32
|
+
class: (options[:class] || "") << classes,
|
33
33
|
disabled: context.disabled
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
37
37
|
def render_form_text
|
38
|
-
div
|
38
|
+
div class: "form-text form-text-for-#{attribute_key}" do
|
39
39
|
plain context.form_text
|
40
40
|
end
|
41
41
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Form::Select < Matestack::Ui::VueJs::Components::Form::Select
|
2
2
|
|
3
|
-
include Matestack::Ui::Bootstrap::Registry
|
4
|
-
|
5
3
|
vue_name "matestack-ui-core-form-select"
|
6
4
|
|
7
5
|
optional :variant
|
@@ -10,7 +8,7 @@ class Matestack::Ui::Bootstrap::Form::Select < Matestack::Ui::VueJs::Components:
|
|
10
8
|
|
11
9
|
def response
|
12
10
|
div class: "matestack-ui-bootstrap-form-select" do
|
13
|
-
label input_label, for:
|
11
|
+
label input_label, ":for": id, class: "form-label" if input_label
|
14
12
|
select select_attributes.merge(bootstrap_select_attributes) do
|
15
13
|
render_options
|
16
14
|
end
|
@@ -55,7 +53,7 @@ class Matestack::Ui::Bootstrap::Form::Select < Matestack::Ui::VueJs::Components:
|
|
55
53
|
end
|
56
54
|
|
57
55
|
def render_form_text
|
58
|
-
div
|
56
|
+
div class: "form-text form-text-for-#{attribute_key}" do
|
59
57
|
plain context.form_text
|
60
58
|
end
|
61
59
|
end
|
@@ -8,10 +8,10 @@ class Matestack::Ui::Bootstrap::Form::Submit < Matestack::Ui::Bootstrap::BaseCom
|
|
8
8
|
optional class: { as: :bs_class }
|
9
9
|
|
10
10
|
def response
|
11
|
-
bs_btn type: "submit", size:context.size, class: "#{context.bs_class}", variant: context.button_variant || :primary, "v-if": "!loading" do
|
11
|
+
bs_btn type: "submit", size:context.size, class: "#{context.bs_class}", variant: context.button_variant || :primary, "v-if": "!vc.loading" do
|
12
12
|
plain context.text || "Submit"
|
13
13
|
end
|
14
|
-
bs_btn type: "submit", size: context.size, class: "#{context.bs_class} #{context.loading_class}", variant: context.button_variant || :primary, disabled: true, "v-if": "loading" do
|
14
|
+
bs_btn type: "submit", size: context.size, class: "#{context.bs_class} #{context.loading_class}", variant: context.button_variant || :primary, disabled: true, "v-if": "vc.loading" do
|
15
15
|
bs_spinner variant: context.spinner_variant || :light, size: :sm
|
16
16
|
plain context.loading_text || "Loading..."
|
17
17
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Form::Switch < Matestack::Ui::Bootstrap::Form::Checkbox
|
2
2
|
|
3
|
-
include Matestack::Ui::Bootstrap::Registry
|
4
|
-
|
5
3
|
vue_name "matestack-ui-core-form-checkbox"
|
6
4
|
|
7
5
|
optional :form_text
|
@@ -10,7 +8,7 @@ class Matestack::Ui::Bootstrap::Form::Switch < Matestack::Ui::Bootstrap::Form::C
|
|
10
8
|
|
11
9
|
def response
|
12
10
|
div class: "matestack-ui-bootstrap-switch" do
|
13
|
-
label input_label, class: "form-label", for:
|
11
|
+
label input_label, class: "form-label", ":for": id if input_label && multiple?
|
14
12
|
render_options
|
15
13
|
render_errors
|
16
14
|
plain context.form_text
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class Matestack::Ui::Bootstrap::Form::Textarea < Matestack::Ui::VueJs::Components::Form::Textarea
|
2
|
+
|
3
|
+
vue_name "matestack-ui-core-form-textarea"
|
4
|
+
|
5
|
+
optional :form_text
|
6
|
+
optional :disabled
|
7
|
+
optional :placeholder
|
8
|
+
optional :rows
|
9
|
+
optional :cols
|
10
|
+
|
11
|
+
def response
|
12
|
+
div class: "matestack-ui-bootstrap-textarea" do
|
13
|
+
label input_label, ":for": id, class: "form-label" if input_label
|
14
|
+
textarea options.merge(textarea_attributes).merge(bootstrap_textarea_attributes)
|
15
|
+
render_errors
|
16
|
+
render_form_text if context.form_text
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def bootstrap_textarea_attributes
|
21
|
+
{
|
22
|
+
class: (options[:class] || "") << (" form-control"),
|
23
|
+
rows: context.rows,
|
24
|
+
cols: context.cols,
|
25
|
+
disabled: context.disabled
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def render_errors
|
30
|
+
if display_errors?
|
31
|
+
div class: 'invalid-feedback', 'v-for': "error in #{error_key}" do
|
32
|
+
plain '{{ error }}'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def input_error_class
|
38
|
+
'is-invalid'
|
39
|
+
end
|
40
|
+
|
41
|
+
def render_form_text
|
42
|
+
div class: "form-text form-text-for-#{attribute_key}" do
|
43
|
+
plain context.form_text
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -5,19 +5,35 @@
|
|
5
5
|
|
6
6
|
import "./stylesheets/matestack-ui-bootstrap.scss";
|
7
7
|
|
8
|
-
import './components/alert'
|
9
|
-
import './components/carousel'
|
10
|
-
import './components/collapse'
|
11
|
-
import './components/dropdown'
|
12
|
-
import './components/modal'
|
13
|
-
import './components/
|
14
|
-
import './components/
|
15
|
-
import './components/tooltip'
|
16
|
-
import './layout/sidebar'
|
8
|
+
import alertComponent from './components/alert'
|
9
|
+
import carouselComponent from './components/carousel'
|
10
|
+
import collapseComponent from './components/collapse'
|
11
|
+
import dropdownComponent from './components/dropdown'
|
12
|
+
import modalComponent from './components/modal'
|
13
|
+
import popoverComponent from './components/popover'
|
14
|
+
import toastComponent from './components/toast'
|
15
|
+
import tooltipComponent from './components/tooltip'
|
16
|
+
import sidebarComponent from './layout/sidebar'
|
17
17
|
import './layout/sidebar.scss'
|
18
18
|
import './content/smart_collection/collection.scss'
|
19
19
|
|
20
|
-
const
|
20
|
+
const registerComponents = function(appInstance){
|
21
|
+
appInstance.component('matestack-ui-bootstrap-alert', alertComponent)
|
22
|
+
appInstance.component('matestack-ui-bootstrap-carousel', carouselComponent)
|
23
|
+
appInstance.component('matestack-ui-bootstrap-collapse', collapseComponent)
|
24
|
+
appInstance.component('matestack-ui-bootstrap-dropdown', dropdownComponent)
|
25
|
+
appInstance.component('matestack-ui-bootstrap-modal', modalComponent)
|
26
|
+
appInstance.component('matestack-ui-bootstrap-popover', popoverComponent)
|
27
|
+
appInstance.component('matestack-ui-bootstrap-toast', toastComponent)
|
28
|
+
appInstance.component('matestack-ui-bootstrap-tooltip', tooltipComponent)
|
29
|
+
appInstance.component('matestack-ui-bootstrap-sidebar', sidebarComponent)
|
30
|
+
|
31
|
+
return appInstance
|
32
|
+
}
|
33
|
+
|
34
|
+
const MatestackUiBootstrap = {
|
35
|
+
registerComponents
|
36
|
+
}
|
21
37
|
|
22
38
|
window.MatestackUiBootstrap = MatestackUiBootstrap
|
23
39
|
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import * as bootstrap from 'bootstrap'
|
2
|
-
import
|
2
|
+
import MatestackUiVueJs from 'matestack-ui-vuejs'
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
mixins: [MatestackUiCore.componentMixin],
|
4
|
+
const sidebarComponent = {
|
5
|
+
mixins: [MatestackUiVueJs.componentMixin],
|
6
|
+
template: MatestackUiVueJs.componentHelpers.inlineTemplate,
|
8
7
|
|
9
8
|
data() {
|
10
9
|
return {
|
@@ -52,16 +51,18 @@ Vue.component('matestack-ui-bootstrap-sidebar', {
|
|
52
51
|
}
|
53
52
|
window.addEventListener('resize', this.resizeCallback);
|
54
53
|
var self = this;
|
55
|
-
|
54
|
+
MatestackUiVueJs.eventHub.$on("page_loaded", function(){
|
56
55
|
if (window.innerWidth <= 992){
|
57
56
|
self.closeSideBar();
|
58
57
|
}
|
59
58
|
})
|
60
|
-
|
59
|
+
MatestackUiVueJs.eventHub.$on("page_loading_triggered", function(){
|
61
60
|
if (window.innerWidth <= 992){
|
62
61
|
self.closeSideBar();
|
63
62
|
}
|
64
63
|
})
|
65
64
|
}
|
66
65
|
|
67
|
-
}
|
66
|
+
}
|
67
|
+
|
68
|
+
export default sidebarComponent
|
@@ -7,20 +7,18 @@ class Matestack::Ui::Bootstrap::Layout::Sidebar < Matestack::Ui::Bootstrap::Base
|
|
7
7
|
optional :sidebar_navigation_items
|
8
8
|
|
9
9
|
def response
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
bs_icon name: "list", size: 25, class: "text-muted"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
div class: "sidebar-top mb-3" do
|
18
|
-
slot :sidebar_top if slots && slots[:sidebar_top].present?
|
19
|
-
end
|
20
|
-
div class: "sidebar-navigation my-3" do
|
21
|
-
sidebar_navigation_partial
|
10
|
+
nav class: 'sidebar pt-4 px-3 shadow-sm bg-white' do
|
11
|
+
div class: "sidebar-toggler" do
|
12
|
+
bs_btn variant: :link, "@click": "vc.sidebarToggle" do
|
13
|
+
bs_icon name: "list", size: 25, class: "text-muted"
|
22
14
|
end
|
23
15
|
end
|
16
|
+
div class: "sidebar-top mb-3" do
|
17
|
+
slot :sidebar_top if slots && slots[:sidebar_top].present?
|
18
|
+
end
|
19
|
+
div class: "sidebar-navigation my-3" do
|
20
|
+
sidebar_navigation_partial
|
21
|
+
end
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
@@ -1,11 +1,9 @@
|
|
1
1
|
require_relative "../registry"
|
2
2
|
|
3
|
-
class Matestack::Ui::Bootstrap::
|
4
|
-
|
5
|
-
include Matestack::Ui::Bootstrap::Registry
|
3
|
+
class Matestack::Ui::Bootstrap::Layouts::AdminTemplate < Matestack::Ui::Layout
|
6
4
|
|
7
5
|
def response(&block)
|
8
|
-
|
6
|
+
matestack_vue_js_app do
|
9
7
|
body_response(&block)
|
10
8
|
end
|
11
9
|
end
|
@@ -13,20 +11,20 @@ class Matestack::Ui::Bootstrap::Apps::AdminTemplate < Matestack::Ui::App
|
|
13
11
|
def body_response(&block)
|
14
12
|
div class: "d-flex flex-row" do
|
15
13
|
if should_show_sidebar?
|
16
|
-
|
14
|
+
div id: "sidebar", class: "sidebar-wrapper" do
|
15
|
+
bs_sidebar sidebar_navigation_items: sidebar_navigation_items, slots: { sidebar_top: method(:sidebar_top_slot) }
|
16
|
+
end
|
17
17
|
end
|
18
18
|
div id: "content", class: "content-wrapper w-100 #{content_background_class}" do
|
19
19
|
if should_show_navbar?
|
20
20
|
bs_container do
|
21
|
-
bs_navbar brand: navbar_brand_config, items: navbar_items, class: "pt-4 #{'ps-5' if should_show_sidebar?}", collapse_class: "text-end text-lg-start pe-3"
|
22
|
-
# div class: "d-flex" do
|
23
|
-
# navbar_end_partial if self.respond_to?(:navbar_end_partial)
|
24
|
-
# end
|
25
|
-
end
|
21
|
+
bs_navbar brand: navbar_brand_config, items: navbar_items, class: "pt-4 #{'ps-5' if should_show_sidebar?}", collapse_class: "text-end text-lg-start pe-3"
|
26
22
|
end
|
27
23
|
end
|
28
24
|
bs_container class: "my-5 px-4 pt-5" do
|
29
|
-
|
25
|
+
page_switch do
|
26
|
+
yield if block_given?
|
27
|
+
end
|
30
28
|
end
|
31
29
|
end
|
32
30
|
end
|
@@ -114,6 +114,10 @@ module Matestack::Ui::Bootstrap::Registry
|
|
114
114
|
Matestack::Ui::Bootstrap::Form::Input.(text, options, &block)
|
115
115
|
end
|
116
116
|
|
117
|
+
def bs_form_textarea(text=nil, options=nil, &block)
|
118
|
+
Matestack::Ui::Bootstrap::Form::Textarea.(text, options, &block)
|
119
|
+
end
|
120
|
+
|
117
121
|
def bs_form_select(text=nil, options=nil, &block)
|
118
122
|
Matestack::Ui::Bootstrap::Form::Select.(text, options, &block)
|
119
123
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "matestack/ui/core"
|
2
|
+
require "matestack/ui/vue_js"
|
2
3
|
|
3
4
|
base_path = 'matestack/ui/bootstrap'
|
4
5
|
require "#{base_path}/version"
|
@@ -16,12 +17,12 @@ require "#{base_path}/base_vue_js_component"
|
|
16
17
|
module Matestack
|
17
18
|
module Ui
|
18
19
|
module Bootstrap
|
19
|
-
module
|
20
|
+
module Layouts
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
24
|
-
require "#{base_path}/
|
25
|
+
require "#{base_path}/layouts/admin_template"
|
25
26
|
|
26
27
|
module Matestack
|
27
28
|
module Ui
|
@@ -98,9 +99,11 @@ module Matestack
|
|
98
99
|
end
|
99
100
|
require "#{base_path}/form/checkbox"
|
100
101
|
require "#{base_path}/form/input"
|
102
|
+
require "#{base_path}/form/textarea"
|
101
103
|
require "#{base_path}/form/radio"
|
102
104
|
require "#{base_path}/form/select"
|
103
105
|
require "#{base_path}/form/submit"
|
104
106
|
require "#{base_path}/form/switch"
|
105
107
|
|
106
108
|
require "#{base_path}/registry"
|
109
|
+
require "#{base_path}/initialize"
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matestack-ui-bootstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Jabari
|
8
|
-
- Nils Henning
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: matestack-ui-core
|
@@ -17,14 +16,28 @@ dependencies:
|
|
17
16
|
requirements:
|
18
17
|
- - "~>"
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
19
|
+
version: 3.0.0.rc2
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - "~>"
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
26
|
+
version: 3.0.0.rc2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: matestack-ui-vuejs
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.0.rc2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.0.rc2
|
28
41
|
description: Bootstrap v5 components for Matestack UI
|
29
42
|
email:
|
30
43
|
- jonas@matestack.io
|
@@ -35,13 +48,7 @@ files:
|
|
35
48
|
- LICENSE
|
36
49
|
- README.md
|
37
50
|
- Rakefile
|
38
|
-
- config/webpack/development.js
|
39
|
-
- config/webpack/environment.js
|
40
|
-
- config/webpack/production.js
|
41
|
-
- config/webpack/test.js
|
42
|
-
- config/webpacker.yml
|
43
51
|
- lib/matestack/ui/bootstrap.rb
|
44
|
-
- lib/matestack/ui/bootstrap/apps/admin_template.rb
|
45
52
|
- lib/matestack/ui/bootstrap/base_component.rb
|
46
53
|
- lib/matestack/ui/bootstrap/base_vue_js_component.rb
|
47
54
|
- lib/matestack/ui/bootstrap/components/accordion.rb
|
@@ -91,13 +98,16 @@ files:
|
|
91
98
|
- lib/matestack/ui/bootstrap/form/select.rb
|
92
99
|
- lib/matestack/ui/bootstrap/form/submit.rb
|
93
100
|
- lib/matestack/ui/bootstrap/form/switch.rb
|
101
|
+
- lib/matestack/ui/bootstrap/form/textarea.rb
|
94
102
|
- lib/matestack/ui/bootstrap/index.js
|
103
|
+
- lib/matestack/ui/bootstrap/initialize.rb
|
95
104
|
- lib/matestack/ui/bootstrap/layout/column.rb
|
96
105
|
- lib/matestack/ui/bootstrap/layout/container.rb
|
97
106
|
- lib/matestack/ui/bootstrap/layout/row.rb
|
98
107
|
- lib/matestack/ui/bootstrap/layout/sidebar.js
|
99
108
|
- lib/matestack/ui/bootstrap/layout/sidebar.rb
|
100
109
|
- lib/matestack/ui/bootstrap/layout/sidebar.scss
|
110
|
+
- lib/matestack/ui/bootstrap/layouts/admin_template.rb
|
101
111
|
- lib/matestack/ui/bootstrap/registry.rb
|
102
112
|
- lib/matestack/ui/bootstrap/stylesheets/matestack-ui-bootstrap.scss
|
103
113
|
- lib/matestack/ui/bootstrap/version.rb
|
@@ -117,11 +127,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
127
|
version: '0'
|
118
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
129
|
requirements:
|
120
|
-
- - "
|
130
|
+
- - ">"
|
121
131
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
132
|
+
version: 1.3.1
|
123
133
|
requirements: []
|
124
|
-
rubygems_version: 3.1.
|
134
|
+
rubygems_version: 3.1.4
|
125
135
|
signing_key:
|
126
136
|
specification_version: 4
|
127
137
|
summary: Bootstrap v5 components for Matestack UI
|
@@ -1,29 +0,0 @@
|
|
1
|
-
const { environment } = require('@rails/webpacker')
|
2
|
-
|
3
|
-
environment.config.merge({
|
4
|
-
externals: {
|
5
|
-
"matestack-ui-core": "matestack-ui-core",
|
6
|
-
"chart.js": "chart.js",
|
7
|
-
"bootstrap": "bootstrap",
|
8
|
-
"flatpickr": "flatpickr"
|
9
|
-
}
|
10
|
-
})
|
11
|
-
|
12
|
-
// Remove the digest from the output js filename.
|
13
|
-
// https://github.com/matestack/matestack-ui-core/issues/343#issuecomment-581149092
|
14
|
-
//
|
15
|
-
environment.config.set("output.filename", chunkData => {
|
16
|
-
return "[name].js"
|
17
|
-
})
|
18
|
-
|
19
|
-
// Remove the digest from the output css filename.
|
20
|
-
// https://github.com/matestack/matestack-ui-core/issues/343#issuecomment-581149092
|
21
|
-
//
|
22
|
-
// Inspect with:
|
23
|
-
//
|
24
|
-
// console.log(environment.plugins)
|
25
|
-
//
|
26
|
-
const miniCssExtractPlugin = environment.plugins.get('MiniCssExtract')
|
27
|
-
miniCssExtractPlugin.options.filename = "[name].css"
|
28
|
-
|
29
|
-
module.exports = environment
|