matestack-ui-core 1.0.0 → 1.3.1

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +783 -17
  3. data/app/concepts/matestack/ui/core/app/store.js +5 -1
  4. data/app/concepts/matestack/ui/core/async/async.js +6 -28
  5. data/app/concepts/matestack/ui/core/async/async.rb +7 -10
  6. data/app/concepts/matestack/ui/core/cable/cable.haml +4 -0
  7. data/app/concepts/matestack/ui/core/cable/cable.js +100 -0
  8. data/app/concepts/matestack/ui/core/cable/cable.rb +28 -0
  9. data/app/concepts/matestack/ui/core/cable/children_wrapper.haml +2 -0
  10. data/app/concepts/matestack/ui/core/collection/content/content.js +2 -2
  11. data/app/concepts/matestack/ui/core/collection/content/content.rb +1 -1
  12. data/app/concepts/matestack/ui/core/component/base.rb +10 -4
  13. data/app/concepts/matestack/ui/core/component/component.js +18 -1
  14. data/app/concepts/matestack/ui/core/component/dynamic.rb +1 -1
  15. data/app/concepts/matestack/ui/core/form/checkbox/base.rb +120 -0
  16. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.js +15 -0
  17. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +7 -70
  18. data/app/concepts/matestack/ui/core/form/checkbox/mixin.js +80 -0
  19. data/app/concepts/matestack/ui/core/form/form.js +15 -46
  20. data/app/concepts/matestack/ui/core/form/input/base.rb +75 -0
  21. data/app/concepts/matestack/ui/core/form/input/input.js +15 -0
  22. data/app/concepts/matestack/ui/core/form/input/input.rb +8 -52
  23. data/app/concepts/matestack/ui/core/form/input/mixin.js +55 -0
  24. data/app/concepts/matestack/ui/core/form/radio/base.rb +90 -0
  25. data/app/concepts/matestack/ui/core/form/radio/mixin.js +62 -0
  26. data/app/concepts/matestack/ui/core/form/radio/radio.js +15 -0
  27. data/app/concepts/matestack/ui/core/form/radio/radio.rb +7 -62
  28. data/app/concepts/matestack/ui/core/form/select/base.rb +98 -0
  29. data/app/concepts/matestack/ui/core/form/select/mixin.js +58 -0
  30. data/app/concepts/matestack/ui/core/form/select/select.js +15 -0
  31. data/app/concepts/matestack/ui/core/form/select/select.rb +11 -60
  32. data/app/concepts/matestack/ui/core/form/submit/base.rb +12 -0
  33. data/app/concepts/matestack/ui/core/form/submit/submit.js +19 -0
  34. data/app/concepts/matestack/ui/core/form/submit/submit.rb +9 -6
  35. data/app/concepts/matestack/ui/core/form/textarea/base.rb +49 -0
  36. data/app/concepts/matestack/ui/core/form/textarea/mixin.js +41 -0
  37. data/app/concepts/matestack/ui/core/form/textarea/textarea.js +15 -0
  38. data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +10 -21
  39. data/app/concepts/matestack/ui/core/js/core.js +12 -0
  40. data/app/concepts/matestack/ui/core/{form/submit/submit.haml → select/select.haml} +1 -1
  41. data/app/concepts/matestack/ui/core/select/select.rb +7 -0
  42. data/app/helpers/matestack/ui/core/application_helper.rb +6 -3
  43. data/app/javascript/matestack-ui-core/index.js +12 -2
  44. data/app/lib/matestack/ui/core/has_view_context.rb +4 -2
  45. data/app/lib/matestack/ui/core/rendering/main_renderer.rb +11 -7
  46. data/lib/matestack/ui/core/components.rb +4 -1
  47. data/lib/matestack/ui/core/version.rb +1 -1
  48. data/vendor/assets/javascripts/dist/manifest.json +6 -10
  49. data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
  50. data/vendor/assets/javascripts/dist/matestack-ui-core.js +773 -99
  51. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -1
  52. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +1 -1
  53. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
  54. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  55. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -1
  56. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
  57. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  58. metadata +28 -5
  59. data/app/concepts/matestack/ui/core/component/rerender.rb +0 -8
  60. data/app/concepts/matestack/ui/core/form/select/select.haml +0 -9
@@ -0,0 +1,12 @@
1
+ module Matestack::Ui::Core::Form::Submit
2
+ class Base < Matestack::Ui::Core::Component::Dynamic
3
+
4
+ def submit_attributes
5
+ html_attributes.merge!({
6
+ "@click.prevent": "$parent.perform",
7
+ "v-bind:class": "{ 'loading': $parent.loading }"
8
+ })
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ import Vue from "vue/dist/vue.esm";
2
+
3
+ import componentMixin from "../../component/component";
4
+
5
+ const componentDef = {
6
+ mixins: [componentMixin],
7
+ data() {
8
+ return {};
9
+ },
10
+ methods: {
11
+ loading: function(){
12
+ return this.$parent.loading;
13
+ }
14
+ }
15
+ }
16
+
17
+ let component = Vue.component("matestack-ui-core-form-submit", componentDef);
18
+
19
+ export default componentDef;
@@ -1,11 +1,14 @@
1
+ require_relative './base'
2
+
1
3
  module Matestack::Ui::Core::Form::Submit
2
- class Submit < Matestack::Ui::Core::Component::Static
4
+ class Submit < Base
5
+
6
+ vue_js_component_name "matestack-ui-core-form-submit"
3
7
 
4
- def submit_attributes
5
- html_attributes.merge!({
6
- "@click.prevent": "perform",
7
- "v-bind:class": "{ 'loading': loading }"
8
- })
8
+ def response
9
+ span attributes: submit_attributes do
10
+ yield_components
11
+ end
9
12
  end
10
13
 
11
14
  end
@@ -0,0 +1,49 @@
1
+ require_relative '../utils'
2
+ require_relative '../has_errors'
3
+ module Matestack::Ui::Core::Form::Textarea
4
+ class Base < Matestack::Ui::Core::Component::Dynamic
5
+ include Matestack::Ui::Core::Form::Utils
6
+ include Matestack::Ui::Core::Form::HasErrors
7
+
8
+ requires :key
9
+ optional :multiple, :init, for: { as: :input_for }, label: { as: :input_label }
10
+
11
+ html_attributes :autofocus, :cols, :dirname, :disabled, :form, :maxlength,
12
+ :name, :placeholder, :readonly, :required, :rows, :wrap
13
+
14
+ def setup
15
+ @component_config[:init_value] = init_value
16
+ end
17
+
18
+ def component_id
19
+ "textarea-component-for-#{attr_key}"
20
+ end
21
+
22
+ def input_key
23
+ "$parent.data[\"#{key}\"]"
24
+ end
25
+
26
+ def error_key
27
+ "$parent.errors[\"#{key}\"]"
28
+ end
29
+
30
+ def change_event
31
+ "inputChanged('#{attr_key}')"
32
+ end
33
+
34
+ def textarea_attributes
35
+ html_attributes.merge(attributes: vue_attributes)
36
+ end
37
+
38
+ def vue_attributes
39
+ (options[:attributes] || {}).merge({
40
+ 'v-model': input_key,
41
+ '@change': change_event,
42
+ 'v-bind:class': "{ '#{input_error_class}': #{error_key} }",
43
+ "init-value": init_value,
44
+ ref: "input.#{attr_key}",
45
+ })
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,41 @@
1
+ const formTextareaMixin = {
2
+ methods: {
3
+ initialize: function(){
4
+ const self = this
5
+ let data = {};
6
+
7
+ for (let key in this.$refs) {
8
+ let initValue = this.$refs[key]["attributes"]["init-value"];
9
+
10
+ if (initValue) {
11
+ data[key.replace("input.", "")] = initValue["value"];
12
+ Object.assign(self.$parent.data, data);
13
+ self.afterInitialize(initValue["value"])
14
+ } else {
15
+ data[key.replace("input.", "")] = null;
16
+ Object.assign(self.$parent.data, data);
17
+ self.afterInitialize(null)
18
+ }
19
+ }
20
+
21
+ //without the timeout it's somehow not working
22
+ setTimeout(function () {
23
+ self.$forceUpdate()
24
+ }, 1);
25
+ },
26
+ inputChanged: function (key) {
27
+ this.$parent.resetErrors(key);
28
+ this.$forceUpdate();
29
+ },
30
+ afterInitialize: function(value){
31
+ // can be used in the main component for further initialization steps
32
+ },
33
+ setValue: function (value){
34
+ this.$parent.data[this.componentConfig["key"]] = value
35
+ this.$forceUpdate();
36
+ }
37
+ }
38
+
39
+ }
40
+
41
+ export default formTextareaMixin
@@ -0,0 +1,15 @@
1
+ import Vue from "vue/dist/vue.esm";
2
+
3
+ import formTextareaMixin from "./mixin";
4
+ import componentMixin from "../../component/component";
5
+
6
+ const componentDef = {
7
+ mixins: [componentMixin, formTextareaMixin],
8
+ data() {
9
+ return {};
10
+ }
11
+ }
12
+
13
+ let component = Vue.component("matestack-ui-core-form-textarea", componentDef);
14
+
15
+ export default componentDef;
@@ -1,28 +1,17 @@
1
- require_relative '../utils'
2
- require_relative '../has_errors'
1
+ require_relative './base'
2
+
3
3
  module Matestack::Ui::Core::Form::Textarea
