diff --git a/dist/js/field.js b/dist/js/field.js index 051abd2..42c26e3 100644 --- a/dist/js/field.js +++ b/dist/js/field.js @@ -60,7 +60,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 2); +/******/ return __webpack_require__(__webpack_require__.s = 3); /******/ }) /************************************************************************/ /******/ ([ @@ -10403,325 +10403,6 @@ module.exports = g; /* 2 */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(3); -module.exports = __webpack_require__(31); - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -Nova.booting(function (Vue, router, store) { - Vue.component('index-broadcaster-field', __webpack_require__(4)); - Vue.component('detail-broadcaster-field', __webpack_require__(7)); - Vue.component('form-broadcaster-field', __webpack_require__(10)); - - Vue.component('index-listener-field', __webpack_require__(14)); - Vue.component('detail-listener-field', __webpack_require__(17)); - Vue.component('form-listener-field', __webpack_require__(20)); -}); - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -var disposed = false -var normalizeComponent = __webpack_require__(0) -/* script */ -var __vue_script__ = __webpack_require__(5) -/* template */ -var __vue_template__ = __webpack_require__(6) -/* template functional */ -var __vue_template_functional__ = false -/* styles */ -var __vue_styles__ = null -/* scopeId */ -var __vue_scopeId__ = null -/* moduleIdentifier (server only) */ -var __vue_module_identifier__ = null -var Component = normalizeComponent( - __vue_script__, - __vue_template__, - __vue_template_functional__, - __vue_styles__, - __vue_scopeId__, - __vue_module_identifier__ -) -Component.options.__file = "resources/js/components/broadcaster-field/IndexField.vue" - -/* hot reload */ -if (false) {(function () { - var hotAPI = require("vue-hot-reload-api") - hotAPI.install(require("vue"), false) - if (!hotAPI.compatible) return - module.hot.accept() - if (!module.hot.data) { - hotAPI.createRecord("data-v-7a97a227", Component.options) - } else { - hotAPI.reload("data-v-7a97a227", Component.options) - } - module.hot.dispose(function (data) { - disposed = true - }) -})()} - -module.exports = Component.exports - - -/***/ }), -/* 5 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -// -// -// -// - -/* harmony default export */ __webpack_exports__["default"] = ({ - props: ['resourceName', 'field'] -}); - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c("span", [_vm._v(_vm._s(_vm.field.value))]) -} -var staticRenderFns = [] -render._withStripped = true -module.exports = { render: render, staticRenderFns: staticRenderFns } -if (false) { - module.hot.accept() - if (module.hot.data) { - require("vue-hot-reload-api") .rerender("data-v-7a97a227", module.exports) - } -} - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -var disposed = false -var normalizeComponent = __webpack_require__(0) -/* script */ -var __vue_script__ = __webpack_require__(8) -/* template */ -var __vue_template__ = __webpack_require__(9) -/* template functional */ -var __vue_template_functional__ = false -/* styles */ -var __vue_styles__ = null -/* scopeId */ -var __vue_scopeId__ = null -/* moduleIdentifier (server only) */ -var __vue_module_identifier__ = null -var Component = normalizeComponent( - __vue_script__, - __vue_template__, - __vue_template_functional__, - __vue_styles__, - __vue_scopeId__, - __vue_module_identifier__ -) -Component.options.__file = "resources/js/components/broadcaster-field/DetailField.vue" - -/* hot reload */ -if (false) {(function () { - var hotAPI = require("vue-hot-reload-api") - hotAPI.install(require("vue"), false) - if (!hotAPI.compatible) return - module.hot.accept() - if (!module.hot.data) { - hotAPI.createRecord("data-v-718e89da", Component.options) - } else { - hotAPI.reload("data-v-718e89da", Component.options) - } - module.hot.dispose(function (data) { - disposed = true - }) -})()} - -module.exports = Component.exports - - -/***/ }), -/* 8 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -// -// -// -// - -/* harmony default export */ __webpack_exports__["default"] = ({ - props: ['resource', 'resourceName', 'resourceId', 'field'] -}); - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c("panel-item", { attrs: { field: _vm.field } }) -} -var staticRenderFns = [] -render._withStripped = true -module.exports = { render: render, staticRenderFns: staticRenderFns } -if (false) { - module.hot.accept() - if (module.hot.data) { - require("vue-hot-reload-api") .rerender("data-v-718e89da", module.exports) - } -} - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var disposed = false -var normalizeComponent = __webpack_require__(0) -/* script */ -var __vue_script__ = __webpack_require__(11) -/* template */ -var __vue_template__ = __webpack_require__(13) -/* template functional */ -var __vue_template_functional__ = false -/* styles */ -var __vue_styles__ = null -/* scopeId */ -var __vue_scopeId__ = null -/* moduleIdentifier (server only) */ -var __vue_module_identifier__ = null -var Component = normalizeComponent( - __vue_script__, - __vue_template__, - __vue_template_functional__, - __vue_styles__, - __vue_scopeId__, - __vue_module_identifier__ -) -Component.options.__file = "resources/js/components/broadcaster-field/FormField.vue" - -/* hot reload */ -if (false) {(function () { - var hotAPI = require("vue-hot-reload-api") - hotAPI.install(require("vue"), false) - if (!hotAPI.compatible) return - module.hot.accept() - if (!module.hot.data) { - hotAPI.createRecord("data-v-5c1e3907", Component.options) - } else { - hotAPI.reload("data-v-5c1e3907", Component.options) - } - module.hot.dispose(function (data) { - disposed = true - }) -})()} - -module.exports = Component.exports - - -/***/ }), -/* 11 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_laravel_nova__ = __webpack_require__(1); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_laravel_nova___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_laravel_nova__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_numeral__ = __webpack_require__(12); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_numeral___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_numeral__); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - - - - -/* harmony default export */ __webpack_exports__["default"] = ({ - mixins: [__WEBPACK_IMPORTED_MODULE_0_laravel_nova__["FormField"], __WEBPACK_IMPORTED_MODULE_0_laravel_nova__["HandlesValidationErrors"]], - - props: ["resourceName", "resourceId", "field"], - - methods: { - setFieldAndMessage: function setFieldAndMessage(el) { - var rawValue = el.target.value; - var parsedValue = rawValue; - - if (this.field.type === "number") { - parsedValue = Number(rawValue); - } - - Nova.$emit(this.field.broadcastTo, { - field_name: this.field.attribute, - value: parsedValue - }); - - this.value = parsedValue; - }, - - - /* - * Set the initial, internal value for the field. - */ - setInitialValue: function setInitialValue() { - this.value = this.field.value || ""; - }, - - - /** - * Fill the given FormData object with the field's internal value. - */ - fill: function fill(formData) { - formData.append(this.field.attribute, this.value || ""); - }, - - - /** - * Update the field's internal value. - */ - handleChange: function handleChange(value) { - this.value = value; - } - }, - filters: { - moneyFormat: function moneyFormat(number, format) { - if (!format) { - return number; - } - return __WEBPACK_IMPORTED_MODULE_1_numeral___default()(number).format(format); - } - } -}); - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @preserve * numeral.js * version : 2.0.6 @@ -11499,247 +11180,567 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @preserve value = value / min; } - break; - } + break; + } + } + + output = numeral._.numberToFormat(value, format, roundingFunction); + + return output + suffix; + }, + unformat: function(string) { + var value = numeral._.stringToNumber(string), + power, + bytesMultiplier; + + if (value) { + for (power = decimal.suffixes.length - 1; power >= 0; power--) { + if (numeral._.includes(string, decimal.suffixes[power])) { + bytesMultiplier = Math.pow(decimal.base, power); + + break; + } + + if (numeral._.includes(string, binary.suffixes[power])) { + bytesMultiplier = Math.pow(binary.base, power); + + break; + } + } + + value *= (bytesMultiplier || 1); + } + + return value; + } + }); +})(); + + +(function() { + numeral.register('format', 'currency', { + regexps: { + format: /(\$)/ + }, + format: function(value, format, roundingFunction) { + var locale = numeral.locales[numeral.options.currentLocale], + symbols = { + before: format.match(/^([\+|\-|\(|\s|\$]*)/)[0], + after: format.match(/([\+|\-|\)|\s|\$]*)$/)[0] + }, + output, + symbol, + i; + + // strip format of spaces and $ + format = format.replace(/\s?\$\s?/, ''); + + // format the number + output = numeral._.numberToFormat(value, format, roundingFunction); + + // update the before and after based on value + if (value >= 0) { + symbols.before = symbols.before.replace(/[\-\(]/, ''); + symbols.after = symbols.after.replace(/[\-\)]/, ''); + } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) { + symbols.before = '-' + symbols.before; + } + + // loop through each before symbol + for (i = 0; i < symbols.before.length; i++) { + symbol = symbols.before[i]; + + switch (symbol) { + case '$': + output = numeral._.insert(output, locale.currency.symbol, i); + break; + case ' ': + output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1); + break; + } + } + + // loop through each after symbol + for (i = symbols.after.length - 1; i >= 0; i--) { + symbol = symbols.after[i]; + + switch (symbol) { + case '$': + output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i))); + break; + case ' ': + output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1)); + break; + } + } + + + return output; + } + }); +})(); + + +(function() { + numeral.register('format', 'exponential', { + regexps: { + format: /(e\+|e-)/, + unformat: /(e\+|e-)/ + }, + format: function(value, format, roundingFunction) { + var output, + exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0', + parts = exponential.split('e'); + + format = format.replace(/e[\+|\-]{1}0/, ''); + + output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction); + + return output + 'e' + parts[1]; + }, + unformat: function(string) { + var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'), + value = Number(parts[0]), + power = Number(parts[1]); + + power = numeral._.includes(string, 'e-') ? power *= -1 : power; + + function cback(accum, curr, currI, O) { + var corrFactor = numeral._.correctionFactor(accum, curr), + num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor); + return num; + } + + return numeral._.reduce([value, Math.pow(10, power)], cback, 1); + } + }); +})(); + + +(function() { + numeral.register('format', 'ordinal', { + regexps: { + format: /(o)/ + }, + format: function(value, format, roundingFunction) { + var locale = numeral.locales[numeral.options.currentLocale], + output, + ordinal = numeral._.includes(format, ' o') ? ' ' : ''; + + // check for space before + format = format.replace(/\s?o/, ''); + + ordinal += locale.ordinal(value); + + output = numeral._.numberToFormat(value, format, roundingFunction); + + return output + ordinal; + } + }); +})(); + + +(function() { + numeral.register('format', 'percentage', { + regexps: { + format: /(%)/, + unformat: /(%)/ + }, + format: function(value, format, roundingFunction) { + var space = numeral._.includes(format, ' %') ? ' ' : '', + output; + + if (numeral.options.scalePercentBy100) { + value = value * 100; } - output = numeral._.numberToFormat(value, format, roundingFunction); - - return output + suffix; - }, - unformat: function(string) { - var value = numeral._.stringToNumber(string), - power, - bytesMultiplier; - - if (value) { - for (power = decimal.suffixes.length - 1; power >= 0; power--) { - if (numeral._.includes(string, decimal.suffixes[power])) { - bytesMultiplier = Math.pow(decimal.base, power); + // check for space before % + format = format.replace(/\s?\%/, ''); - break; - } + output = numeral._.numberToFormat(value, format, roundingFunction); - if (numeral._.includes(string, binary.suffixes[power])) { - bytesMultiplier = Math.pow(binary.base, power); + if (numeral._.includes(output, ')')) { + output = output.split(''); - break; - } - } + output.splice(-1, 0, space + '%'); - value *= (bytesMultiplier || 1); + output = output.join(''); + } else { + output = output + space + '%'; } - return value; + return output; + }, + unformat: function(string) { + var number = numeral._.stringToNumber(string); + if (numeral.options.scalePercentBy100) { + return number * 0.01; + } + return number; } }); })(); (function() { - numeral.register('format', 'currency', { + numeral.register('format', 'time', { regexps: { - format: /(\$)/ + format: /(:)/, + unformat: /(:)/ }, format: function(value, format, roundingFunction) { - var locale = numeral.locales[numeral.options.currentLocale], - symbols = { - before: format.match(/^([\+|\-|\(|\s|\$]*)/)[0], - after: format.match(/([\+|\-|\)|\s|\$]*)$/)[0] - }, - output, - symbol, - i; - - // strip format of spaces and $ - format = format.replace(/\s?\$\s?/, ''); + var hours = Math.floor(value / 60 / 60), + minutes = Math.floor((value - (hours * 60 * 60)) / 60), + seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60)); - // format the number - output = numeral._.numberToFormat(value, format, roundingFunction); + return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds); + }, + unformat: function(string) { + var timeArray = string.split(':'), + seconds = 0; - // update the before and after based on value - if (value >= 0) { - symbols.before = symbols.before.replace(/[\-\(]/, ''); - symbols.after = symbols.after.replace(/[\-\)]/, ''); - } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) { - symbols.before = '-' + symbols.before; + // turn hours and minutes into seconds and add them all up + if (timeArray.length === 3) { + // hours + seconds = seconds + (Number(timeArray[0]) * 60 * 60); + // minutes + seconds = seconds + (Number(timeArray[1]) * 60); + // seconds + seconds = seconds + Number(timeArray[2]); + } else if (timeArray.length === 2) { + // minutes + seconds = seconds + (Number(timeArray[0]) * 60); + // seconds + seconds = seconds + Number(timeArray[1]); } + return Number(seconds); + } + }); +})(); - // loop through each before symbol - for (i = 0; i < symbols.before.length; i++) { - symbol = symbols.before[i]; +return numeral; +})); - switch (symbol) { - case '$': - output = numeral._.insert(output, locale.currency.symbol, i); - break; - case ' ': - output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1); - break; - } - } - // loop through each after symbol - for (i = symbols.after.length - 1; i >= 0; i--) { - symbol = symbols.after[i]; +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { - switch (symbol) { - case '$': - output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i))); - break; - case ' ': - output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1)); - break; - } - } +__webpack_require__(4); +module.exports = __webpack_require__(31); - return output; - } - }); -})(); +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +Nova.booting(function (Vue, router, store) { + Vue.component('index-broadcaster-field', __webpack_require__(5)); + Vue.component('detail-broadcaster-field', __webpack_require__(8)); + Vue.component('form-broadcaster-field', __webpack_require__(11)); + + Vue.component('index-listener-field', __webpack_require__(14)); + Vue.component('detail-listener-field', __webpack_require__(17)); + Vue.component('form-listener-field', __webpack_require__(20)); +}); + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +var disposed = false +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(6) +/* template */ +var __vue_template__ = __webpack_require__(7) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = null +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "resources/js/components/broadcaster-field/IndexField.vue" + +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-7a97a227", Component.options) + } else { + hotAPI.reload("data-v-7a97a227", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} + +module.exports = Component.exports + + +/***/ }), +/* 6 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + props: ['resourceName', 'field'] +}); + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("span", [_vm._v(_vm._s(_vm.field.value))]) +} +var staticRenderFns = [] +render._withStripped = true +module.exports = { render: render, staticRenderFns: staticRenderFns } +if (false) { + module.hot.accept() + if (module.hot.data) { + require("vue-hot-reload-api") .rerender("data-v-7a97a227", module.exports) + } +} + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +var disposed = false +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(9) +/* template */ +var __vue_template__ = __webpack_require__(10) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = null +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "resources/js/components/broadcaster-field/DetailField.vue" + +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-718e89da", Component.options) + } else { + hotAPI.reload("data-v-718e89da", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} +module.exports = Component.exports -(function() { - numeral.register('format', 'exponential', { - regexps: { - format: /(e\+|e-)/, - unformat: /(e\+|e-)/ - }, - format: function(value, format, roundingFunction) { - var output, - exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0', - parts = exponential.split('e'); - format = format.replace(/e[\+|\-]{1}0/, ''); +/***/ }), +/* 9 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction); +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +// +// +// +// - return output + 'e' + parts[1]; - }, - unformat: function(string) { - var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'), - value = Number(parts[0]), - power = Number(parts[1]); +/* harmony default export */ __webpack_exports__["default"] = ({ + props: ['resource', 'resourceName', 'resourceId', 'field'] +}); - power = numeral._.includes(string, 'e-') ? power *= -1 : power; +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { - function cback(accum, curr, currI, O) { - var corrFactor = numeral._.correctionFactor(accum, curr), - num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor); - return num; - } +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("panel-item", { attrs: { field: _vm.field } }) +} +var staticRenderFns = [] +render._withStripped = true +module.exports = { render: render, staticRenderFns: staticRenderFns } +if (false) { + module.hot.accept() + if (module.hot.data) { + require("vue-hot-reload-api") .rerender("data-v-718e89da", module.exports) + } +} - return numeral._.reduce([value, Math.pow(10, power)], cback, 1); - } - }); -})(); +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { +var disposed = false +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(12) +/* template */ +var __vue_template__ = __webpack_require__(13) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = null +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "resources/js/components/broadcaster-field/FormField.vue" -(function() { - numeral.register('format', 'ordinal', { - regexps: { - format: /(o)/ - }, - format: function(value, format, roundingFunction) { - var locale = numeral.locales[numeral.options.currentLocale], - output, - ordinal = numeral._.includes(format, ' o') ? ' ' : ''; +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-5c1e3907", Component.options) + } else { + hotAPI.reload("data-v-5c1e3907", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} - // check for space before - format = format.replace(/\s?o/, ''); +module.exports = Component.exports - ordinal += locale.ordinal(value); - output = numeral._.numberToFormat(value, format, roundingFunction); +/***/ }), +/* 12 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - return output + ordinal; - } - }); -})(); +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_laravel_nova__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_laravel_nova___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_laravel_nova__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_numeral__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_numeral___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_numeral__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// -(function() { - numeral.register('format', 'percentage', { - regexps: { - format: /(%)/, - unformat: /(%)/ - }, - format: function(value, format, roundingFunction) { - var space = numeral._.includes(format, ' %') ? ' ' : '', - output; - if (numeral.options.scalePercentBy100) { - value = value * 100; - } - // check for space before % - format = format.replace(/\s?\%/, ''); +/* harmony default export */ __webpack_exports__["default"] = ({ + mixins: [__WEBPACK_IMPORTED_MODULE_0_laravel_nova__["FormField"], __WEBPACK_IMPORTED_MODULE_0_laravel_nova__["HandlesValidationErrors"]], - output = numeral._.numberToFormat(value, format, roundingFunction); + props: ["resourceName", "resourceId", "field"], - if (numeral._.includes(output, ')')) { - output = output.split(''); + methods: { + setFieldAndMessage: function setFieldAndMessage(el) { + var rawValue = el.target.value; + var parsedValue = rawValue; - output.splice(-1, 0, space + '%'); + if (this.field.type === "number") { + parsedValue = Number(rawValue); + } - output = output.join(''); - } else { - output = output + space + '%'; - } + Nova.$emit(this.field.broadcastTo, { + field_name: this.field.attribute, + value: parsedValue + }); - return output; - }, - unformat: function(string) { - var number = numeral._.stringToNumber(string); - if (numeral.options.scalePercentBy100) { - return number * 0.01; - } - return number; - } - }); -})(); + this.value = parsedValue; + }, -(function() { - numeral.register('format', 'time', { - regexps: { - format: /(:)/, - unformat: /(:)/ - }, - format: function(value, format, roundingFunction) { - var hours = Math.floor(value / 60 / 60), - minutes = Math.floor((value - (hours * 60 * 60)) / 60), - seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60)); + /* + * Set the initial, internal value for the field. + */ + setInitialValue: function setInitialValue() { + this.value = this.field.value || ""; + }, - return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds); - }, - unformat: function(string) { - var timeArray = string.split(':'), - seconds = 0; - // turn hours and minutes into seconds and add them all up - if (timeArray.length === 3) { - // hours - seconds = seconds + (Number(timeArray[0]) * 60 * 60); - // minutes - seconds = seconds + (Number(timeArray[1]) * 60); - // seconds - seconds = seconds + Number(timeArray[2]); - } else if (timeArray.length === 2) { - // minutes - seconds = seconds + (Number(timeArray[0]) * 60); - // seconds - seconds = seconds + Number(timeArray[1]); - } - return Number(seconds); - } - }); -})(); + /** + * Fill the given FormData object with the field's internal value. + */ + fill: function fill(formData) { + formData.append(this.field.attribute, this.value || ""); + }, -return numeral; -})); + /** + * Update the field's internal value. + */ + handleChange: function handleChange(value) { + this.value = value; + } + }, + filters: { + moneyFormat: function moneyFormat(number, format) { + if (!format) { + return number; + } + return __WEBPACK_IMPORTED_MODULE_1_numeral___default()(number).format(format); + } + } +}); /***/ }), /* 13 */ @@ -11760,7 +11761,8 @@ var render = function() { attrs: { id: _vm.field.name, type: this.field.type, - placeholder: _vm.field.name + placeholder: _vm.field.name, + step: _vm.field.step }, domProps: { value: _vm._f("moneyFormat")(_vm.value, _vm.field.numberFormat) @@ -12390,7 +12392,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_laravel_nova___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_laravel_nova__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(27); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_numeral__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_numeral__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_numeral___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_numeral__); // // diff --git a/resources/js/components/broadcaster-field/FormField.vue b/resources/js/components/broadcaster-field/FormField.vue index 63e75d2..806a63b 100644 --- a/resources/js/components/broadcaster-field/FormField.vue +++ b/resources/js/components/broadcaster-field/FormField.vue @@ -8,6 +8,7 @@ :class="errorClasses" :placeholder="field.name" :value="value | moneyFormat(field.numberFormat)" + :step="field.step" @input="setFieldAndMessage" /> diff --git a/src/BroadcasterField.php b/src/BroadcasterField.php index 3cd7c10..ea01e9e 100644 --- a/src/BroadcasterField.php +++ b/src/BroadcasterField.php @@ -33,7 +33,8 @@ public function __construct($name, $attribute = null, callable $resolveCallback $this->withMeta([ 'type' => 'number', - 'broadcastTo' => 'broadcast-field-input' + 'broadcastTo' => 'broadcast-field-input', + 'step' => 'any' ]); } @@ -62,6 +63,18 @@ public function numberFormat($format) : Element ]); } + /** + * Allows us to set the step attribute on the input broadcaster field + * @param $broadcastChannel + * @return Element + */ + public function setStep($value) : Element + { + return $this->withMeta([ + 'step' => $value + ]); + } + /** * Tells the client side component which channel to broadcast on * @param $broadcastChannel