matestack-ui-core 1.1.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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);