4
- class Textarea < Matestack::Ui::Core::Textarea::Textarea
5
- include Matestack::Ui::Core::Form::Utils
6
- include Matestack::Ui::Core::Form::HasErrors
4
+ class Textarea < Base
7
5
 
8
- requires :key
9
- optional :multiple, :init, for: { as: :input_for }, label: { as: :input_label }
6
+ vue_js_component_name "matestack-ui-core-form-textarea"
10
7
 
11
8
  def response
12
- label text: input_label if input_label
13
- textarea html_attributes.merge(attributes: vue_attributes)
14
- render_errors
9
+ div class: "matestack-ui-core-form-textarea" do
10
+ label text: input_label if input_label
11
+ textarea textarea_attributes
12
+ render_errors
13
+ end
15
14
  end
16
15
 
17
- def vue_attributes
18
- (options[:attributes] || {}).merge({
19
- 'v-model': input_key,
20
- '@change': "inputChanged('#{attr_key}')",
21
- 'v-bind:class': "{ '#{input_error_class}': #{error_key} }",
22
- "init-value": init_value,
23
- ref: "input.#{attr_key}",
24
- })
25
- end
26
-
27
16
  end
28
- end
17
+ end
@@ -4,6 +4,7 @@ import { turbolinksAdapterMixin } from 'vue-turbolinks';
4
4
  // Import from app/concepts/matestack/ui/core:
5
5
  import app from '../app/app'
6
6
  import async from '../async/async'
7
+ import cable from '../cable/cable'
7
8
  import pageContent from '../page/content/content'
8
9
  import toggle from '../toggle/toggle'
9
10
  import store from '../app/store'
@@ -12,6 +13,17 @@ import anonymDynamicComponent from '../component/anonym-dynamic-component'
12
13
  import transition from '../transition/transition'
13
14
  import action from '../action/action'
14
15
  import form from '../form/form'
16
+ import formInput from '../form/input/input'
17
+ import formInputMixin from '../form/input/mixin'
18
+ import formSelect from '../form/select/select'
19
+ import formSelectMixin from '../form/select/mixin'
20
+ import formRadio from '../form/radio/radio'
21
+ import formRadioMixin from '../form/radio/mixin'
22
+ import formCheckbox from '../form/checkbox/checkbox'
23
+ import formCheckboxMixin from '../form/checkbox/mixin'
24
+ import formTextarea from '../form/textarea/textarea'
25
+ import formTextareaMixin from '../form/textarea/mixin'
26
+ import formSubmit from '../form/submit/submit'
15
27
  import onclick from '../onclick/onclick'
16
28
  import collectionContent from '../collection/content/content'
17
29
  import collectionFilter from '../collection/filter/filter'
