matestack-ui-core 1.0.1 → 1.3.2

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +782 -16
  3. data/app/concepts/matestack/ui/core/async/async.js +6 -28
  4. data/app/concepts/matestack/ui/core/async/async.rb +7 -10
  5. data/app/concepts/matestack/ui/core/cable/cable.haml +4 -0
  6. data/app/concepts/matestack/ui/core/cable/cable.js +100 -0
  7. data/app/concepts/matestack/ui/core/cable/cable.rb +28 -0
  8. data/app/concepts/matestack/ui/core/cable/children_wrapper.haml +2 -0
  9. data/app/concepts/matestack/ui/core/collection/content/content.js +2 -2
  10. data/app/concepts/matestack/ui/core/collection/content/content.rb +1 -1
  11. data/app/concepts/matestack/ui/core/component/base.rb +10 -4
  12. data/app/concepts/matestack/ui/core/component/component.js +18 -1
  13. data/app/concepts/matestack/ui/core/component/dynamic.rb +1 -1
  14. data/app/concepts/matestack/ui/core/form/checkbox/base.rb +120 -0
  15. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.js +15 -0
  16. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +7 -70
  17. data/app/concepts/matestack/ui/core/form/checkbox/mixin.js +80 -0
  18. data/app/concepts/matestack/ui/core/form/form.js +15 -46
  19. data/app/concepts/matestack/ui/core/form/input/base.rb +75 -0
  20. data/app/concepts/matestack/ui/core/form/input/input.js +15 -0
  21. data/app/concepts/matestack/ui/core/form/input/input.rb +8 -52
  22. data/app/concepts/matestack/ui/core/form/input/mixin.js +55 -0
  23. data/app/concepts/matestack/ui/core/form/radio/base.rb +90 -0
  24. data/app/concepts/matestack/ui/core/form/radio/mixin.js +62 -0
  25. data/app/concepts/matestack/ui/core/form/radio/radio.js +15 -0
  26. data/app/concepts/matestack/ui/core/form/radio/radio.rb +7 -62
  27. data/app/concepts/matestack/ui/core/form/select/base.rb +98 -0
  28. data/app/concepts/matestack/ui/core/form/select/mixin.js +58 -0
  29. data/app/concepts/matestack/ui/core/form/select/select.js +15 -0
  30. data/app/concepts/matestack/ui/core/form/select/select.rb +11 -60
  31. data/app/concepts/matestack/ui/core/form/submit/base.rb +12 -0
  32. data/app/concepts/matestack/ui/core/form/submit/submit.js +19 -0
  33. data/app/concepts/matestack/ui/core/form/submit/submit.rb +9 -6
  34. data/app/concepts/matestack/ui/core/form/textarea/base.rb +49 -0
  35. data/app/concepts/matestack/ui/core/form/textarea/mixin.js +41 -0
  36. data/app/concepts/matestack/ui/core/form/textarea/textarea.js +15 -0
  37. data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +10 -21
  38. data/app/concepts/matestack/ui/core/js/core.js +12 -0
  39. data/app/concepts/matestack/ui/core/{form/submit/submit.haml → select/select.haml} +1 -1
  40. data/app/concepts/matestack/ui/core/select/select.rb +7 -0
  41. data/app/helpers/matestack/ui/core/application_helper.rb +6 -3
  42. data/app/javascript/matestack-ui-core/index.js +12 -2
  43. data/app/lib/matestack/ui/core/has_view_context.rb +4 -2
  44. data/app/lib/matestack/ui/core/rendering/main_renderer.rb +4 -1
  45. data/lib/matestack/ui/core/components.rb +4 -1
  46. data/lib/matestack/ui/core/version.rb +1 -1
  47. data/vendor/assets/javascripts/dist/matestack-ui-core.js +768 -98
  48. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -1
  49. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +1 -1
  50. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
  51. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  52. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -1
  53. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
  54. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  55. metadata +25 -7
  56. data/app/concepts/matestack/ui/core/component/rerender.rb +0 -8
  57. 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
@@ -61,11 +61,14 @@ module Matestack::Ui::Core::Rendering::MainRenderer
61
61
  end
62
62
  end
63
63
 
