matestack-ui-core 1.1.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +801 -13
  3. data/app/concepts/matestack/ui/core/cable/cable.haml +1 -1
  4. data/app/concepts/matestack/ui/core/collection/helper.rb +7 -1
  5. data/app/concepts/matestack/ui/core/component/base.rb +1 -1
  6. data/app/concepts/matestack/ui/core/form/checkbox/base.rb +120 -0
  7. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.js +15 -0
  8. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +7 -70
  9. data/app/concepts/matestack/ui/core/form/checkbox/mixin.js +80 -0
  10. data/app/concepts/matestack/ui/core/form/form.js +15 -46
  11. data/app/concepts/matestack/ui/core/form/input/base.rb +75 -0
  12. data/app/concepts/matestack/ui/core/form/input/input.js +15 -0
  13. data/app/concepts/matestack/ui/core/form/input/input.rb +8 -52
  14. data/app/concepts/matestack/ui/core/form/input/mixin.js +55 -0
  15. data/app/concepts/matestack/ui/core/form/radio/base.rb +90 -0
  16. data/app/concepts/matestack/ui/core/form/radio/mixin.js +62 -0
  17. data/app/concepts/matestack/ui/core/form/radio/radio.js +15 -0
  18. data/app/concepts/matestack/ui/core/form/radio/radio.rb +7 -62
  19. data/app/concepts/matestack/ui/core/form/select/base.rb +98 -0
  20. data/app/concepts/matestack/ui/core/form/select/mixin.js +58 -0
  21. data/app/concepts/matestack/ui/core/form/select/select.js +15 -0
  22. data/app/concepts/matestack/ui/core/form/select/select.rb +11 -60
  23. data/app/concepts/matestack/ui/core/form/submit/base.rb +12 -0
  24. data/app/concepts/matestack/ui/core/form/submit/submit.js +19 -0
  25. data/app/concepts/matestack/ui/core/form/submit/submit.rb +9 -6
  26. data/app/concepts/matestack/ui/core/form/textarea/base.rb +49 -0
  27. data/app/concepts/matestack/ui/core/form/textarea/mixin.js +41 -0
  28. data/app/concepts/matestack/ui/core/form/textarea/textarea.js +15 -0
  29. data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +10 -21
  30. data/app/concepts/matestack/ui/core/js/core.js +11 -0
  31. data/app/concepts/matestack/ui/core/{form/submit/submit.haml → select/select.haml} +1 -1
  32. data/app/concepts/matestack/ui/core/select/select.rb +7 -0
  33. data/app/concepts/matestack/ui/core/view/view.rb +2 -2
  34. data/app/helpers/matestack/ui/core/application_helper.rb +2 -2
  35. data/app/javascript/matestack-ui-core/index.js +12 -2
  36. data/app/lib/matestack/ui/core/has_view_context.rb +4 -2
  37. data/app/lib/matestack/ui/core/rendering/main_renderer.rb +4 -1
  38. data/lib/matestack/ui/core/components.rb +2 -0
  39. data/lib/matestack/ui/core/version.rb +1 -1
  40. data/vendor/assets/javascripts/dist/matestack-ui-core.js +611 -55
  41. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -1
  42. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +1 -1
  43. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.LICENSE.txt +5 -12
  44. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
  45. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  46. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -1
  47. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
  48. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  49. metadata +31 -16
  50. data/app/concepts/matestack/ui/core/form/select/select.haml +0 -9
@@ -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
 
@@ -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"
@@ -241,6 +242,7 @@ Matestack::Ui::Core::Component::Registry.register_components(
241
242
  s: Matestack::Ui::Core::S::S,
242
243
  samp: Matestack::Ui::Core::Samp::Samp,
243
244
  section: Matestack::Ui::Core::Section::Section,
245
+ select: Matestack::Ui::Core::Select::Select,
244
246
  small: Matestack::Ui::Core::Small::Small,
245
247
  span: Matestack::Ui::Core::Span::Span,
246
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.1.0'
4
+ VERSION = '1.4.0'
5
5
  end
6
6
  end
7
7
  end
@@ -1017,6 +1017,130 @@ const componentMixin = {
1017
1017
  /* harmony default export */ __webpack_exports__["default"] = (componentMixin);
1018
1018
 
1019
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
+
1020
1144
  /***/ }),
1021
1145
 
1022
1146
  /***/ "../app/concepts/matestack/ui/core/form/form.js":
@@ -1054,9 +1178,6 @@ const componentDef = {
1054
1178
  initDataKey: function (key, initValue) {
1055
1179
  this.data[key] = initValue;
1056
1180
  },
1057
- inputChanged: function (key) {
1058
- this.resetErrors(key);
1059
- },
1060
1181
  updateFormValue: function (key, value) {
1061
1182
  this.data[key] = value;
1062
1183
  },
@@ -1080,11 +1201,11 @@ const componentDef = {
1080
1201
  flat[i] = newVal;
1081
1202
  } else if (flat[i] instanceof File){
1082
1203
  flat[i] = newVal;
1083
- this.$refs["input."+i].value = newVal
1204
+ this.$refs["input-component-for-"+i].value = newVal
1084
1205
  } else if (flat[i] instanceof Array) {
1085
1206
  if(flat[i][0] instanceof File){
1086
1207
  flat[i] = newVal
1087
- this.$refs["input."+i].value = newVal
1208
+ this.$refs["input-component-for-"+i].value = newVal
1088
1209
  }
1089
1210
  } else if (typeof flat[i] === "object" && !(flat[i] instanceof Array)) {
1090
1211
  setProps(flat[i], newVal);
@@ -1093,54 +1214,26 @@ const componentDef = {
1093
1214
  }
1094
1215
  }
1095
1216
  },