@@ -1,3 +1,3 @@
1
- %span{ submit_attributes }
1
+ %select{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -0,0 +1,7 @@
1
+ module Matestack::Ui::Core::Select
2
+ class Select < Matestack::Ui::Core::Component::Static
3
+
4
+ html_attributes :autofocus, :disabled, :form, :multiple, :name, :required, :size
5
+
6
+ end
7
+ end
@@ -14,7 +14,7 @@ module Matestack
14
14
  def self.included(base)
15
15
  base.extend(ClassMethods)
16
16
  end
17
-
17
+
18
18
  module ClassMethods
19
19
  def matestack_app _class
20
20
  @matestack_app_class = _class
@@ -99,8 +99,11 @@ module Matestack
99
99
  end
100
100
 
101
101
  def matestack_component(component, options = {}, &block)
102
- context = (options[:matestack_context] ||= {}).merge(controller: @_controller)
103
- Matestack::Ui::Core::Component::Base.new(options.merge(matestack_context: context)).send(component, options.merge(matestack_context: context), &block)
102
+ controller = (self.class <= ActionController::Base) ? self : @_controller
103
+ context = (options[:matestack_context] ||= {}).merge(controller: controller)
104
+ Matestack::Ui::Core::Component::Base
105
+ .new(options.merge(context: context, matestack_context: context))
106
+ .send(component, options.merge(context: context, matestack_context: context), &block).to_s
104
107
  end
105
108
  end
106
109
  end
@@ -5,6 +5,11 @@ import axios from 'axios'
5
5
  // Import from app/concepts/matestack/ui/core:
6
6
  import matestackEventHub from '../../../app/concepts/matestack/ui/core/js/event-hub'
7
7
  import componentMixin from '../../../app/concepts/matestack/ui/core/component/component'
8
+ import formInputMixin from '../../../app/concepts/matestack/ui/core/form/input/mixin'
9
+ import formSelectMixin from '../../../app/concepts/matestack/ui/core/form/select/mixin'
10
+ import formRadioMixin from '../../../app/concepts/matestack/ui/core/form/radio/mixin'
11
+ import formCheckboxMixin from '../../../app/concepts/matestack/ui/core/form/checkbox/mixin'
12
+ import formTextareaMixin from '../../../app/concepts/matestack/ui/core/form/textarea/mixin'
8
13
  import matestackUiCore from '../../../app/concepts/matestack/ui/core/js/core'
9
14
 
10
15
  import styles from './styles/index.scss'
@@ -14,9 +19,14 @@ const MatestackUiCore = {
14
19
  Vuex,
15
20
  axios,
16
21
  matestackEventHub,
17
- componentMixin
22
+ componentMixin,
23
+ formInputMixin,
24
+ formSelectMixin,
25
+ formCheckboxMixin,
26
+ formTextareaMixin,
27
+ formRadioMixin
18
28
  }
19
29
 
20
30
  window.MatestackUiCore = MatestackUiCore
21
31
 
22
- export default MatestackUiCore
32
+ export default MatestackUiCore
@@ -2,8 +2,10 @@ module Matestack::Ui::Core::HasViewContext
2
2
  def initialize(*args)
3
3
  super
4
4
  @view_context = @options.dig(:context, :view_context)
5
+ unless @view_context
6
+ @view_context = @options.dig(:matestack_context, :controller)&.view_context
7
+ end
5
8
  end
6
-
7
9
  def method_missing(*args, &block)
8
10
  if @view_context.respond_to? args.first
9
11
  @view_context.send(*args, &block)
@@ -11,4 +13,4 @@ module Matestack::Ui::Core::HasViewContext
11
13
  raise NameError, "NameError: undefined method or local variable `#{args.first}' for #{self.class.name}"
12
14
  end
13
15
  end
14
- end
16
+ end
@@ -21,9 +21,10 @@ module Matestack::Ui::Core::Rendering::MainRenderer
21
21
  render_matestack_object(controller_instance, page_instance)
22
22
  elsif (params[:component_key].present? && params[:component_class].blank?)
23
23
  # async component rerendering from non isolated context
24
+ app_instance = app_class.new(page_class, controller_instance, context)
24
25
  component_key = params[:component_key]
25
26
  page_instance = page_class.new(controller_instance: controller_instance, context: context)
26
- render_component(component_key, page_instance, controller_instance, context)
27
+ render_component(component_key, app_instance, controller_instance, context)
27
28
  elsif (params[:component_class].present? && params[:component_key].blank?)
28
29
  # isolated component rendering
29
30
  component_class = params[:component_class]
@@ -60,11 +61,14 @@ module Matestack::Ui::Core::Rendering::MainRenderer
60
61
  end
61
62
  end
62
63
 
64
+ # needs refactoring!
65
+ # we shouldn't pass in the parts of the controller_instance and the instance itself
63
66
  def create_context_hash(controller_instance)
64
67
  {
65
68
  view_context: controller_instance.view_context,
66
69
  params: controller_instance.params,
67
- request: controller_instance.request
70
+ request: controller_instance.request,
71
+ controller: controller_instance # if this is not included here, rails route helpers will fail with undefined method `url_options' for nil:NilClass in some cases
68
72
  }
69
73
  end
70
74
 
@@ -75,15 +79,15 @@ module Matestack::Ui::Core::Rendering::MainRenderer
75
79
  controller_instance.render rendering_options
76
80
  end
77
81
 
78
- def render_component(component_key, page_instance, controller_instance, context)
82
+ def render_component(component_key, app_or_page_instance, controller_instance, context)
79
83
  matched_component = nil
80
84
 
81
- page_instance.matestack_set_skip_defer(false)
85
+ app_or_page_instance.matestack_set_skip_defer(false)
82
86
 
83
- page_instance.prepare
84
- page_instance.response
87
+ app_or_page_instance.prepare
88
+ app_or_page_instance.response
85
89
 
86
- matched_component = dig_for_component(component_key, page_instance)
90
+ matched_component = dig_for_component(component_key, app_or_page_instance)
87
91
 
88
92
  unless matched_component.nil?
89
93
  render_matestack_object(controller_instance, matched_component, {}, :render_content)
@@ -25,7 +25,6 @@ module Matestack::Ui::Core::Components
25
25
 
26
26
  require_app_path "concepts/matestack/ui/core/component/base"
27
27
  require_app_path "concepts/matestack/ui/core/component/dynamic"
28
- require_app_path "concepts/matestack/ui/core/component/rerender"
29
28
  require_app_path "concepts/matestack/ui/core/component/static"
30
29
 
31
30
  require_core_component "abbr"
@@ -41,6 +40,7 @@ module Matestack::Ui::Core::Components
41
40
  require_core_component "blockquote"
42
41
  require_core_component "br"
43
42
  require_core_component "button"
43
+ require_core_component "cable"
44
44
  require_core_component "caption"
45
45
  require_core_component "cite"
46
46
  require_core_component "code"
@@ -120,6 +120,7 @@ module Matestack::Ui::Core::Components
120
120
  require_core_component "s"
121
121
  require_core_component "samp"
122
122
  require_core_component "section"
123
+ require_core_component "select"
123
124
  require_core_component "small"
124
125
  require_core_component "span"
125
126
  require_core_component "strong"
@@ -162,6 +163,7 @@ Matestack::Ui::Core::Component::Registry.register_components(
162
163
  blockquote: Matestack::Ui::Core::Blockquote::Blockquote,
163
164
  br: Matestack::Ui::Core::Br::Br,
164
165
  button: Matestack::Ui::Core::Button::Button,
166
+ cable: Matestack::Ui::Core::Cable::Cable,
165
167
  caption: Matestack::Ui::Core::Caption::Caption,
166
168
  cite: Matestack::Ui::Core::Cite::Cite,
167
169
  code: Matestack::Ui::Core::Code::Code,
@@ -240,6 +242,7 @@ Matestack::Ui::Core::Component::Registry.register_components(
240
242
  s: Matestack::Ui::Core::S::S,
241
243
  samp: Matestack::Ui::Core::Samp::Samp,
242
244
  section: Matestack::Ui::Core::Section::Section,
245
+ select: Matestack::Ui::Core::Select::Select,
243
246
  small: Matestack::Ui::Core::Small::Small,
244
247
  span: Matestack::Ui::Core::Span::Span,
245
248
  strong: Matestack::Ui::Core::Strong::Strong,
@@ -1,7 +1,7 @@
1
1
  module Matestack
2
2
  module Ui
3
3
  module Core
4
- VERSION = '1.0.0'
4
+ VERSION = '1.3.1'
5
5
  end
6
6
  end
7
7
  end
@@ -2,21 +2,17 @@
2
2
  "entrypoints": {
3
3
  "matestack-ui-core": {
4
4
  "css": [
5
- "/dist/matestack-ui-core.css"
5
+ "/dist/matestack-ui-core.min.css"
6
6
  ],
7
7
  "js": [
8
- "/dist/matestack-ui-core.js"
9
- ],
10
- "css.map": [
11
- "/dist/matestack-ui-core.css.map"
8
+ "/dist/matestack-ui-core.min.js"
12
9
  ],
13
10
  "js.map": [
14
- "/dist/matestack-ui-core.js.map"
11
+ "/dist/matestack-ui-core.min.js.map"
15
12
  ]
16
13
  }
17
14
  },
18
- "matestack-ui-core.css": "/dist/matestack-ui-core.css",
19
- "matestack-ui-core.css.map": "/dist/matestack-ui-core.css.map",
20
- "matestack-ui-core.js": "/dist/matestack-ui-core.js",
21
- "matestack-ui-core.js.map": "/dist/matestack-ui-core.js.map"
15
+ "matestack-ui-core.css": "/dist/matestack-ui-core.min.css",
16
+ "matestack-ui-core.js": "/dist/matestack-ui-core.min.js",
17
+ "matestack-ui-core.js.map": "/dist/matestack-ui-core.min.js.map"
22
18
  }
@@ -394,7 +394,11 @@ const store = new vuex__WEBPACK_IMPORTED_MODULE_1__["default"].Store({
394
394
  return getScrollParent(node.parentNode)
395
395
  }
396
396
  }
397
- getScrollParent(document.getElementsByClassName("matestack-page-root")[0]).scrollTop = 0
397
+ var scrollParent = getScrollParent(document.getElementsByClassName("matestack-page-root")[0])
398
+ if(scrollParent){
399
+ scrollParent.scrollTop = 0;
400
+ }
401
+ // getScrollParent(document.getElementsByClassName("matestack-page-root")[0]).scrollTop = 0
398
402
  }
399
403
  },
400
404
  actions: {
@@ -548,19 +552,9 @@ const componentDef = {
548
552
  },
549
553
  created: function () {
550
554
  const self = this
551
- if(this.componentConfig["show_on"] != undefined){
552
- this.showing = false
553
- var show_events = this.componentConfig["show_on"].split(",")
554
- show_events.forEach(show_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(show_event.trim(), self.show));
555
- }
556
- if(this.componentConfig["hide_on"] != undefined){
557
- var hide_events = this.componentConfig["hide_on"].split(",")
558
- hide_events.forEach(hide_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(hide_event.trim(), self.hide));
559
- }
560
- if(this.componentConfig["rerender_on"] != undefined){
561
- var rerender_events = this.componentConfig["rerender_on"].split(",")
562
- rerender_events.forEach(rerender_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(rerender_event.trim(), self.rerender));
563
- }
555
+ self.registerEvents(this.componentConfig['show_on'], self.show)
556
+ self.registerEvents(this.componentConfig['hide_on'], self.hide)
557
+ self.registerEvents(this.componentConfig['rerender_on'], self.rerender)
564
558
  if(this.componentConfig["show_on"] != undefined){
565
559
  this.showing = false
566
560
  }
@@ -578,21 +572,9 @@ const componentDef = {
578
572
  beforeDestroy: function() {
579
573
  const self = this
580
574
  clearTimeout(self.hideAfterTimeout)
581
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["rerender_on"], self.rerender);
582
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["show_on"], self.show);
583
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["hide_on"], self.hide);
584
- if(this.componentConfig["show_on"] != undefined){
585
- var shown_events = this.componentConfig["show_on"].split(",")
586
- shown_events.forEach(show_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(show_event.trim(), self.show));
587
- }
588
- if(this.componentConfig["hide_on"] != undefined){
589
- var hiden_events = this.componentConfig["hide_on"].split(",")
590
- hiden_events.forEach(hide_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(hide_event.trim(), self.hide));
591
- }
592
- if(this.componentConfig["rerender_on"] != undefined){
593
- var rerender_events = this.componentConfig["rerender_on"].split(",")
594
- rerender_events.forEach(rerender_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(rerender_event.trim(), self.rerender));
595
- }
575
+ self.removeEvents(this.componentConfig["show_on"], self.show)
576
+ self.removeEvents(this.componentConfig["hide_on"], self.hide)
577
+ self.removeEvents(this.componentConfig["rerender_on"], self.rerender)
596
578
  },