64
+ # needs refactoring!
65
+ # we shouldn't pass in the parts of the controller_instance and the instance itself
64
66
  def create_context_hash(controller_instance)
65
67
  {
66
68
  view_context: controller_instance.view_context,
67
69
  params: controller_instance.params,
68
- 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
69
72
  }
70
73
  end
71
74
 
@@ -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.1'
4
+ VERSION = '1.3.2'
5
5
  end
6
6
  end
7
7
  end
@@ -552,19 +552,9 @@ const componentDef = {
552
552
  },
553
553
  created: function () {
554
554
  const self = this
555
- if(this.componentConfig["show_on"] != undefined){
556
- this.showing = false
557
- var show_events = this.componentConfig["show_on"].split(",")
558
- show_events.forEach(show_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(show_event.trim(), self.show));
559
- }
560
- if(this.componentConfig["hide_on"] != undefined){
561
- var hide_events = this.componentConfig["hide_on"].split(",")
562
- hide_events.forEach(hide_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(hide_event.trim(), self.hide));
563
- }
564
- if(this.componentConfig["rerender_on"] != undefined){
565
- var rerender_events = this.componentConfig["rerender_on"].split(",")
566
- rerender_events.forEach(rerender_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(rerender_event.trim(), self.rerender));
567
- }
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)
568
558
  if(this.componentConfig["show_on"] != undefined){
569
559
  this.showing = false
570
560
  }
@@ -582,21 +572,9 @@ const componentDef = {
582
572
  beforeDestroy: function() {
583
573
  const self = this
584
574
  clearTimeout(self.hideAfterTimeout)
585
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["rerender_on"], self.rerender);
586
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["show_on"], self.show);
587
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["hide_on"], self.hide);
588
- if(this.componentConfig["show_on"] != undefined){
589
- var shown_events = this.componentConfig["show_on"].split(",")
590
- shown_events.forEach(show_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(show_event.trim(), self.show));
591
- }
592
- if(this.componentConfig["hide_on"] != undefined){
593
- var hiden_events = this.componentConfig["hide_on"].split(",")
594
- hiden_events.forEach(hide_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(hide_event.trim(), self.hide));
595
- }
596
- if(this.componentConfig["rerender_on"] != undefined){
597
- var rerender_events = this.componentConfig["rerender_on"].split(",")
598
- rerender_events.forEach(rerender_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(rerender_event.trim(), self.rerender));
599
- }
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)
600
578
  },
601
579
  components: {
602
580
  VRuntimeTemplate: v_runtime_template__WEBPACK_IMPORTED_MODULE_2__["default"]
@@ -608,6 +586,123 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
608
586
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
609
587
 
610
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
+
611
706
  /***/ }),
612
707
 
613
708
  /***/ "../app/concepts/matestack/ui/core/collection/content/content.js":
@@ -623,15 +718,14 @@ __webpack_require__.r(__webpack_exports__);
623
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");
624
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");
625
720
  /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
626
- /* harmony import */ var _async_async__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../async/async */ "../app/concepts/matestack/ui/core/async/async.js");
627
-
628
721
 
629
722
 
630
723
 
631
724
 
725
+ // import asyncMixin from '../../async/async'
632
726
 
