diff --git a/app/Http/Controllers/RegexController.php b/app/Http/Controllers/RegexController.php index 04a2c69..0d5890e 100644 --- a/app/Http/Controllers/RegexController.php +++ b/app/Http/Controllers/RegexController.php @@ -15,11 +15,16 @@ class RegexController extends Controller { request()->validate([ 'name' => 'required', + 'tag' => 'nullable', 'expression' => 'required', ]); try { - $factory = new RegexFactory(request()->get('name'), request()->get('expression')); + $factory = new RegexFactory( + request()->get('name'), + request()->get('expression'), + request()->get('tag') + ); $searcher = $factory->create(); diff --git a/app/Http/Controllers/SearcherController.php b/app/Http/Controllers/SearcherController.php index 63d5b36..f1c2e0f 100644 --- a/app/Http/Controllers/SearcherController.php +++ b/app/Http/Controllers/SearcherController.php @@ -37,12 +37,17 @@ class SearcherController extends Controller { request()->validate([ 'name' => 'required', + 'tag' => 'nullable', 'rows' => 'required|array', 'rows.*' => 'array', ]); try { - $factory = new SearcherFactory(request()->get('name'), request()->get('rows')); + $factory = new SearcherFactory( + request()->get('name'), + request()->get('rows'), + request()->get('tag') + ); $searcher = $factory->create(); @@ -107,12 +112,17 @@ class SearcherController extends Controller { request()->validate([ 'name' => 'required', + 'tag' => 'nullable', 'rows' => 'required|array', 'rows.*' => 'array', ]); try { - $factory = new SearcherFactory(request()->get('name'), request()->get('rows')); + $factory = new SearcherFactory( + request()->get('name'), + request()->get('rows'), + request()->get('tag') + ); $searcher = $factory->update($id); diff --git a/app/SearchDisplace/Regex/RegexFactory.php b/app/SearchDisplace/Regex/RegexFactory.php index a9e9ec9..0d94c1f 100644 --- a/app/SearchDisplace/Regex/RegexFactory.php +++ b/app/SearchDisplace/Regex/RegexFactory.php @@ -8,9 +8,9 @@ class RegexFactory extends SearcherCreator { protected $expression; - public function __construct($name, $expression) + public function __construct($name, $expression, $tag = '') { - parent::__construct($name, ''); + parent::__construct($name, $tag, ''); $this->expression = $expression; } diff --git a/app/SearchDisplace/SearchAndDisplace.php b/app/SearchDisplace/SearchAndDisplace.php index 4ee4c17..8039c34 100644 --- a/app/SearchDisplace/SearchAndDisplace.php +++ b/app/SearchDisplace/SearchAndDisplace.php @@ -40,7 +40,7 @@ class SearchAndDisplace $replacements = []; foreach ($this->info['searchers'] as $searcher) { - $replacements[$searcher['key']] = $searcher['replace_with']; + $replacements[$searcher['key']] = $searcher; } $searchers = []; @@ -67,7 +67,11 @@ class SearchAndDisplace $start = mb_strlen($updatedDocumentContent); - $updatedDocumentContent = $updatedDocumentContent . $replacements[$searcherItem['searcher']]; + $replacementValue = $replacements[$searcherItem['searcher']]['type'] === 'replace' + ? $replacements[$searcherItem['searcher']]['value'] + : $this->getDisplaceValue($replacements[$searcherItem['searcher']]['value'], $searcherItem['content']); + + $updatedDocumentContent = $updatedDocumentContent . $replacementValue; $end = mb_strlen($updatedDocumentContent) - 1; @@ -90,4 +94,10 @@ class SearchAndDisplace 'indexes' => $replacementIndexes, ]; } + + protected function getDisplaceValue($displaceValue, $content) + { +// return "<$displaceValue>$content"; + return "{{$displaceValue}}{$content}{/{$displaceValue}}"; + } } diff --git a/app/SearchDisplace/Searchers/SearcherCreator.php b/app/SearchDisplace/Searchers/SearcherCreator.php index 672422d..66a2d5c 100644 --- a/app/SearchDisplace/Searchers/SearcherCreator.php +++ b/app/SearchDisplace/Searchers/SearcherCreator.php @@ -9,13 +9,15 @@ abstract class SearcherCreator protected $name; protected $id; protected $description; + protected $tag; protected $rows = []; protected $storage; protected $searchersCollection; - public function __construct($name, $description) + public function __construct($name, $tag, $description) { $this->name = $name; + $this->tag = $tag; $this->description = $description; $this->id = $this->generateID(); $this->storage = Storage::disk('local'); @@ -28,6 +30,10 @@ abstract class SearcherCreator { $id = "{$this->id}_{$this->name}"; + if ($this->tag) { + $id = "{$id}_{$this->tag}"; + } + return $this->save($id); } @@ -38,6 +44,10 @@ abstract class SearcherCreator $newId = $uniqueId . '_' . $this->name; + if ($this->tag) { + $newId = "{$newId}_{$this->tag}"; + } + if ($id !== $newId) { $this->storage->move("searchers/$id.json", "searchers/$newId.json"); } @@ -52,6 +62,7 @@ abstract class SearcherCreator $contents = [ 'id' => $id, 'name' => $this->name, + 'tag' => $this->tag, 'description' => $this->description, 'rows' => $this->rows, ]; diff --git a/app/SearchDisplace/Searchers/SearcherFactory.php b/app/SearchDisplace/Searchers/SearcherFactory.php index 248df8e..d362cc2 100644 --- a/app/SearchDisplace/Searchers/SearcherFactory.php +++ b/app/SearchDisplace/Searchers/SearcherFactory.php @@ -4,9 +4,9 @@ namespace App\SearchDisplace\Searchers; class SearcherFactory extends SearcherCreator { - public function __construct($name, $rows) + public function __construct($name, $rows, $tag = '') { - parent::__construct($name, ''); + parent::__construct($name, $tag, ''); $this->rows = $rows; } diff --git a/app/SearchDisplace/Searchers/SearchersStorage.php b/app/SearchDisplace/Searchers/SearchersStorage.php index 5ca2d38..c01fc2a 100644 --- a/app/SearchDisplace/Searchers/SearchersStorage.php +++ b/app/SearchDisplace/Searchers/SearchersStorage.php @@ -24,19 +24,26 @@ class SearchersStorage $fileName = pathinfo($file, PATHINFO_FILENAME); $result = explode('_', $fileName); - if (count($result) === 2) { - $searchers[$fileName] = [ - 'id' => $fileName, - 'name' => $result[1], - 'param' => SearchersCollection::PARAM_REQUIRED - ]; - } else if (count($result) === 3) { - $searchers[$fileName] = [ - 'id' => $fileName, - 'name' => $result[1], - 'param' => $result[2] - ]; + if (count($result) < 2) { + continue; } + + $searchers[$fileName] = [ + 'id' => $fileName, + 'name' => $result[1], + 'tag' => '', + 'param' => SearchersCollection::PARAM_REQUIRED, + ]; + + if (count($result) === 3) { + $searchers[$fileName]['tag'] = $result[2]; + +// $searchers[$fileName]['param'] = SearchersCollection::PARAM_REQUIRED; + } + +// if (count($result) === 3) { +// $searchers[$fileName]['param'] = $result[2]; +// } } } diff --git a/public/css/app.css b/public/css/app.css index e95fb9b..45b5de2 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -10873,6 +10873,11 @@ box-shadow: inset 0 0 6px rgba(54, 52, 52, 0.863) !important; } +#searchers-create.is-defining { + max-height: 100%; + overflow-y: auto; +} + body { height: 100%; margin: 0; diff --git a/public/js/app.js b/public/js/app.js index 9d3ef3e..52b75b2 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1913,6 +1913,7 @@ var Create = /*#__PURE__*/function (_Vue) { _this = _super.apply(this, arguments); _this.name = ''; + _this.tag = ''; _this.pattern = ''; _this.flags = ['g', 'i']; return _this; @@ -1942,6 +1943,7 @@ var Create = /*#__PURE__*/function (_Vue) { _context.next = 3; return window.axios.post('/regex', { name: this.name, + tag: this.tag, expression: this.pattern }); @@ -2469,6 +2471,7 @@ var Create = /*#__PURE__*/function (_Vue) { _this = _super.apply(this, arguments); _this.id = ''; _this.name = ''; + _this.tag = ''; _this.rows = []; return _this; } @@ -2528,6 +2531,7 @@ var Create = /*#__PURE__*/function (_Vue) { var updatedSearcher = Object.assign(this.searcher, { name: this.name, + tag: this.tag, rows: this.rows }); this.$emit('updated', updatedSearcher); @@ -2565,22 +2569,32 @@ var Create = /*#__PURE__*/function (_Vue) { case 10: searcher = _context2.t0; + + if (!this.isDefining) { + _context2.next = 14; + break; + } + + this.$emit('defined', searcher); + return _context2.abrupt("return"); + + case 14: window.location.href = "/searchers/".concat(searcher.id); - _context2.next = 18; + _context2.next = 21; break; - case 14: - _context2.prev = 14; + case 17: + _context2.prev = 17; _context2.t1 = _context2["catch"](0); console.log(_context2.t1); console.log('Something went wrong.'); - case 18: + case 21: case "end": return _context2.stop(); } } - }, _callee2, this, [[0, 14]]); + }, _callee2, this, [[0, 17]]); })); function save() { @@ -2602,6 +2616,7 @@ var Create = /*#__PURE__*/function (_Vue) { _context3.next = 2; return window.axios.put("/searchers/".concat(this.id), { name: this.name, + tag: this.tag, rows: this.rows }); @@ -2637,6 +2652,7 @@ var Create = /*#__PURE__*/function (_Vue) { _context4.next = 2; return window.axios.post('/searchers', { name: this.name, + tag: this.tag, rows: this.rows }); @@ -2743,6 +2759,14 @@ var Create = /*#__PURE__*/function (_Vue) { this.id = this.searcher.id; this.rows = this.searcher.rows; this.name = this.searcher.name; + this.tag = this.searcher.tag; + } + + if (this.isDefining && this.definedSearcher) { + this.name = this.definedSearcher; + this.rows.push([{ + expression: this.definedSearcher + }]); } _app__WEBPACK_IMPORTED_MODULE_1__.eventBus.$on('changeRoute', this.changeRoute); @@ -2757,6 +2781,7 @@ var Create = /*#__PURE__*/function (_Vue) { return { id: '', name: '', + tag: '', rows: [] }; } @@ -2766,6 +2791,14 @@ var Create = /*#__PURE__*/function (_Vue) { default: true })], Create.prototype, "standalone", void 0); +(0,tslib__WEBPACK_IMPORTED_MODULE_5__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Prop)({ + default: true +})], Create.prototype, "isDefining", void 0); + +(0,tslib__WEBPACK_IMPORTED_MODULE_5__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Prop)({ + default: '' +})], Create.prototype, "definedSearcher", void 0); + Create = (0,tslib__WEBPACK_IMPORTED_MODULE_5__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Component)({ name: 'SearcherCreate', components: { @@ -2778,6 +2811,99 @@ Create = (0,tslib__WEBPACK_IMPORTED_MODULE_5__.__decorate)([(0,vue_property_deco /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6[0].rules[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=script&lang=ts&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6[0].rules[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=script&lang=ts& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var vue_property_decorator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-property-decorator */ "./node_modules/vue-property-decorator/lib/vue-property-decorator.js"); +/* harmony import */ var _Create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Create */ "./resources/js/components/Searchers/Create.vue"); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + + +var DefineSearcher = /*#__PURE__*/function (_Vue) { + _inherits(DefineSearcher, _Vue); + + var _super = _createSuper(DefineSearcher); + + function DefineSearcher() { + var _this; + + _classCallCheck(this, DefineSearcher); + + _this = _super.apply(this, arguments); + _this.showDialog = false; + return _this; + } + + _createClass(DefineSearcher, [{ + key: "onDefined", + value: function onDefined(searcher) { + this.$emit('done', searcher); + } + }, { + key: "showDialogChanged", + value: function showDialogChanged() { + if (!this.showDialog) { + this.$emit('close'); + } + } + }, { + key: "mounted", + value: function mounted() { + this.showDialog = true; + } + }]); + + return DefineSearcher; +}(vue_property_decorator__WEBPACK_IMPORTED_MODULE_0__.Vue); + +(0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_0__.Prop)({ + default: '' +})], DefineSearcher.prototype, "text", void 0); + +(0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_0__.Watch)('showDialog')], DefineSearcher.prototype, "showDialogChanged", null); + +DefineSearcher = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_0__.Component)({ + components: { + CreateSearcher: _Create__WEBPACK_IMPORTED_MODULE_1__.default + } +})], DefineSearcher); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DefineSearcher); +; + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6[0].rules[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/Index.vue?vue&type=script&lang=ts&": /*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6[0].rules[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/Index.vue?vue&type=script&lang=ts& ***! @@ -3644,6 +3770,7 @@ var Home = /*#__PURE__*/function (_Vue) { _classCallCheck(this, Home); _this = _super.apply(this, arguments); + _this.availableSearchers = []; _this.uiBlocked = false; _this.uploading = false; _this.fileUploaded = false; @@ -3659,6 +3786,7 @@ var Home = /*#__PURE__*/function (_Vue) { key: "mounted", value: function mounted() { _app__WEBPACK_IMPORTED_MODULE_3__.eventBus.$on('changeRoute', this.changeRoute); + this.availableSearchers = this.searchers; } /** * A method which uploads the files to the server for processing @@ -3778,6 +3906,11 @@ var Home = /*#__PURE__*/function (_Vue) { return uploadNewFile; }() + }, { + key: "onNewSearcher", + value: function onNewSearcher(searcher) { + this.availableSearchers.unshift(searcher); + } }, { key: "onError", value: function onError(error) { @@ -3817,11 +3950,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); /* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! marked */ "./node_modules/marked/lib/marked.js"); /* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(marked__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-property-decorator */ "./node_modules/vue-property-decorator/lib/vue-property-decorator.js"); /* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/app */ "./resources/js/app.ts"); +/* harmony import */ var _Searchers_DefineSearcher_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Searchers/DefineSearcher.vue */ "./resources/js/components/Searchers/DefineSearcher.vue"); +/* harmony import */ var primevue_radiobutton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primevue/radiobutton */ "./node_modules/primevue/radiobutton/index.js"); function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } @@ -3861,6 +3996,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g + + var ProcessFile = /*#__PURE__*/function (_Vue) { _inherits(ProcessFile, _Vue); @@ -3899,6 +4036,8 @@ var ProcessFile = /*#__PURE__*/function (_Vue) { _this.showDiffHighlight = false; _this.newlySelectedSearchers = []; + _this.showDefineSearcher = false; + _this.searcherToDefineText = ''; return _this; } /** @@ -4213,8 +4352,9 @@ var ProcessFile = /*#__PURE__*/function (_Vue) { searchers = []; Object.values(this.selectedSearchers).forEach(function (searcher) { searchers.push({ - 'key': searcher.id, - 'replace_with': _this4.searchersOptions[searcher.id] || '' + key: searcher.id, + type: _this4.searchersOptions[searcher.id].type, + value: _this4.searchersOptions[searcher.id].value || '' }); }); _context4.prev = 4; @@ -4340,12 +4480,49 @@ var ProcessFile = /*#__PURE__*/function (_Vue) { }, { key: "isValidParam", value: function isValidParam(paramId, paramType) { - if (paramType === 'required' && (this.searchersOptions[paramId] === '' || this.searchersOptions[paramId] === undefined)) { + if (paramType === 'required' && (Object.keys(this.searchersOptions[paramId]).length === 0 || this.searchersOptions[paramId] === undefined)) { return false; } return true; } + }, { + key: "onDefineSearcher", + value: function onDefineSearcher() { + var selection = window.getSelection(); + var selectedText = selection ? selection.toString() : ''; + + if (!selectedText) { + this.$toast.add({ + severity: 'info', + summary: 'No text selected.', + detail: 'You need to select some text in order to define a new searcher.', + life: 6000 + }); + return; + } + + this.showDefineSearcher = true; + this.searcherToDefineText = selectedText; + } + }, { + key: "onAddNewSearcher", + value: function onAddNewSearcher() { + this.showDefineSearcher = true; + this.searcherToDefineText = ''; + } + }, { + key: "onSearcherDefined", + value: function onSearcherDefined(definedSearcher) { + this.$toast.add({ + severity: 'success', + summary: 'Searcher defined.', + detail: 'You can use this newly defined searcher right away.', + life: 6000 + }); + this.$emit('newSearcher', definedSearcher); + this.showDefineSearcher = false; + } /** * Watch the `showDiffHighlight` property for changes * @@ -4357,12 +4534,37 @@ var ProcessFile = /*#__PURE__*/function (_Vue) { key: "onDiffHighlightChanged", value: function onDiffHighlightChanged(newValue, oldValue) {// } + }, { + key: "onSelectedSearchersChanged", + value: function onSelectedSearchersChanged() { + var _this5 = this; + + var selectedIds = Object.keys(this.selectedSearchers); + var optionsIds = Object.keys(this.searchersOptions); + selectedIds.forEach(function (selectedId) { + if (optionsIds.includes(selectedId)) { + return; + } + + _this5.$set(_this5.searchersOptions, selectedId, { + type: _this5.selectedSearchers[selectedId].tag ? 'displace' : 'replace', + value: _this5.selectedSearchers[selectedId].tag ? _this5.selectedSearchers[selectedId].tag : '' + }); + }); + optionsIds.forEach(function (optionId) { + if (selectedIds.includes(optionId)) { + return; + } + + _this5.$delete(_this5.selectedSearchers, optionId); + }); + } }]); return ProcessFile; }(vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Vue); -(0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Prop)({ +(0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Prop)({ default: { id: -1, file: '', @@ -4370,13 +4572,22 @@ var ProcessFile = /*#__PURE__*/function (_Vue) { } })], ProcessFile.prototype, "file", void 0); -(0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Prop)({ +(0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Prop)({ default: [] })], ProcessFile.prototype, "searchers", void 0); -(0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Watch)('showDiffHighlight')], ProcessFile.prototype, "onDiffHighlightChanged", null); +(0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Watch)('showDiffHighlight')], ProcessFile.prototype, "onDiffHighlightChanged", null); + +(0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Watch)('selectedSearchers', { + deep: true +})], ProcessFile.prototype, "onSelectedSearchersChanged", null); -ProcessFile = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Component], ProcessFile); +ProcessFile = (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([(0,vue_property_decorator__WEBPACK_IMPORTED_MODULE_2__.Component)({ + components: { + RadioButton: primevue_radiobutton__WEBPACK_IMPORTED_MODULE_5__.default, + DefineSearcher: _Searchers_DefineSearcher_vue__WEBPACK_IMPORTED_MODULE_4__.default + } +})], ProcessFile); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProcessFile); /***/ }), @@ -5344,6 +5555,30 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".file-card {\n flex: 0 1 49%;\n}\n.p- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[1]!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js??clonedRuleSet-16[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[1]!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js??clonedRuleSet-16[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); +// Imports + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); +// Module +___CSS_LOADER_EXPORT___.push([module.id, "#define-searcher .p-dialog-content {\n min-height: 90%;\n}", ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + /***/ }), /***/ "./node_modules/css-loader/dist/runtime/api.js": @@ -8640,6 +8875,18 @@ module.exports = __webpack_require__(/*! ./ProgressSpinner.vue */ "./node_module /***/ }), +/***/ "./node_modules/primevue/radiobutton/index.js": +/*!****************************************************!*\ + !*** ./node_modules/primevue/radiobutton/index.js ***! + \****************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +module.exports = __webpack_require__(/*! ./RadioButton.vue */ "./node_modules/primevue/radiobutton/RadioButton.vue"); + +/***/ }), + /***/ "./node_modules/primevue/ripple/Ripple.js": /*!************************************************!*\ !*** ./node_modules/primevue/ripple/Ripple.js ***! @@ -20617,6 +20864,120 @@ __webpack_require__.r(__webpack_exports__); }); +/***/ }), + +/***/ "./node_modules/primevue/radiobutton/RadioButton.vue": +/*!***********************************************************!*\ + !*** ./node_modules/primevue/radiobutton/RadioButton.vue ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _RadioButton_vue_vue_type_template_id_5686e3ea___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RadioButton.vue?vue&type=template&id=5686e3ea& */ "./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=template&id=5686e3ea&"); +/* harmony import */ var _RadioButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RadioButton.vue?vue&type=script&lang=js& */ "./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=script&lang=js&"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__.default)( + _RadioButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__.default, + _RadioButton_vue_vue_type_template_id_5686e3ea___WEBPACK_IMPORTED_MODULE_0__.render, + _RadioButton_vue_vue_type_template_id_5686e3ea___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/primevue/radiobutton/RadioButton.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _utils_ObjectUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/ObjectUtils */ "./node_modules/primevue/utils/ObjectUtils.js"); +// +// +// +// +// +// +// +// +// +// +// + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + inheritAttrs: false, + props: { + value: null, + modelValue: null + }, + model: { + prop: 'modelValue', + event: 'input' + }, + data() { + return { + focused: false + }; + }, + methods: { + onClick(event) { + if (!this.$attrs.disabled) { + this.$emit('click', event); + this.$emit('input', this.value); + this.$refs.input.focus(); + + if (!this.checked) { + this.$emit('change', event); + } + } + }, + onFocus(event) { + this.focused = true; + this.$emit('focus', event); + }, + onBlur(event) { + this.focused = false; + this.$emit('blur', event); + } + }, + computed: { + checked() { + return this.modelValue != null && _utils_ObjectUtils__WEBPACK_IMPORTED_MODULE_0__.default.equals(this.modelValue, this.value); + }, + containerClass() { + return ['p-radiobutton p-component', {'p-radiobutton-checked': this.checked, 'p-radiobutton-disabled': this.$attrs.disabled, 'p-radiobutton-focused': this.focused}]; + } + } +}); + + /***/ }), /***/ "./node_modules/primevue/scrollpanel/ScrollPanel.vue": @@ -21994,10 +22355,10 @@ component.options.__file = "resources/js/components/Searchers/Create.vue" /***/ }), -/***/ "./resources/js/components/Searchers/Index.vue": -/*!*****************************************************!*\ - !*** ./resources/js/components/Searchers/Index.vue ***! - \*****************************************************/ +/***/ "./resources/js/components/Searchers/DefineSearcher.vue": +/*!**************************************************************!*\ + !*** ./resources/js/components/Searchers/DefineSearcher.vue ***! + \**************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -22005,17 +22366,58 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _Index_vue_vue_type_template_id_9fb023f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=9fb023f4& */ "./resources/js/components/Searchers/Index.vue?vue&type=template&id=9fb023f4&"); -/* harmony import */ var _Index_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=ts& */ "./resources/js/components/Searchers/Index.vue?vue&type=script&lang=ts&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); +/* harmony import */ var _DefineSearcher_vue_vue_type_template_id_a82bcca8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DefineSearcher.vue?vue&type=template&id=a82bcca8& */ "./resources/js/components/Searchers/DefineSearcher.vue?vue&type=template&id=a82bcca8&"); +/* harmony import */ var _DefineSearcher_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DefineSearcher.vue?vue&type=script&lang=ts& */ "./resources/js/components/Searchers/DefineSearcher.vue?vue&type=script&lang=ts&"); +/* harmony import */ var _DefineSearcher_vue_vue_type_style_index_0_lang_sass___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DefineSearcher.vue?vue&type=style&index=0&lang=sass& */ "./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); +; /* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__.default)( + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__.default)( + _DefineSearcher_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__.default, + _DefineSearcher_vue_vue_type_template_id_a82bcca8___WEBPACK_IMPORTED_MODULE_0__.render, + _DefineSearcher_vue_vue_type_template_id_a82bcca8___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/components/Searchers/DefineSearcher.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./resources/js/components/Searchers/Index.vue": +/*!*****************************************************!*\ + !*** ./resources/js/components/Searchers/Index.vue ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Index_vue_vue_type_template_id_9fb023f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=9fb023f4& */ "./resources/js/components/Searchers/Index.vue?vue&type=template&id=9fb023f4&"); +/* harmony import */ var _Index_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=ts& */ "./resources/js/components/Searchers/Index.vue?vue&type=script&lang=ts&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__.default)( _Index_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_1__.default, _Index_vue_vue_type_template_id_9fb023f4___WEBPACK_IMPORTED_MODULE_0__.render, _Index_vue_vue_type_template_id_9fb023f4___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, @@ -22280,6 +22682,22 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./resources/js/components/Searchers/DefineSearcher.vue?vue&type=script&lang=ts&": +/*!***************************************************************************************!*\ + !*** ./resources/js/components/Searchers/DefineSearcher.vue?vue&type=script&lang=ts& ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_0_rules_0_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_0_rules_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6[0].rules[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefineSearcher.vue?vue&type=script&lang=ts& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/ts-loader/index.js??clonedRuleSet-6[0].rules[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=script&lang=ts&"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_5_0_rules_0_use_0_node_modules_ts_loader_index_js_clonedRuleSet_6_0_rules_0_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_script_lang_ts___WEBPACK_IMPORTED_MODULE_0__.default); + +/***/ }), + /***/ "./resources/js/components/Searchers/Index.vue?vue&type=script&lang=ts&": /*!******************************************************************************!*\ !*** ./resources/js/components/Searchers/Index.vue?vue&type=script&lang=ts& ***! @@ -23628,6 +24046,39 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ProgressSpinner_vue_vue_type_template_id_1b100530___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../vue-loader/lib/index.js??vue-loader-options!./ProgressSpinner.vue?vue&type=template&id=1b100530& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/progressspinner/ProgressSpinner.vue?vue&type=template&id=1b100530&"); +/***/ }), + +/***/ "./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_RadioButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../vue-loader/lib/index.js??vue-loader-options!./RadioButton.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=script&lang=js&"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_RadioButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__.default); + +/***/ }), + +/***/ "./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=template&id=5686e3ea&": +/*!******************************************************************************************!*\ + !*** ./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=template&id=5686e3ea& ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "render": () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_RadioButton_vue_vue_type_template_id_5686e3ea___WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ "staticRenderFns": () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_RadioButton_vue_vue_type_template_id_5686e3ea___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_RadioButton_vue_vue_type_template_id_5686e3ea___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../vue-loader/lib/index.js??vue-loader-options!./RadioButton.vue?vue&type=template&id=5686e3ea& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=template&id=5686e3ea&"); + + /***/ }), /***/ "./node_modules/primevue/scrollpanel/ScrollPanel.vue?vue&type=script&lang=js&": @@ -24012,6 +24463,23 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Create_vue_vue_type_template_id_7c8a1d78___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=template&id=7c8a1d78& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/Create.vue?vue&type=template&id=7c8a1d78&"); +/***/ }), + +/***/ "./resources/js/components/Searchers/DefineSearcher.vue?vue&type=template&id=a82bcca8&": +/*!*********************************************************************************************!*\ + !*** ./resources/js/components/Searchers/DefineSearcher.vue?vue&type=template&id=a82bcca8& ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "render": () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_template_id_a82bcca8___WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ "staticRenderFns": () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_template_id_a82bcca8___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_template_id_a82bcca8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefineSearcher.vue?vue&type=template&id=a82bcca8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=template&id=a82bcca8&"); + + /***/ }), /***/ "./resources/js/components/Searchers/Index.vue?vue&type=template&id=9fb023f4&": @@ -24539,6 +25007,23 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); +/***/ }), + +/***/ "./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass&": +/*!************************************************************************************************!*\ + !*** ./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass& ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_clonedRuleSet_16_0_rules_0_use_2_node_modules_sass_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_3_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_style_index_0_lang_sass___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??clonedRuleSet-16[0].rules[0].use[2]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefineSearcher.vue?vue&type=style&index=0&lang=sass& */ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[1]!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js??clonedRuleSet-16[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass&"); +/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_clonedRuleSet_16_0_rules_0_use_2_node_modules_sass_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_3_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_style_index_0_lang_sass___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_clonedRuleSet_16_0_rules_0_use_2_node_modules_sass_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_3_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_style_index_0_lang_sass___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {}; +/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_clonedRuleSet_16_0_rules_0_use_2_node_modules_sass_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_3_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_style_index_0_lang_sass___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_clonedRuleSet_16_0_rules_0_use_2_node_modules_sass_loader_dist_cjs_js_clonedRuleSet_16_0_rules_0_use_3_node_modules_vue_loader_lib_index_js_vue_loader_options_DefineSearcher_vue_vue_type_style_index_0_lang_sass___WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__] +/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/blockui/BlockUI.vue?vue&type=template&id=b855789c&": @@ -28930,6 +29415,83 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=template&id=5686e3ea&": +/*!*********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/radiobutton/RadioButton.vue?vue&type=template&id=5686e3ea& ***! + \*********************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "render": () => (/* binding */ render), +/* harmony export */ "staticRenderFns": () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + class: _vm.containerClass, + on: { + click: function($event) { + return _vm.onClick($event) + } + } + }, + [ + _c("div", { staticClass: "p-hidden-accessible" }, [ + _c( + "input", + _vm._b( + { + ref: "input", + attrs: { type: "radio" }, + domProps: { checked: _vm.checked, value: _vm.value }, + on: { + focus: function($event) { + return _vm.onFocus($event) + }, + blur: function($event) { + return _vm.onBlur($event) + } + } + }, + "input", + _vm.$attrs, + false + ) + ) + ]), + _vm._v(" "), + _c( + "div", + { + ref: "box", + class: [ + "p-radiobutton-box", + { + "p-highlight": _vm.checked, + "p-disabled": _vm.$attrs.disabled, + "p-focus": _vm.focused + } + ], + attrs: { role: "radio", "aria-checked": _vm.checked } + }, + [_c("div", { staticClass: "p-radiobutton-icon" })] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/primevue/scrollpanel/ScrollPanel.vue?vue&type=template&id=7c154104&": @@ -29383,8 +29945,15 @@ var render = function() { ] : [ _c("process-file", { - attrs: { file: _vm.uploadResult, searchers: _vm.searchers }, - on: { newFile: _vm.uploadNewFile, error: _vm.onError } + attrs: { + file: _vm.uploadResult, + searchers: _vm.availableSearchers + }, + on: { + newFile: _vm.uploadNewFile, + newSearcher: _vm.onNewSearcher, + error: _vm.onError + } }) ] ] @@ -29459,6 +30028,23 @@ var render = function() { key: "right", fn: function() { return [ + _c("Button", { + staticClass: + "p-button p-button-outlined p-button-secondary p-button-sm", + attrs: { + type: "button", + label: "Add new searcher" + }, + on: { click: _vm.onAddNewSearcher } + }), + _vm._v(" "), + _c("Button", { + staticClass: + "p-button p-button-outlined p-button-primary p-button-sm", + attrs: { type: "button", label: "Define searcher" }, + on: { click: _vm.onDefineSearcher } + }), + _vm._v(" "), _c("Button", { staticClass: "p-button-success p-button-outlined p-button-sm", @@ -29601,7 +30187,7 @@ var render = function() { staticClass: "p-button-success p-button-outlined p-button-sm", attrs: { - label: "Run filters", + label: "Run S&D", icon: "pi pi-play", disabled: !_vm.canRunSearchers() }, @@ -29882,67 +30468,154 @@ var render = function() { return [ _c("div", { staticClass: "options-subtable" }, [ _c("div", { staticClass: "p-fluid" }, [ - _c( - "div", - { staticClass: "p-field" }, - [ - _c( - "label", - { + _c("div", { staticClass: "p-field" }, [ + _c( + "div", + { staticClass: "p-field-radiobutton" }, + [ + _c("RadioButton", { attrs: { - for: "replace_with__" + slotProps.data.id + name: "action_type", + id: "action_type_replace", + value: "replace" + }, + model: { + value: + _vm.searchersOptions[slotProps.data.id] + .type, + callback: function($$v) { + _vm.$set( + _vm.searchersOptions[slotProps.data.id], + "type", + $$v + ) + }, + expression: + "searchersOptions[slotProps.data.id].type" } - }, - [ - _vm._v( - "\n Replace values with:\n " - ) - ] - ), - _vm._v(" "), - _c("InputText", { - directives: [ - { - name: "tooltip", - rawName: "v-tooltip.top", + }), + _vm._v(" "), + _c( + "label", + { attrs: { for: "action_type_replace" } }, + [_vm._v("Replace")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "p-field-radiobutton" }, + [ + _c("RadioButton", { + attrs: { + name: "action_type", + id: "action_type_displace", + value: "displace" + }, + model: { value: - slotProps.data.param === "required" - ? "This field is required." - : null, + _vm.searchersOptions[slotProps.data.id] + .type, + callback: function($$v) { + _vm.$set( + _vm.searchersOptions[slotProps.data.id], + "type", + $$v + ) + }, expression: - "\n (slotProps.data.param === 'required') ?\n 'This field is required.' : null\n ", - modifiers: { top: true } + "searchersOptions[slotProps.data.id].type" } - ], - staticClass: "p-inputtext-sm", - class: { - "p-invalid": !_vm.isValidParam( - slotProps.data.id, - slotProps.data.param - ) - }, + }), + _vm._v(" "), + _c( + "label", + { attrs: { for: "action_type_displace" } }, + [_vm._v("Displace")] + ) + ], + 1 + ) + ]) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "p-field" }, + [ + _c( + "label", + { attrs: { - id: "replace_with__" + slotProps.data.id, - type: "text" - }, - model: { + for: "displace_with__" + slotProps.data.id + } + }, + [ + _c("span", [ + _vm._v( + "\n " + + _vm._s( + _vm.searchersOptions[slotProps.data.id] + .type === "replace" + ? "Replace" + : "Displace (tag)" + ) + + "\n " + ) + ]), + _vm._v(" "), + _c("span", [ + _vm._v( + "\n values with:\n " + ) + ]) + ] + ), + _vm._v(" "), + _c("InputText", { + directives: [ + { + name: "tooltip", + rawName: "v-tooltip.top", value: - _vm.searchersOptions[slotProps.data.id], - callback: function($$v) { - _vm.$set( - _vm.searchersOptions, - slotProps.data.id, - $$v - ) - }, + slotProps.data.param === "required" + ? "This field is required." + : null, expression: - "searchersOptions[slotProps.data.id]" + "\n (slotProps.data.param === 'required') ?\n 'This field is required.' : null\n ", + modifiers: { top: true } } - }) - ], - 1 - ) - ]) + ], + staticClass: "p-inputtext-sm", + class: { + "p-invalid": !_vm.isValidParam( + slotProps.data.id, + slotProps.data.param + ) + }, + attrs: { + id: "displace_with__" + slotProps.data.id, + type: "text" + }, + model: { + value: + _vm.searchersOptions[slotProps.data.id].value, + callback: function($$v) { + _vm.$set( + _vm.searchersOptions[slotProps.data.id], + "value", + $$v + ) + }, + expression: + "searchersOptions[slotProps.data.id].value" + } + }) + ], + 1 + ) ]) ] } @@ -30047,7 +30720,19 @@ var render = function() { }) ], 1 - ) + ), + _vm._v(" "), + _vm.showDefineSearcher + ? _c("define-searcher", { + attrs: { text: _vm.searcherToDefineText }, + on: { + done: _vm.onSearcherDefined, + close: function($event) { + _vm.showDefineSearcher = false + } + } + }) + : _vm._e() ], 1 ) @@ -30091,7 +30776,6 @@ var render = function() { { staticClass: "p-float-label" }, [ _c("InputText", { - staticClass: "p-inputtext-sm", attrs: { type: "text", name: "name", id: "name" }, model: { value: _vm.name, @@ -30111,10 +30795,34 @@ var render = function() { ]) : _vm._e(), _vm._v(" "), + _c("div", { staticClass: "p-field" }, [ + _c( + "span", + { staticClass: "p-float-label" }, + [ + _c("InputText", { + attrs: { type: "text", name: "tag", id: "tag" }, + model: { + value: _vm.tag, + callback: function($$v) { + _vm.tag = $$v + }, + expression: "tag" + } + }), + _vm._v(" "), + _c("label", { attrs: { for: "tag" } }, [ + _vm._v("Enter searcher tag (optional)") + ]) + ], + 1 + ) + ]), + _vm._v(" "), _c( "Button", { - staticClass: "p-button-sm p-button-raised", + staticClass: "p-button-raised", attrs: { disabled: (!_vm.name && !_vm.regex) || !_vm.pattern }, on: { click: _vm.onSave } }, @@ -30875,7 +31583,10 @@ var render = function() { var _c = _vm._self._c || _h return _c( "div", - { attrs: { id: "searchers-create" } }, + { + class: { "is-defining": _vm.isDefining }, + attrs: { id: "searchers-create" } + }, [ _c( "div", @@ -30910,6 +31621,26 @@ var render = function() { 1 ), _vm._v(" "), + _c( + "div", + [ + _c("h3", [_vm._v("Default tag (optional)")]), + _vm._v(" "), + _c("InputText", { + staticClass: "input", + attrs: { type: "text", placeholder: "Enter the default tag" }, + model: { + value: _vm.tag, + callback: function($$v) { + _vm.tag = $$v + }, + expression: "tag" + } + }) + ], + 1 + ), + _vm._v(" "), _vm.standalone ? _c("div", [ _c("p", [ @@ -30983,6 +31714,59 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=template&id=a82bcca8&": +/*!************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=template&id=a82bcca8& ***! + \************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "render": () => (/* binding */ render), +/* harmony export */ "staticRenderFns": () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "Dialog", + { + ref: "define-searcher", + style: { width: "95vw", height: "95vh" }, + attrs: { + header: "Define searcher", + visible: _vm.showDialog, + maximizable: true, + modal: true, + "block-scroll": true, + contentStyle: { overflow: "visible" }, + baseZIndex: 2014, + id: "define-searcher" + }, + on: { + "update:visible": function($event) { + _vm.showDialog = $event + } + } + }, + [ + _c("create-searcher", { + attrs: { "is-defining": true, "defined-searcher": _vm.text }, + on: { defined: _vm.onDefined } + }) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/Index.vue?vue&type=template&id=9fb023f4&": @@ -32488,6 +33272,27 @@ if(false) {} /***/ }), +/***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[1]!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js??clonedRuleSet-16[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass&": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[1]!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js??clonedRuleSet-16[0].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-16[0].rules[0].use[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Searchers/DefineSearcher.vue?vue&type=style&index=0&lang=sass& ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// style-loader: Adds some css to the DOM by adding a diff --git a/resources/js/services/ApiService.ts b/resources/js/services/ApiService.ts index 2429565..1ffb5ae 100644 --- a/resources/js/services/ApiService.ts +++ b/resources/js/services/ApiService.ts @@ -73,7 +73,7 @@ export default class ApiService { * @param {string} content The content of the document * @param {Array} searchers The list of searchers and their replace values */ - public async filterDocument(content: string, searchers: Array<{ key: string; replace_with: string; }>) { + public async filterDocument(content: string, searchers: Array<{ key: string; type: string; value: string; }>) { try { let response = await axios.post( this.apiRoutes.searchAndDisplace, diff --git a/resources/sass/components/_index.sass b/resources/sass/components/_index.sass index 45edfe4..4bb8764 100644 --- a/resources/sass/components/_index.sass +++ b/resources/sass/components/_index.sass @@ -1 +1,2 @@ @import "regex/index" +@import "searchers/index" diff --git a/resources/sass/components/searchers/_create.sass b/resources/sass/components/searchers/_create.sass new file mode 100644 index 0000000..10cb0f0 --- /dev/null +++ b/resources/sass/components/searchers/_create.sass @@ -0,0 +1,3 @@ +#searchers-create.is-defining + max-height: 100% + overflow-y: auto diff --git a/resources/sass/components/searchers/_index.sass b/resources/sass/components/searchers/_index.sass new file mode 100644 index 0000000..d975d9a --- /dev/null +++ b/resources/sass/components/searchers/_index.sass @@ -0,0 +1 @@ +@import "create"