597
579
  components: {
598
580
  VRuntimeTemplate: v_runtime_template__WEBPACK_IMPORTED_MODULE_2__["default"]
@@ -604,6 +586,123 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
604
586
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
605
587
 
606
588
 
589
+ /***/ }),
590
+
591
+ /***/ "../app/concepts/matestack/ui/core/cable/cable.js":
592
+ /*!********************************************************!*\
593
+ !*** ../app/concepts/matestack/ui/core/cable/cable.js ***!
594
+ \********************************************************/
595
+ /*! exports provided: default */
596
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
597
+
598
+ "use strict";
599
+ __webpack_require__.r(__webpack_exports__);
600
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
601
+ /* harmony import */ var v_runtime_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! v-runtime-template */ "../node_modules/v-runtime-template/dist/v-runtime-template.es.js");
602
+ /* harmony import */ var _js_event_hub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
603
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
604
+
605
+
606
+
607
+
608
+
609
+ const componentDef = {
610
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"]],
611
+ props: {
612
+ initialTemplate: String,
613
+ },
614
+ data: function(){
615
+ return {
616
+ cableTemplate: null,
617
+ cableTemplateDomElement: null,
618
+ loading: false,
619
+ event: {
620
+ data: {}
621
+ }
622
+ }
623
+ },
624
+ methods: {
625
+ append: function(payload){
626
+ var html = this.formatPayload(payload)
627
+ this.cableTemplateDomElement.insertAdjacentHTML(
628
+ 'beforeend',
629
+ html.join('')
630
+ )
631
+ this.updateCableTemplate()
632
+ },
633
+ prepend: function(payload){
634
+ var html = this.formatPayload(payload)
635
+ this.cableTemplateDomElement.insertAdjacentHTML(
636
+ 'afterbegin',
637
+ html.join('')
638
+ )
639
+ this.updateCableTemplate()
640
+ },
641
+ delete: function(payload){
642
+ var ids = this.formatPayload(payload)
643
+ ids.forEach(id =>
644
+ this.cableTemplateDomElement.querySelector('#' + id).remove()
645
+ )
646
+ this.updateCableTemplate()
647
+ },
648
+ update: function(payload){
649
+ const self = this
650
+ var html = this.formatPayload(payload)
651
+ html.forEach(function(elem){
652
+ var dom_elem = document.createElement('div')
653
+ dom_elem.innerHTML = elem
654
+ var id = dom_elem.firstChild.id
655
+ var old_elem = self.cableTemplateDomElement.querySelector('#' + id)
656
+ old_elem.parentNode.replaceChild(dom_elem.firstChild, old_elem)
657
+ })
658
+ this.updateCableTemplate()
659
+ },
660
+ replace: function(payload){
661
+ var html = this.formatPayload(payload)
662
+ this.cableTemplateDomElement.innerHTML = html.join('')
663
+ this.updateCableTemplate()
664
+ },
665
+ updateCableTemplate: function(){
666
+ this.cableTemplate = this.cableTemplateDomElement.outerHTML
667
+ },
668
+ formatPayload: function(payload){
669
+ if(!Array.isArray(payload.data)){
670
+ return [payload.data]
671
+ }
672
+ return payload.data
673
+ },
674
+ },
675
+ mounted: function() {
676
+ const self = this
677
+ var dom_elem = document.createElement('div')
678
+ dom_elem.innerHTML = this.initialTemplate
679
+ this.cableTemplateDomElement = dom_elem.querySelector("#" + this.componentConfig["id"])
680
+ this.cableTemplate = this.cableTemplateDomElement.outerHTML
681
+ this.registerEvents(this.componentConfig['append_on'], self.append)
682
+ this.registerEvents(this.componentConfig['prepend_on'], self.prepend)
683
+ this.registerEvents(this.componentConfig['delete_on'], self.delete)
684
+ this.registerEvents(this.componentConfig['update_on'], self.update)
685
+ this.registerEvents(this.componentConfig['replace_on'], self.replace)
686
+ },
687
+ beforeDestroy: function() {
688
+ const self = this
689
+ this.cableTemplate = null
690
+ this.removeEvents(this.componentConfig['append_on'], self.append)
691
+ this.removeEvents(this.componentConfig['prepend_on'], self.prepend)
692
+ this.removeEvents(this.componentConfig['delete_on'], self.delete)
693
+ this.removeEvents(this.componentConfig['update_on'], self.update)
694
+ this.removeEvents(this.componentConfig['replace_on'], self.replace)
695
+ },
696
+ components: {
697
+ VRuntimeTemplate: v_runtime_template__WEBPACK_IMPORTED_MODULE_1__["default"]
698
+ }
699
+ }
700
+
701
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component('matestack-ui-core-cable', componentDef)
702
+
703
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
704
+
705
+
607
706
  /***/ }),
608
707
 
609
708
  /***/ "../app/concepts/matestack/ui/core/collection/content/content.js":
@@ -619,15 +718,14 @@ __webpack_require__.r(__webpack_exports__);
619
718
  /* harmony import */ var _js_event_hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
620
719
  /* harmony import */ var _js_helpers_query_params_helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../js/helpers/query-params-helper */ "../app/concepts/matestack/ui/core/js/helpers/query-params-helper.js");
621
720
  /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
622
- /* harmony import */ var _async_async__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../async/async */ "../app/concepts/matestack/ui/core/async/async.js");
623
-
624
721
 
625
722
 
626
723
 
627
724
 
725
+ // import asyncMixin from '../../async/async'
628
726
 