633
727
  const componentDef = {
634
- mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"], _async_async__WEBPACK_IMPORTED_MODULE_4__["default"]],
728
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"]],
635
729
  data: function(){
636
730
  return {
637
731
  currentLimit: null,
@@ -898,13 +992,155 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
898
992
 
899
993
  "use strict";
900
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
+
901
998
  const componentMixin = {
902
- 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
+
903
1015
  }
904
1016
 
905
1017
  /* harmony default export */ __webpack_exports__["default"] = (componentMixin);
906
1018
 
907
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
+
908
1144
  /***/ }),
909
1145
 
910
1146
  /***/ "../app/concepts/matestack/ui/core/form/form.js":
@@ -942,9 +1178,6 @@ const componentDef = {
942
1178
  initDataKey: function (key, initValue) {
943
1179
  this.data[key] = initValue;
944
1180
  },
945
- inputChanged: function (key) {
946
- this.resetErrors(key);
947
- },
948
1181
  updateFormValue: function (key, value) {
949
1182
  this.data[key] = value;
950
1183
  },
@@ -968,11 +1201,11 @@ const componentDef = {
968
1201
  flat[i] = newVal;
969
1202
  } else if (flat[i] instanceof File){
970
1203
  flat[i] = newVal;
971
- this.$refs["input."+i].value = newVal
1204
+ this.$refs["input-component-for-"+i].value = newVal
972
1205
  } else if (flat[i] instanceof Array) {
973
1206
  if(flat[i][0] instanceof File){
974
1207
  flat[i] = newVal
975
- this.$refs["input."+i].value = newVal
1208
+ this.$refs["input-component-for-"+i].value = newVal
976
1209
  }
977
1210
  } else if (typeof flat[i] === "object" && !(flat[i] instanceof Array)) {
978
1211
  setProps(flat[i], newVal);
@@ -981,54 +1214,26 @@ const componentDef = {
981
1214
  }
982
1215
  }
983
1216
  },
984
- filesAdded: function (key) {
985
- const dataTransfer = event.dataTransfer || event.target;
986
- const files = dataTransfer.files;
987
- if (event.target.attributes.multiple) {
988
- this.data[key] = [];
989
- for (let index in files) {
990
- if (files[index] instanceof File) {
991
- this.data[key].push(files[index]);
992
- }
993
- }
994
- } else {
995
- this.data[key] = files[0];
996
- }
997
- },
998
1217
  initValues: function () {
999
1218
  let self = this;
1000
1219
  let data = {};
1001
1220
  for (let key in self.$refs) {
1002
- let initValue = self.$refs[key]["attributes"]["init-value"];
1003
- let valueType = self.$refs[key]["attributes"]["value-type"];
1004
-
1005
- if (key.startsWith("input.")) {
1006
- if (initValue) {
1007
- data[key.replace("input.", "")] = initValue["value"];
1008
- } else {
1009
- data[key.replace("input.", "")] = null;
1010
- }
1221
+ if (key.startsWith("input-component")) {
1222
+ self.$refs[key].initialize()
1011
1223
  }
1012
- if (key.startsWith("select.")) {
1013
- if (key.startsWith("select.multiple.")) {
1014
- if (initValue) {
1015
- data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1016
- } else {
1017
- data[key.replace("select.multiple.", "")] = [];
1018
- }
1019
- } else {
1020
- if (initValue) {
1021
- if (valueType && valueType["value"] == "Integer") data[key.replace("select.", "")] = parseInt(initValue["value"]);
1022
- else {
1023
- data[key.replace("select.", "")] = initValue["value"];
1024
- }
1025
- } else {
1026
- data[key.replace("select.", "")] = null;
1027
- }
1028
- }
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()
1029
1235
  }
1030
1236
  }
1031
- self.data = data;
1032
1237
  },
1033
1238
  shouldResetFormOnSuccessfulSubmit() {
1034
1239
  const self = this;
@@ -1230,6 +1435,432 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
1230
1435
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1231
1436
 
1232
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
+
1233
1864
  /***/ }),
1234
1865
 
1235
1866
  /***/ "../app/concepts/matestack/ui/core/isolated/isolated.js":
@@ -1371,19 +2002,31 @@ __webpack_require__.r(__webpack_exports__);
1371
2002
  /* harmony import */ var vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-turbolinks */ "../node_modules/vue-turbolinks/index.js");
1372
2003
  /* harmony import */ var _app_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../app/app */ "../app/concepts/matestack/ui/core/app/app.js");
1373
2004
  /* harmony import */ var _async_async__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../async/async */ "../app/concepts/matestack/ui/core/async/async.js");