1096
- filesAdded: function (key) {
1097
- const dataTransfer = event.dataTransfer || event.target;
1098
- const files = dataTransfer.files;
1099
- if (event.target.attributes.multiple) {
1100
- this.data[key] = [];
1101
- for (let index in files) {
1102
- if (files[index] instanceof File) {
1103
- this.data[key].push(files[index]);
1104
- }
1105
- }
1106
- } else {
1107
- this.data[key] = files[0];
1108
- }
1109
- },
1110
1217
  initValues: function () {
1111
1218
  let self = this;
1112
1219
  let data = {};
1113
1220
  for (let key in self.$refs) {
1114
- let initValue = self.$refs[key]["attributes"]["init-value"];
1115
- let valueType = self.$refs[key]["attributes"]["value-type"];
1116
-
1117
- if (key.startsWith("input.")) {
1118
- if (initValue) {
1119
- data[key.replace("input.", "")] = initValue["value"];
1120
- } else {
1121
- data[key.replace("input.", "")] = null;
1122
- }
1221
+ if (key.startsWith("input-component")) {
1222
+ self.$refs[key].initialize()
1123
1223
  }
1124
- if (key.startsWith("select.")) {
1125
- if (key.startsWith("select.multiple.")) {
1126
- if (initValue) {
1127
- data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1128
- } else {
1129
- data[key.replace("select.multiple.", "")] = [];
1130
- }
1131
- } else {
1132
- if (initValue) {
1133
- if (valueType && valueType["value"] == "Integer") data[key.replace("select.", "")] = parseInt(initValue["value"]);
1134
- else {
1135
- data[key.replace("select.", "")] = initValue["value"];
1136
- }
1137
- } else {
1138
- data[key.replace("select.", "")] = null;
1139
- }
1140
- }
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()
1141
1235
  }
1142
1236
  }
1143
- self.data = data;
1144
1237
  },
1145
1238
  shouldResetFormOnSuccessfulSubmit() {
1146
1239
  const self = this;
@@ -1342,6 +1435,432 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
1342
1435
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1343
1436
 
1344
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
+
1345
1864
  /***/ }),
1346
1865
 
1347
1866
  /***/ "../app/concepts/matestack/ui/core/isolated/isolated.js":
@@ -1492,11 +2011,22 @@ __webpack_require__.r(__webpack_exports__);
1492
2011
  /* harmony import */ var _transition_transition__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../transition/transition */ "../app/concepts/matestack/ui/core/transition/transition.js");
1493
2012
  /* harmony import */ var _action_action__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../action/action */ "../app/concepts/matestack/ui/core/action/action.js");
1494
2013
  /* harmony import */ var _form_form__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../form/form */ "../app/concepts/matestack/ui/core/form/form.js");
1495
- /* harmony import */ var _onclick_onclick__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../onclick/onclick */ "../app/concepts/matestack/ui/core/onclick/onclick.js");
1496
- /* harmony import */ var _collection_content_content__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../collection/content/content */ "../app/concepts/matestack/ui/core/collection/content/content.js");
1497
- /* harmony import */ var _collection_filter_filter__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../collection/filter/filter */ "../app/concepts/matestack/ui/core/collection/filter/filter.js");
1498
- /* harmony import */ var _collection_order_order__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../collection/order/order */ "../app/concepts/matestack/ui/core/collection/order/order.js");
1499
- /* harmony import */ var _isolated_isolated__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../isolated/isolated */ "../app/concepts/matestack/ui/core/isolated/isolated.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");
1500
2030
 
1501
2031
 
1502
2032
 
@@ -1510,6 +2040,17 @@ __webpack_require__.r(__webpack_exports__);
1510
2040
 
1511
2041
 
1512
2042
 
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
1513
2054
 
1514
2055
 
1515
2056
 
@@ -1881,9 +2422,14 @@ __webpack_require__.r(__webpack_exports__);
1881
2422
  /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_2__);
1882
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");
1883
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");
1884
- /* 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");
1885
- /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles/index.scss */ "../app/javascript/matestack-ui-core/styles/index.scss");
1886
- /* 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__);
1887
2433
 
1888
2434
 
1889
2435
  // Import from app/concepts/matestack/ui/core:
@@ -1892,12 +2438,22 @@ __webpack_require__.r(__webpack_exports__);
1892
2438
 
1893
2439
 
1894
2440
 
2441
+
2442
+
2443
+
2444
+
2445
+
1895
2446
  var MatestackUiCore = {
1896
2447
  Vue: vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"],
1897
2448
  Vuex: vuex__WEBPACK_IMPORTED_MODULE_1__["default"],
1898
2449
  axios: axios__WEBPACK_IMPORTED_MODULE_2___default.a,
1899
2450
  matestackEventHub: _app_concepts_matestack_ui_core_js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"],
1900
- 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"]
1901
2457
  };
1902
2458
  window.MatestackUiCore = MatestackUiCore;
1903
2459
  /* harmony default export */ __webpack_exports__["default"] = (MatestackUiCore);