629
727
  const componentDef = {
630
- mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"], _async_async__WEBPACK_IMPORTED_MODULE_4__["default"]],
728
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"]],
631
729
  data: function(){
632
730
  return {
633
731
  currentLimit: null,
@@ -894,13 +992,155 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
894
992
 
895
993
  "use strict";
896
994
  __webpack_require__.r(__webpack_exports__);
995
+ /* harmony import */ var _js_event_hub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
996
+
997
+
897
998
  const componentMixin = {
898
- props: ['componentConfig', 'params']
999
+ props: ['componentConfig', 'params'],
1000
+ methods: {
1001
+ registerEvents: function(events, callback){
1002
+ if(events != undefined){
1003
+ var event_names = events.split(",")
1004
+ event_names.forEach(event_name => _js_event_hub__WEBPACK_IMPORTED_MODULE_0__["default"].$on(event_name.trim(), callback));
1005
+ }
1006
+ },
1007
+ removeEvents: function(events, callback){
1008
+ if(events != undefined){
1009
+ var event_names = events.split(",")
1010
+ event_names.forEach(event_name => _js_event_hub__WEBPACK_IMPORTED_MODULE_0__["default"].$off(event_name.trim(), callback));
1011
+ }
1012
+ }
1013
+ }
1014
+
899
1015
  }
900
1016
 
901
1017
  /* harmony default export */ __webpack_exports__["default"] = (componentMixin);
902
1018
 
903
1019
 
1020
+ /***/ }),
1021
+
1022
+ /***/ "../app/concepts/matestack/ui/core/form/checkbox/checkbox.js":
1023
+ /*!*******************************************************************!*\
1024
+ !*** ../app/concepts/matestack/ui/core/form/checkbox/checkbox.js ***!
1025
+ \*******************************************************************/
1026
+ /*! exports provided: default */
1027
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1028
+
1029
+ "use strict";
1030
+ __webpack_require__.r(__webpack_exports__);
1031
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1032
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js");
1033
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+ const componentDef = {
1040
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1041
+ data() {
1042
+ return {};
1043
+ }
1044
+ }
1045
+
1046
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-checkbox", componentDef);
1047
+
1048
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1049
+
1050
+
1051
+ /***/ }),
1052
+
1053
+ /***/ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js":
1054
+ /*!****************************************************************!*\
1055
+ !*** ../app/concepts/matestack/ui/core/form/checkbox/mixin.js ***!
1056
+ \****************************************************************/
1057
+ /*! exports provided: default */
1058
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1059
+
1060
+ "use strict";
1061
+ __webpack_require__.r(__webpack_exports__);
1062
+ const formCheckboxMixin = {
1063
+ methods: {
1064
+ initialize: function(){
1065
+ const self = this
1066
+ let data = {};
1067
+
1068
+ for (let key in self.$refs) {
1069
+ let initValue = self.$refs[key]["attributes"]["init-value"];
1070
+ let valueType = self.$refs[key]["attributes"]["value-type"];
1071
+
1072
+ if (key.startsWith("select.")) {
1073
+ if (key.startsWith("select.multiple.")) {
1074
+ if (initValue) {
1075
+ data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1076
+ Object.assign(self.$parent.data, data);
1077
+ self.afterInitialize(JSON.parse(initValue["value"]))
1078
+ } else {
1079
+ data[key.replace("select.multiple.", "")] = [];
1080
+ Object.assign(self.$parent.data, data);
1081
+ self.afterInitialize([])
1082
+ }
1083
+ } else {
1084
+ if (initValue) {
1085
+ if (valueType && valueType["value"] == "Integer") {
1086
+ data[key.replace("select.", "")] = parseInt(initValue["value"]);
1087
+ Object.assign(self.$parent.data, data);
1088
+ self.afterInitialize(parseInt(initValue["value"]))
1089
+ } else {
1090
+
1091
+ data[key.replace("select.", "")] = initValue["value"];
1092
+ Object.assign(self.$parent.data, data);
1093
+ self.afterInitialize(initValue["value"])
1094
+ }
1095
+ } else {
1096
+ data[key.replace("select.", "")] = null;
1097
+ Object.assign(self.$parent.data, data);
1098
+ self.afterInitialize(null)
1099
+ }
1100
+ }
1101
+ } else {
1102
+ if (initValue) {
1103
+ if(initValue["value"] === "true"){
1104
+ data[key.replace("input.", "")] = true;
1105
+ Object.assign(self.$parent.data, data);
1106
+ self.afterInitialize(true)
1107
+ }
1108
+ if(initValue["value"] === "false"){
1109
+ data[key.replace("input.", "")] = false;
1110
+ Object.assign(self.$parent.data, data);
1111
+ self.afterInitialize(false)
1112
+ }
1113
+ } else {
1114
+ data[key.replace("input.", "")] = null;
1115
+ Object.assign(self.$parent.data, data);
1116
+ self.afterInitialize(null)
1117
+ }
1118
+ }
1119
+ }
1120
+
1121
+ //without the timeout it's somehow not working
1122
+ setTimeout(function () {
1123
+ self.$forceUpdate()
1124
+ }, 1);
1125
+ },
1126
+ inputChanged: function (key) {
1127
+ this.$parent.resetErrors(key);
1128
+ this.$forceUpdate();
1129
+ },
1130
+ afterInitialize: function(value){
1131
+ // can be used in the main component for further initialization steps
1132
+ },
1133
+ setValue: function (value){
1134
+ this.$parent.data[this.componentConfig["key"]] = value
1135
+ this.$forceUpdate();
1136
+ }
1137
+ }
1138
+
1139
+ }
1140
+
1141
+ /* harmony default export */ __webpack_exports__["default"] = (formCheckboxMixin);
1142
+
1143
+
904
1144
  /***/ }),
905
1145
 
906
1146
  /***/ "../app/concepts/matestack/ui/core/form/form.js":
@@ -938,9 +1178,6 @@ const componentDef = {
938
1178
  initDataKey: function (key, initValue) {
939
1179
  this.data[key] = initValue;
940
1180
  },
941
- inputChanged: function (key) {
942
- this.resetErrors(key);
943
- },
944
1181
  updateFormValue: function (key, value) {
945
1182
  this.data[key] = value;
946
1183
  },
@@ -964,11 +1201,11 @@ const componentDef = {
964
1201
  flat[i] = newVal;
965
1202
  } else if (flat[i] instanceof File){
966
1203
  flat[i] = newVal;
967
- this.$refs["input."+i].value = newVal
1204
+ this.$refs["input-component-for-"+i].value = newVal
968
1205
  } else if (flat[i] instanceof Array) {
969
1206
  if(flat[i][0] instanceof File){
970
1207
  flat[i] = newVal
971
- this.$refs["input."+i].value = newVal
1208
+ this.$refs["input-component-for-"+i].value = newVal
972
1209
  }
973
1210
  } else if (typeof flat[i] === "object" && !(flat[i] instanceof Array)) {
974
1211
  setProps(flat[i], newVal);
@@ -977,54 +1214,26 @@ const componentDef = {
977
1214
  }
978
1215
  }
979
1216
  },