1374
- /* harmony import */ var _page_content_content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../page/content/content */ "../app/concepts/matestack/ui/core/page/content/content.js");
1375
- /* harmony import */ var _toggle_toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../toggle/toggle */ "../app/concepts/matestack/ui/core/toggle/toggle.js");
1376
- /* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../app/store */ "../app/concepts/matestack/ui/core/app/store.js");
1377
- /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1378
- /* 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");
1379
- /* harmony import */ var _transition_transition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../transition/transition */ "../app/concepts/matestack/ui/core/transition/transition.js");
1380
- /* harmony import */ var _action_action__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../action/action */ "../app/concepts/matestack/ui/core/action/action.js");
1381
- /* harmony import */ var _form_form__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../form/form */ "../app/concepts/matestack/ui/core/form/form.js");
1382
- /* harmony import */ var _onclick_onclick__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../onclick/onclick */ "../app/concepts/matestack/ui/core/onclick/onclick.js");
1383
- /* harmony import */ var _collection_content_content__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../collection/content/content */ "../app/concepts/matestack/ui/core/collection/content/content.js");
1384
- /* harmony import */ var _collection_filter_filter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../collection/filter/filter */ "../app/concepts/matestack/ui/core/collection/filter/filter.js");
1385
- /* harmony import */ var _collection_order_order__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../collection/order/order */ "../app/concepts/matestack/ui/core/collection/order/order.js");
1386
- /* 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");
1387
2030
 
1388
2031
 
1389
2032
 
@@ -1396,6 +2039,18 @@ __webpack_require__.r(__webpack_exports__);
1396
2039
 
1397
2040
 
1398
2041
 
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
1399
2054
 
1400
2055
 
1401
2056
 
@@ -1416,7 +2071,7 @@ document.addEventListener('DOMContentLoaded', () => {
1416
2071
  matestackUiApp = new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"]({
1417
2072
  el: "#matestack-ui",
1418
2073
  mixins: [vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__["turbolinksAdapterMixin"]],
1419
- store: _app_store__WEBPACK_IMPORTED_MODULE_6__["default"]
2074
+ store: _app_store__WEBPACK_IMPORTED_MODULE_7__["default"]
1420
2075
  })
1421
2076
  })
1422
2077
 
@@ -1426,14 +2081,14 @@ document.addEventListener('turbolinks:load', () => {
1426
2081
  // otherwise the matestack page will jump back to the latest pageTemplate
1427
2082
  // fetched during the last matestack transition as the turbolinks powered
1428
2083
  // page transition does not write the matestack store pageTemplate state variable
1429
- _app_store__WEBPACK_IMPORTED_MODULE_6__["default"].commit('resetPageTemplate')
2084
+ _app_store__WEBPACK_IMPORTED_MODULE_7__["default"].commit('resetPageTemplate')
1430
2085
  // we need to destroy the vue app instance
1431
2086
  matestackUiApp.$destroy();
1432
2087
  // and recreate it right afterwards in order to work when used with turbolinks
1433
2088
  matestackUiApp = new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"]({
1434
2089
  el: "#matestack-ui",
1435
2090
  mixins: [vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__["turbolinksAdapterMixin"]],
1436
- store: _app_store__WEBPACK_IMPORTED_MODULE_6__["default"]
2091
+ store: _app_store__WEBPACK_IMPORTED_MODULE_7__["default"]
1437
2092
  })
1438
2093
  })
1439
2094
 
@@ -1767,9 +2422,14 @@ __webpack_require__.r(__webpack_exports__);
1767
2422
  /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_2__);
1768
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");
1769
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");
1770
- /* 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");
1771
- /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles/index.scss */ "../app/javascript/matestack-ui-core/styles/index.scss");
1772
- /* 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__);
1773
2433
 
1774
2434
 
1775
2435
  // Import from app/concepts/matestack/ui/core:
@@ -1778,12 +2438,22 @@ __webpack_require__.r(__webpack_exports__);
1778
2438
 
1779
2439
 
1780
2440
 
2441
+
2442
+
2443
+
2444
+
2445
+
1781
2446
  var MatestackUiCore = {
1782
2447
  Vue: vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"],
1783
2448
  Vuex: vuex__WEBPACK_IMPORTED_MODULE_1__["default"],
1784
2449
  axios: axios__WEBPACK_IMPORTED_MODULE_2___default.a,
1785
2450
  matestackEventHub: _app_concepts_matestack_ui_core_js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"],
1786
- 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"]
1787
2457
  };
1788
2458
  window.MatestackUiCore = MatestackUiCore;
1789
2459
  /* harmony default export */ __webpack_exports__["default"] = (MatestackUiCore);