980
- filesAdded: function (key) {
981
- const dataTransfer = event.dataTransfer || event.target;
982
- const files = dataTransfer.files;
983
- if (event.target.attributes.multiple) {
984
- this.data[key] = [];
985
- for (let index in files) {
986
- if (files[index] instanceof File) {
987
- this.data[key].push(files[index]);
988
- }
989
- }
990
- } else {
991
- this.data[key] = files[0];
992
- }
993
- },
994
1217
  initValues: function () {
995
1218
  let self = this;
996
1219
  let data = {};
997
1220
  for (let key in self.$refs) {
998
- let initValue = self.$refs[key]["attributes"]["init-value"];
999
- let valueType = self.$refs[key]["attributes"]["value-type"];
1000
-
1001
- if (key.startsWith("input.")) {
1002
- if (initValue) {
1003
- data[key.replace("input.", "")] = initValue["value"];
1004
- } else {
1005
- data[key.replace("input.", "")] = null;
1006
- }
1221
+ if (key.startsWith("input-component")) {
1222
+ self.$refs[key].initialize()
1007
1223
  }
1008
- if (key.startsWith("select.")) {
1009
- if (key.startsWith("select.multiple.")) {
1010
- if (initValue) {
1011
- data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1012
- } else {
1013
- data[key.replace("select.multiple.", "")] = [];
1014
- }
1015
- } else {
1016
- if (initValue) {
1017
- if (valueType && valueType["value"] == "Integer") data[key.replace("select.", "")] = parseInt(initValue["value"]);
1018
- else {
1019
- data[key.replace("select.", "")] = initValue["value"];
1020
- }
1021
- } else {
1022
- data[key.replace("select.", "")] = null;
1023
- }
1024
- }
1224
+ if (key.startsWith("textarea-component")) {
1225
+ self.$refs[key].initialize()
1226
+ }
1227
+ if (key.startsWith("select-component")) {
1228
+ self.$refs[key].initialize()
1229
+ }
1230
+ if (key.startsWith("radio-component")) {
1231
+ self.$refs[key].initialize()
1232
+ }
1233
+ if (key.startsWith("checkbox-component")) {
1234
+ self.$refs[key].initialize()
1025
1235
  }
1026
1236
  }
1027
- self.data = data;
1028
1237
  },
1029
1238
  shouldResetFormOnSuccessfulSubmit() {
1030
1239
  const self = this;
@@ -1226,6 +1435,432 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
1226
1435
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1227
1436
 
1228
1437
 
1438
+ /***/ }),
1439
+
1440
+ /***/ "../app/concepts/matestack/ui/core/form/input/input.js":
1441
+ /*!*************************************************************!*\
1442
+ !*** ../app/concepts/matestack/ui/core/form/input/input.js ***!
1443
+ \*************************************************************/
1444
+ /*! exports provided: default */
1445
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1446
+
1447
+ "use strict";
1448
+ __webpack_require__.r(__webpack_exports__);
1449
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1450
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/input/mixin.js");
1451
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+ const componentDef = {
1458
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1459
+ data() {
1460
+ return {};
1461
+ }
1462
+ }
1463
+
1464
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-input", componentDef);
1465
+
1466
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1467
+
1468
+
1469
+ /***/ }),
1470
+
1471
+ /***/ "../app/concepts/matestack/ui/core/form/input/mixin.js":
1472
+ /*!*************************************************************!*\
1473
+ !*** ../app/concepts/matestack/ui/core/form/input/mixin.js ***!
1474
+ \*************************************************************/
1475
+ /*! exports provided: default */
1476
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1477
+
1478
+ "use strict";
1479
+ __webpack_require__.r(__webpack_exports__);
1480
+ const formInputMixin = {
1481
+ methods: {
1482
+ initialize: function(){
1483
+ const self = this
1484
+ let data = {};
1485
+
1486
+ for (let key in this.$refs) {
1487
+ let initValue = this.$refs[key]["attributes"]["init-value"];
1488
+
1489
+ if (initValue) {
1490
+ data[key.replace("input.", "")] = initValue["value"];
1491
+ Object.assign(self.$parent.data, data);
1492
+ self.afterInitialize(initValue["value"])
1493
+ } else {
1494
+ data[key.replace("input.", "")] = null;
1495
+ Object.assign(self.$parent.data, data);
1496
+ self.afterInitialize(null)
1497
+ }
1498
+ }
1499
+
1500
+ //without the timeout it's somehow not working
1501
+ setTimeout(function () {
1502
+ self.$forceUpdate()
1503
+ }, 1);
1504
+ },
1505
+ filesAdded: function (key) {
1506
+ const dataTransfer = event.dataTransfer || event.target;
1507
+ const files = dataTransfer.files;
1508
+ if (event.target.attributes.multiple) {
1509
+ this.$parent.data[key] = [];
1510
+ for (let index in files) {
1511
+ if (files[index] instanceof File) {
1512
+ this.$parent.data[key].push(files[index]);
1513
+ }
1514
+ }
1515
+ } else {
1516
+ this.$parent.data[key] = files[0];
1517
+ }
1518
+ },
1519
+ inputChanged: function (key) {
1520
+ this.$parent.resetErrors(key);
1521
+ this.$forceUpdate();
1522
+ },
1523
+ afterInitialize: function(value){
1524
+ // can be used in the main component for further initialization steps
1525
+ },
1526
+ setValue: function (value){
1527
+ this.$parent.data[this.componentConfig["key"]] = value
1528
+ this.$forceUpdate();
1529
+ }
1530
+ }
1531
+
1532
+ }
1533
+
1534
+ /* harmony default export */ __webpack_exports__["default"] = (formInputMixin);
1535
+
1536
+
1537
+ /***/ }),
1538
+
1539
+ /***/ "../app/concepts/matestack/ui/core/form/radio/mixin.js":
1540
+ /*!*************************************************************!*\
1541
+ !*** ../app/concepts/matestack/ui/core/form/radio/mixin.js ***!
1542
+ \*************************************************************/
1543
+ /*! exports provided: default */
1544
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1545
+
1546
+ "use strict";
1547
+ __webpack_require__.r(__webpack_exports__);
1548
+ const formRadioMixin = {
1549
+ methods: {
1550
+ initialize: function(){
1551
+ const self = this
1552
+ let data = {};
1553
+
1554
+ for (let key in self.$refs) {
1555
+ let initValue = self.$refs[key]["attributes"]["init-value"];
1556
+ let valueType = self.$refs[key]["attributes"]["value-type"];
1557
+
1558
+ if (key.startsWith("select.")) {
1559
+ if (key.startsWith("select.multiple.")) {
1560
+ if (initValue) {
1561
+ data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1562
+ Object.assign(self.$parent.data, data);
1563
+ self.afterInitialize(JSON.parse(initValue["value"]))
1564
+ } else {
1565
+ data[key.replace("select.multiple.", "")] = [];
1566
+ Object.assign(self.$parent.data, data);
1567
+ self.afterInitialize([])
1568
+ }
1569
+ } else {
1570
+ if (initValue) {
1571
+ if (valueType && valueType["value"] == "Integer") {
1572
+ data[key.replace("select.", "")] = parseInt(initValue["value"]);
1573
+ Object.assign(self.$parent.data, data);
1574
+ self.afterInitialize(parseInt(initValue["value"]))
1575
+ } else {
1576
+ data[key.replace("select.", "")] = initValue["value"];
1577
+ Object.assign(self.$parent.data, data);
1578
+ self.afterInitialize(initValue["value"])
1579
+ }
1580
+ } else {
1581
+ data[key.replace("select.", "")] = null;
1582
+ Object.assign(self.$parent.data, data);
1583
+ self.afterInitialize(null)
1584
+ }
1585
+ }
1586
+ }
1587
+ }
1588
+
1589
+ //without the timeout it's somehow not working
1590
+ setTimeout(function () {
1591
+ self.$forceUpdate();
1592
+ }, 1);
1593
+ },
1594
+ inputChanged: function (key) {
1595
+ this.$parent.resetErrors(key);
1596
+ this.$forceUpdate();
1597
+ },
1598
+ afterInitialize: function(value){
1599
+ // can be used in the main component for further initialization steps
1600
+ },
1601
+ setValue: function (value){
1602
+ this.$parent.data[this.componentConfig["key"]] = value
1603
+ this.$forceUpdate();
1604
+ }
1605
+ }
1606
+
1607
+ }
1608
+
1609
+ /* harmony default export */ __webpack_exports__["default"] = (formRadioMixin);
1610
+
1611
+
1612
+ /***/ }),
1613
+
1614
+ /***/ "../app/concepts/matestack/ui/core/form/radio/radio.js":
1615
+ /*!*************************************************************!*\
1616
+ !*** ../app/concepts/matestack/ui/core/form/radio/radio.js ***!
1617
+ \*************************************************************/
1618
+ /*! exports provided: default */
1619
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1620
+
1621
+ "use strict";
1622
+ __webpack_require__.r(__webpack_exports__);
1623
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1624
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/radio/mixin.js");
1625
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+ const componentDef = {
1632
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1633
+ data() {
1634
+ return {};
1635
+ }
1636
+ }
1637
+
1638
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-radio", componentDef);
1639
+
1640
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1641
+
1642
+
1643
+ /***/ }),
1644
+
1645
+ /***/ "../app/concepts/matestack/ui/core/form/select/mixin.js":
1646
+ /*!**************************************************************!*\
1647
+ !*** ../app/concepts/matestack/ui/core/form/select/mixin.js ***!
1648
+ \**************************************************************/
1649
+ /*! exports provided: default */
1650
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1651
+
1652
+ "use strict";
1653
+ __webpack_require__.r(__webpack_exports__);
1654
+ const formSelectMixin = {
1655
+ methods: {
1656
+ initialize: function(){
1657
+ const self = this
1658
+ let data = {};
1659
+
1660
+ for (let key in self.$refs) {
1661
+ let initValue = self.$refs[key]["attributes"]["init-value"];
1662
+ let valueType = self.$refs[key]["attributes"]["value-type"];
1663
+
1664
+ if (key.startsWith("select.")) {
1665
+ if (key.startsWith("select.multiple.")) {
1666
+ if (initValue) {
1667
+ data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1668
+ self.afterInitialize(JSON.parse(initValue["value"]))
1669
+ } else {
1670
+ data[key.replace("select.multiple.", "")] = [];
1671
+ self.afterInitialize([])
1672
+ }
1673
+ } else {
1674
+ if (initValue) {
1675
+ if (valueType && valueType["value"] == "Integer") {
1676
+ data[key.replace("select.", "")] = parseInt(initValue["value"]);
1677
+ self.afterInitialize(parseInt(initValue["value"]))
1678
+ } else {
1679
+ data[key.replace("select.", "")] = initValue["value"];
1680
+ self.afterInitialize(initValue["value"])
1681
+ }
1682
+ } else {
1683
+ data[key.replace("select.", "")] = null;
1684
+ self.afterInitialize(null)
1685
+ }
1686
+ }
1687
+ }
1688
+ }
1689
+
1690
+ //without the timeout it's somehow not working
1691
+ setTimeout(function () {
1692
+ Object.assign(self.$parent.data, data);
1693
+ self.$forceUpdate()
1694
+ }, 1);
1695
+ },
1696
+ inputChanged: function (key) {
1697
+ this.$parent.resetErrors(key);
1698
+ this.$forceUpdate();
1699
+ },
1700
+ afterInitialize: function(value){
1701
+ // can be used in the main component for further initialization steps
1702
+ },
1703
+ setValue: function (value){
1704
+ this.$parent.data[this.componentConfig["key"]] = value
1705
+ this.$forceUpdate();
1706
+ }
1707
+ }
1708
+
1709
+ }
1710
+
1711
+ /* harmony default export */ __webpack_exports__["default"] = (formSelectMixin);
1712
+
1713
+
1714
+ /***/ }),
1715
+
1716
+ /***/ "../app/concepts/matestack/ui/core/form/select/select.js":
1717
+ /*!***************************************************************!*\
1718
+ !*** ../app/concepts/matestack/ui/core/form/select/select.js ***!
1719
+ \***************************************************************/
1720
+ /*! exports provided: default */
1721
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1722
+
1723
+ "use strict";
1724
+ __webpack_require__.r(__webpack_exports__);
1725
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1726
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/select/mixin.js");
1727
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+ const componentDef = {
1734
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1735
+ data() {
1736
+ return {};
1737
+ }
1738
+ }
1739
+
1740
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-select", componentDef);
1741
+
1742
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1743
+
1744
+
1745
+ /***/ }),
1746
+
1747
+ /***/ "../app/concepts/matestack/ui/core/form/submit/submit.js":
1748
+ /*!***************************************************************!*\
1749
+ !*** ../app/concepts/matestack/ui/core/form/submit/submit.js ***!
1750
+ \***************************************************************/
1751
+ /*! exports provided: default */
1752
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1753
+
1754
+ "use strict";
1755
+ __webpack_require__.r(__webpack_exports__);
1756
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1757
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1758
+
1759
+
1760
+
1761
+
1762
+ const componentDef = {
1763
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_1__["default"]],
1764
+ data() {
1765
+ return {};
1766
+ },
1767
+ methods: {
1768
+ loading: function(){
1769
+ return this.$parent.loading;
1770
+ }
1771
+ }
1772
+ }
1773
+
1774
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-submit", componentDef);
1775
+
1776
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1777
+
1778
+
1779
+ /***/ }),
1780
+
1781
+ /***/ "../app/concepts/matestack/ui/core/form/textarea/mixin.js":
1782
+ /*!****************************************************************!*\
1783
+ !*** ../app/concepts/matestack/ui/core/form/textarea/mixin.js ***!
1784
+ \****************************************************************/
1785
+ /*! exports provided: default */
1786
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1787
+
1788
+ "use strict";
1789
+ __webpack_require__.r(__webpack_exports__);
1790
+ const formTextareaMixin = {
1791
+ methods: {
1792
+ initialize: function(){
1793
+ const self = this
1794
+ let data = {};
1795
+
1796
+ for (let key in this.$refs) {
1797
+ let initValue = this.$refs[key]["attributes"]["init-value"];
1798
+
1799
+ if (initValue) {
1800
+ data[key.replace("input.", "")] = initValue["value"];
1801
+ Object.assign(self.$parent.data, data);
1802
+ self.afterInitialize(initValue["value"])
1803
+ } else {
1804
+ data[key.replace("input.", "")] = null;
1805
+ Object.assign(self.$parent.data, data);
1806
+ self.afterInitialize(null)
1807
+ }
1808
+ }
1809
+
1810
+ //without the timeout it's somehow not working
1811
+ setTimeout(function () {
1812
+ self.$forceUpdate()
1813
+ }, 1);
1814
+ },
1815
+ inputChanged: function (key) {
1816
+ this.$parent.resetErrors(key);
1817
+ this.$forceUpdate();
1818
+ },
1819
+ afterInitialize: function(value){
1820
+ // can be used in the main component for further initialization steps
1821
+ },
1822
+ setValue: function (value){
1823
+ this.$parent.data[this.componentConfig["key"]] = value
1824
+ this.$forceUpdate();
1825
+ }
1826
+ }
1827
+
1828
+ }
1829
+
1830
+ /* harmony default export */ __webpack_exports__["default"] = (formTextareaMixin);
1831
+
1832
+
1833
+ /***/ }),
1834
+
1835
+ /***/ "../app/concepts/matestack/ui/core/form/textarea/textarea.js":
1836
+ /*!*******************************************************************!*\
1837
+ !*** ../app/concepts/matestack/ui/core/form/textarea/textarea.js ***!
1838
+ \*******************************************************************/
1839
+ /*! exports provided: default */
1840
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1841
+
1842
+ "use strict";
1843
+ __webpack_require__.r(__webpack_exports__);
1844
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1845
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/textarea/mixin.js");
1846
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+ const componentDef = {
1853
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1854
+ data() {
1855
+ return {};
1856
+ }
1857
+ }
1858
+
1859
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-textarea", componentDef);
1860
+
1861
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1862
+
1863
+
1229
1864
  /***/ }),
1230
1865
 
1231
1866
  /***/ "../app/concepts/matestack/ui/core/isolated/isolated.js":
@@ -1367,19 +2002,31 @@ __webpack_require__.r(__webpack_exports__);
1367
2002
  /* harmony import */ var vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-turbolinks */ "../node_modules/vue-turbolinks/index.js");
1368
2003
  /* harmony import */ var _app_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../app/app */ "../app/concepts/matestack/ui/core/app/app.js");
1369
2004
  /* harmony import */ var _async_async__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../async/async */ "../app/concepts/matestack/ui/core/async/async.js");
1370
- /* harmony import */ var _page_content_content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../page/content/content */ "../app/concepts/matestack/ui/core/page/content/content.js");
1371
- /* harmony import */ var _toggle_toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../toggle/toggle */ "../app/concepts/matestack/ui/core/toggle/toggle.js");
1372
- /* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../app/store */ "../app/concepts/matestack/ui/core/app/store.js");
1373
- /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1374
- /* harmony import */ var _component_anonym_dynamic_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../component/anonym-dynamic-component */ "../app/concepts/matestack/ui/core/component/anonym-dynamic-component.js");
1375
- /* harmony import */ var _transition_transition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../transition/transition */ "../app/concepts/matestack/ui/core/transition/transition.js");
1376
- /* harmony import */ var _action_action__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../action/action */ "../app/concepts/matestack/ui/core/action/action.js");
1377
- /* harmony import */ var _form_form__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../form/form */ "../app/concepts/matestack/ui/core/form/form.js");
1378
- /* harmony import */ var _onclick_onclick__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../onclick/onclick */ "../app/concepts/matestack/ui/core/onclick/onclick.js");
1379
- /* harmony import */ var _collection_content_content__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../collection/content/content */ "../app/concepts/matestack/ui/core/collection/content/content.js");
1380
- /* harmony import */ var _collection_filter_filter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../collection/filter/filter */ "../app/concepts/matestack/ui/core/collection/filter/filter.js");
1381
- /* harmony import */ var _collection_order_order__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../collection/order/order */ "../app/concepts/matestack/ui/core/collection/order/order.js");
1382
- /* harmony import */ var _isolated_isolated__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../isolated/isolated */ "../app/concepts/matestack/ui/core/isolated/isolated.js");
2005
+ /* harmony import */ var _cable_cable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../cable/cable */ "../app/concepts/matestack/ui/core/cable/cable.js");
2006
+ /* harmony import */ var _page_content_content__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../page/content/content */ "../app/concepts/matestack/ui/core/page/content/content.js");
2007
+ /* harmony import */ var _toggle_toggle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../toggle/toggle */ "../app/concepts/matestack/ui/core/toggle/toggle.js");
2008
+ /* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../app/store */ "../app/concepts/matestack/ui/core/app/store.js");
2009
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
2010
+ /* harmony import */ var _component_anonym_dynamic_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../component/anonym-dynamic-component */ "../app/concepts/matestack/ui/core/component/anonym-dynamic-component.js");
2011
+ /* harmony import */ var _transition_transition__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../transition/transition */ "../app/concepts/matestack/ui/core/transition/transition.js");
2012
+ /* harmony import */ var _action_action__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../action/action */ "../app/concepts/matestack/ui/core/action/action.js");
2013
+ /* harmony import */ var _form_form__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../form/form */ "../app/concepts/matestack/ui/core/form/form.js");
2014
+ /* harmony import */ var _form_input_input__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../form/input/input */ "../app/concepts/matestack/ui/core/form/input/input.js");
2015
+ /* harmony import */ var _form_input_mixin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../form/input/mixin */ "../app/concepts/matestack/ui/core/form/input/mixin.js");
2016
+ /* harmony import */ var _form_select_select__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../form/select/select */ "../app/concepts/matestack/ui/core/form/select/select.js");
2017
+ /* harmony import */ var _form_select_mixin__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../form/select/mixin */ "../app/concepts/matestack/ui/core/form/select/mixin.js");
2018
+ /* harmony import */ var _form_radio_radio__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../form/radio/radio */ "../app/concepts/matestack/ui/core/form/radio/radio.js");
2019
+ /* harmony import */ var _form_radio_mixin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../form/radio/mixin */ "../app/concepts/matestack/ui/core/form/radio/mixin.js");
2020
+ /* harmony import */ var _form_checkbox_checkbox__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../form/checkbox/checkbox */ "../app/concepts/matestack/ui/core/form/checkbox/checkbox.js");
2021
+ /* harmony import */ var _form_checkbox_mixin__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../form/checkbox/mixin */ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js");
2022
+ /* harmony import */ var _form_textarea_textarea__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../form/textarea/textarea */ "../app/concepts/matestack/ui/core/form/textarea/textarea.js");
2023
+ /* harmony import */ var _form_textarea_mixin__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../form/textarea/mixin */ "../app/concepts/matestack/ui/core/form/textarea/mixin.js");
2024
+ /* harmony import */ var _form_submit_submit__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../form/submit/submit */ "../app/concepts/matestack/ui/core/form/submit/submit.js");
2025
+ /* harmony import */ var _onclick_onclick__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../onclick/onclick */ "../app/concepts/matestack/ui/core/onclick/onclick.js");
2026
+ /* harmony import */ var _collection_content_content__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../collection/content/content */ "../app/concepts/matestack/ui/core/collection/content/content.js");
2027
+ /* harmony import */ var _collection_filter_filter__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../collection/filter/filter */ "../app/concepts/matestack/ui/core/collection/filter/filter.js");
2028
+ /* harmony import */ var _collection_order_order__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../collection/order/order */ "../app/concepts/matestack/ui/core/collection/order/order.js");
2029
+ /* harmony import */ var _isolated_isolated__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../isolated/isolated */ "../app/concepts/matestack/ui/core/isolated/isolated.js");
1383
2030
 
1384
2031
 
1385
2032
 
@@ -1392,6 +2039,18 @@ __webpack_require__.r(__webpack_exports__);
1392
2039
 
1393
2040
 
1394
2041
 
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
1395
2054
 
1396
2055
 
1397
2056
 
@@ -1412,7 +2071,7 @@ document.addEventListener('DOMContentLoaded', () => {
1412
2071
  matestackUiApp = new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"]({
1413
2072
  el: "#matestack-ui",
1414
2073
  mixins: [vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__["turbolinksAdapterMixin"]],
1415
- store: _app_store__WEBPACK_IMPORTED_MODULE_6__["default"]
2074
+ store: _app_store__WEBPACK_IMPORTED_MODULE_7__["default"]
1416
2075
  })
1417
2076
  })
1418
2077
 
@@ -1422,14 +2081,14 @@ document.addEventListener('turbolinks:load', () => {
1422
2081
  // otherwise the matestack page will jump back to the latest pageTemplate
1423
2082
  // fetched during the last matestack transition as the turbolinks powered
1424
2083
  // page transition does not write the matestack store pageTemplate state variable
1425
- _app_store__WEBPACK_IMPORTED_MODULE_6__["default"].commit('resetPageTemplate')
2084
+ _app_store__WEBPACK_IMPORTED_MODULE_7__["default"].commit('resetPageTemplate')
1426
2085
  // we need to destroy the vue app instance
1427
2086
  matestackUiApp.$destroy();
1428
2087
  // and recreate it right afterwards in order to work when used with turbolinks
1429
2088
  matestackUiApp = new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"]({
1430
2089
  el: "#matestack-ui",
1431
2090
  mixins: [vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__["turbolinksAdapterMixin"]],
1432
- store: _app_store__WEBPACK_IMPORTED_MODULE_6__["default"]
2091
+ store: _app_store__WEBPACK_IMPORTED_MODULE_7__["default"]
1433
2092
  })
1434
2093
  })
1435
2094
 
@@ -1763,9 +2422,14 @@ __webpack_require__.r(__webpack_exports__);
1763
2422
  /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_2__);
1764
2423
  /* harmony import */ var _app_concepts_matestack_ui_core_js_event_hub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
1765
2424
  /* harmony import */ var _app_concepts_matestack_ui_core_component_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1766
- /* harmony import */ var _app_concepts_matestack_ui_core_js_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/js/core */ "../app/concepts/matestack/ui/core/js/core.js");
1767
- /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles/index.scss */ "../app/javascript/matestack-ui-core/styles/index.scss");
1768
- /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_styles_index_scss__WEBPACK_IMPORTED_MODULE_6__);
2425
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_input_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/input/mixin */ "../app/concepts/matestack/ui/core/form/input/mixin.js");
2426
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_select_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/select/mixin */ "../app/concepts/matestack/ui/core/form/select/mixin.js");
2427
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_radio_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/radio/mixin */ "../app/concepts/matestack/ui/core/form/radio/mixin.js");
2428
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_checkbox_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/checkbox/mixin */ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js");
2429
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_textarea_mixin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/textarea/mixin */ "../app/concepts/matestack/ui/core/form/textarea/mixin.js");
2430
+ /* harmony import */ var _app_concepts_matestack_ui_core_js_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/js/core */ "../app/concepts/matestack/ui/core/js/core.js");
2431
+ /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles/index.scss */ "../app/javascript/matestack-ui-core/styles/index.scss");
2432
+ /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_styles_index_scss__WEBPACK_IMPORTED_MODULE_11__);
1769
2433
 
1770
2434
 
1771
2435
  // Import from app/concepts/matestack/ui/core:
@@ -1774,12 +2438,22 @@ __webpack_require__.r(__webpack_exports__);
1774
2438
 
1775
2439
 
1776
2440
 
2441
+
2442
+
2443
+
2444
+
2445
+
1777
2446
  var MatestackUiCore = {
1778
2447
  Vue: vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"],
1779
2448
  Vuex: vuex__WEBPACK_IMPORTED_MODULE_1__["default"],
1780
2449
  axios: axios__WEBPACK_IMPORTED_MODULE_2___default.a,
1781
2450
  matestackEventHub: _app_concepts_matestack_ui_core_js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"],
1782
- componentMixin: _app_concepts_matestack_ui_core_component_component__WEBPACK_IMPORTED_MODULE_4__["default"]
2451
+ componentMixin: _app_concepts_matestack_ui_core_component_component__WEBPACK_IMPORTED_MODULE_4__["default"],
2452
+ formInputMixin: _app_concepts_matestack_ui_core_form_input_mixin__WEBPACK_IMPORTED_MODULE_5__["default"],
2453
+ formSelectMixin: _app_concepts_matestack_ui_core_form_select_mixin__WEBPACK_IMPORTED_MODULE_6__["default"],
2454
+ formCheckboxMixin: _app_concepts_matestack_ui_core_form_checkbox_mixin__WEBPACK_IMPORTED_MODULE_8__["default"],
2455
+ formTextareaMixin: _app_concepts_matestack_ui_core_form_textarea_mixin__WEBPACK_IMPORTED_MODULE_9__["default"],
2456
+ formRadioMixin: _app_concepts_matestack_ui_core_form_radio_mixin__WEBPACK_IMPORTED_MODULE_7__["default"]
1783
2457
  };
1784
2458
  window.MatestackUiCore = MatestackUiCore;
1785
2459
  /* harmony default export */ __webpack_exports__["default"] = (MatestackUiCore);