From 95e659a0548e1396f7a8b4ce23f36367ad0d1b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Vo=C5=99=C3=AD=C5=A1ek?= Date: Mon, 12 Dec 2022 11:57:06 +0100 Subject: [PATCH] Remove redundant parentheses in JS (#1949) --- js/.eslint/index.js | 23 ++++++ js/.eslint/no-extra-parens-rule.js | 17 ++++ js/.eslint/package.json | 11 +++ js/.eslintrc.js | 80 ++++++++++--------- js/package-lock.json | 37 +++++++++ js/package.json | 1 + js/src/plugins/column-resizer.plugin.js | 2 +- js/src/plugins/scroll.plugin.js | 2 +- js/src/services/form.service.js | 4 +- js/src/services/modal.service.js | 2 +- js/src/services/panel.service.js | 4 +- js/src/services/upload.service.js | 2 +- .../vue-components/item-search.component.js | 4 +- .../multiline/multiline.component.js | 2 +- .../tree-item-selector.component.js | 4 +- public/js/atk-vue-item-search.js.map | 2 +- public/js/atk-vue-item-search.min.js.map | 2 +- public/js/atk-vue-multiline.js.map | 2 +- public/js/atk-vue-multiline.min.js.map | 2 +- public/js/atk-vue-tree-item-selector.js.map | 2 +- .../js/atk-vue-tree-item-selector.min.js.map | 2 +- public/js/atkjs-ui.js.map | 2 +- public/js/atkjs-ui.min.js.map | 2 +- src/View.php | 17 ++-- 24 files changed, 159 insertions(+), 69 deletions(-) create mode 100644 js/.eslint/index.js create mode 100644 js/.eslint/no-extra-parens-rule.js create mode 100644 js/.eslint/package.json diff --git a/js/.eslint/index.js b/js/.eslint/index.js new file mode 100644 index 0000000000..b29ca41234 --- /dev/null +++ b/js/.eslint/index.js @@ -0,0 +1,23 @@ +module.exports = { + rules: { + 'no-extra-parens': require('./no-extra-parens-rule'), + }, + configs: { + recommended: { + plugins: [ + '@internal/eslint-plugin', + ], + rules: { + // https://github.com/eslint/eslint/issues/16626 + // https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L66 + '@internal/no-extra-parens': ['error', 'all', { + conditionalAssign: true, + enforceForArrowConditionals: false, + ignoreJSX: 'all', + nestedBinaryExpressions: false, + returnAssign: false, + }], + }, + }, + }, +}; diff --git a/js/.eslint/no-extra-parens-rule.js b/js/.eslint/no-extra-parens-rule.js new file mode 100644 index 0000000000..ca92017190 --- /dev/null +++ b/js/.eslint/no-extra-parens-rule.js @@ -0,0 +1,17 @@ +const eslint = require('eslint'); +const ruleComposer = require('eslint-rule-composer'); + +const rule = new eslint.Linter().getRules().get('no-extra-parens'); + +module.exports = ruleComposer.filterReports( + rule, + (problem) => { + if (problem.node.type === 'ConditionalExpression' + && (problem.node.parent.type === 'ConditionalExpression' || problem.node.parent.type === 'SpreadElement') + ) { + return false; + } + + return problem; + } +); diff --git a/js/.eslint/package.json b/js/.eslint/package.json new file mode 100644 index 0000000000..2a840dca60 --- /dev/null +++ b/js/.eslint/package.json @@ -0,0 +1,11 @@ +{ + "name": "@internal/eslint-plugin", + "version": "1.0.0", + "private": true, + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "peerDependencies": { + "eslint": "*" + } +} diff --git a/js/.eslintrc.js b/js/.eslintrc.js index fbbceb1bf2..5424a5a1c5 100644 --- a/js/.eslintrc.js +++ b/js/.eslintrc.js @@ -8,6 +8,7 @@ module.exports = { 'airbnb-base', 'plugin:unicorn/recommended', 'plugin:vue/vue3-recommended', + 'plugin:@internal/eslint-plugin/recommended', ], parserOptions: { ecmaVersion: '2020', @@ -17,60 +18,61 @@ module.exports = { 'import/resolver': 'webpack', }, rules: { - indent: ['error', 4, { SwitchCase: 1 }], - curly: ['error', 'all'], - 'object-shorthand': ['error', 'never'], - 'func-names': ['error', 'never'], - 'no-param-reassign': 'off', 'class-methods-use-this': 'off', - 'no-plusplus': 'off', + 'comma-dangle': ['error', { + arrays: 'always-multiline', + exports: 'always-multiline', + functions: 'never', + imports: 'always-multiline', + objects: 'always-multiline', + }], 'consistent-return': 'off', - 'no-nested-ternary': 'off', + curly: ['error', 'all'], 'default-case': 'off', + 'func-names': ['error', 'never'], + 'import/extensions': ['error', 'always', { + '': 'never', + js: 'never', + vue: 'never', + }], + 'import/no-unresolved': 'off', + 'import/prefer-default-export': 'off', + indent: ['error', 4, { + SwitchCase: 1, + }], + 'jsdoc/check-line-alignment': ['error', 'always'], + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-param': 'off', + 'jsdoc/require-param-description': 'off', + 'jsdoc/require-returns': 'off', + 'jsdoc/require-returns-description': 'off', + 'linebreak-style': ['error', 'unix'], + 'max-len': 'off', 'no-console': ['error', { allow: ['warn', 'error'] }], + 'no-nested-ternary': 'off', + 'no-param-reassign': 'off', + 'no-plusplus': 'off', 'no-restricted-syntax': 'off', 'no-underscore-dangle': 'off', - 'max-len': 'off', - 'prefer-template': 'off', 'no-unused-vars': ['error', { vars: 'all', args: 'none' }], + 'object-shorthand': ['error', 'never'], 'padding-line-between-statements': ['error', { blankLine: 'always', - prev: '*', next: ['continue', 'break', 'export', 'return', 'throw'], + prev: '*', }], + 'prefer-template': 'off', 'spaced-comment': ['error', 'always', { - line: { - markers: ['/'], - exceptions: ['-', '+'], - }, block: { - markers: ['!'], - exceptions: ['*'], balanced: true, + exceptions: ['*'], + markers: ['!'], + }, + line: { + exceptions: ['-', '+'], + markers: ['/'], }, }], - 'comma-dangle': ['error', { - arrays: 'always-multiline', - objects: 'always-multiline', - functions: 'never', - imports: 'always-multiline', - exports: 'always-multiline', - }], - 'import/no-unresolved': 'off', - 'import/prefer-default-export': 'off', - 'import/extensions': ['error', 'always', { - '': 'never', - js: 'never', - vue: 'never', - }], - 'vue/html-indent': ['error', 4], - 'vue/attribute-hyphenation': ['error', 'never'], - 'jsdoc/require-param': 'off', - 'jsdoc/require-param-description': 'off', - 'jsdoc/require-returns': 'off', - 'jsdoc/require-returns-description': 'off', - 'jsdoc/require-jsdoc': 'off', - 'jsdoc/check-line-alignment': ['error', 'always'], 'unicorn/catch-error-name': 'off', 'unicorn/no-array-callback-reference': 'off', 'unicorn/no-lonely-if': 'off', @@ -80,6 +82,8 @@ module.exports = { 'unicorn/prefer-module': 'off', 'unicorn/prevent-abbreviations': 'off', 'unicorn/switch-case-braces': ['error', 'avoid'], + 'vue/attribute-hyphenation': ['error', 'never'], + 'vue/html-indent': ['error', 4], }, reportUnusedDisableDirectives: true, }; diff --git a/js/package-lock.json b/js/package-lock.json index 5716c98873..71556aacc0 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -24,6 +24,7 @@ "@babel/core": "^7.19.6", "@babel/plugin-transform-runtime": "^7.19.6", "@babel/preset-env": "^7.19.4", + "@internal/eslint-plugin": "file:.eslint", "babel-loader": "^8.2.5", "css-loader": "^6.7.1", "eslint": "^8.28.0", @@ -41,6 +42,17 @@ "webpack-cli": "^4.10.0" } }, + ".eslint": { + "name": "@internal/eslint-plugin", + "version": "1.0.0", + "dev": true, + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "peerDependencies": { + "eslint": "*" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -1778,6 +1790,10 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@internal/eslint-plugin": { + "resolved": ".eslint", + "link": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -3450,6 +3466,15 @@ "node": ">=10" } }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", @@ -7856,6 +7881,12 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@internal/eslint-plugin": { + "version": "file:.eslint", + "requires": { + "eslint-rule-composer": "^0.3.0" + } + }, "@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -9258,6 +9289,12 @@ } } }, + "eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true + }, "eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", diff --git a/js/package.json b/js/package.json index 8757516224..26802e0e7a 100644 --- a/js/package.json +++ b/js/package.json @@ -37,6 +37,7 @@ "@babel/core": "^7.19.6", "@babel/plugin-transform-runtime": "^7.19.6", "@babel/preset-env": "^7.19.4", + "@internal/eslint-plugin": "file:.eslint", "babel-loader": "^8.2.5", "css-loader": "^6.7.1", "eslint": "^8.28.0", diff --git a/js/src/plugins/column-resizer.plugin.js b/js/src/plugins/column-resizer.plugin.js index 535a9224a5..927dd01b54 100644 --- a/js/src/plugins/column-resizer.plugin.js +++ b/js/src/plugins/column-resizer.plugin.js @@ -8,7 +8,7 @@ import AtkPlugin from './atk.plugin'; export default class AtkColumnResizerPlugin extends AtkPlugin { main() { this.settings.onResize = this.onResize.bind(this); - this.resizable = new Resizer(this.$el[0], ({ ...this.settings.atkDefaults, ...this.settings })); + this.resizable = new Resizer(this.$el[0], { ...this.settings.atkDefaults, ...this.settings }); // reset padding class. this.$el.removeClass('grip-padding'); diff --git a/js/src/plugins/scroll.plugin.js b/js/src/plugins/scroll.plugin.js index 34af300e94..35cb3dcc0e 100644 --- a/js/src/plugins/scroll.plugin.js +++ b/js/src/plugins/scroll.plugin.js @@ -40,7 +40,7 @@ export default class AtkScrollPlugin extends AtkPlugin { this.setTableHeader(); } else { // check if scroll apply vs Window or inside our element. - this.isWindow = (this.$el.css('overflow-y') === 'visible'); + this.isWindow = this.$el.css('overflow-y') === 'visible'; this.$scroll = this.isWindow ? $(window) : this.$el; // is Inner the element itself or it's children. this.$inner = this.isWindow ? this.$el : this.$el.children(); diff --git a/js/src/services/form.service.js b/js/src/services/form.service.js index 15c582e900..1ace67034f 100644 --- a/js/src/services/form.service.js +++ b/js/src/services/form.service.js @@ -162,7 +162,7 @@ class FormService { return false; } - return (rule.value === undefined || rule.value === null) + return rule.value === undefined || rule.value === null ? rule.type.match(this.formSettings.regExp.bracket)[1] + '' : rule.value; } @@ -176,7 +176,7 @@ class FormService { } isBracketedRule(rule) { - return (rule.type && rule.type.match(this.formSettings.regExp.bracket)); + return rule.type && rule.type.match(this.formSettings.regExp.bracket); } } diff --git a/js/src/services/modal.service.js b/js/src/services/modal.service.js index 75bb8df5ee..738354ba58 100644 --- a/js/src/services/modal.service.js +++ b/js/src/services/modal.service.js @@ -150,7 +150,7 @@ class ModalService { doAutoFocus($modal) { const inputs = $modal.find('[tabindex], :input').filter(':visible'); const autofocus = inputs.filter('[autofocus]'); - const input = (autofocus.length > 0) ? autofocus.first() : inputs.first(); + const input = autofocus.length > 0 ? autofocus.first() : inputs.first(); if (input.length > 0) { input.focus().select(); diff --git a/js/src/services/panel.service.js b/js/src/services/panel.service.js index c93a70c453..dd81bf04ec 100644 --- a/js/src/services/panel.service.js +++ b/js/src/services/panel.service.js @@ -313,7 +313,7 @@ class PanelService { const triggerElement = this.getPropertyValue(id, 'triggerElement'); let isSame = false; if (el && triggerElement) { - isSame = (el.length === triggerElement.length && el.length === el.filter(triggerElement).length); + isSame = el.length === triggerElement.length && el.length === el.filter(triggerElement).length; } return isSame; @@ -365,7 +365,7 @@ class PanelService { * @returns {boolean} */ needConfirmation(id) { - return (this.getPropertyValue(id, 'modal') && this.isWarningOn(id)); + return this.getPropertyValue(id, 'modal') && this.isWarningOn(id); } /** diff --git a/js/src/services/upload.service.js b/js/src/services/upload.service.js index 4e18aa8207..8c4c826558 100644 --- a/js/src/services/upload.service.js +++ b/js/src/services/upload.service.js @@ -28,7 +28,7 @@ class UploadService { const formData = new FormData(); for (let i = 0; i < files.length; i++) { - const param = (i === 0) ? 'file' : 'file-' + i; + const param = i === 0 ? 'file' : 'file-' + i; formData.append(param, files.item(i)); } diff --git a/js/src/vue-components/item-search.component.js b/js/src/vue-components/item-search.component.js index 336c9a6702..39c0a0c8bc 100644 --- a/js/src/vue-components/item-search.component.js +++ b/js/src/vue-components/item-search.component.js @@ -48,7 +48,7 @@ export default { computed: { classIcon: function () { return { - 'search icon': (this.query === null || this.query === ''), + 'search icon': this.query === null || this.query === '', 'remove icon': this.query !== null, }; }, @@ -100,7 +100,7 @@ export default { url: this.url, data: options, method: 'GET', - stateContext: (this.context) ? $(this.context) : $(this.$el), + stateContext: this.context ? $(this.context) : $(this.$el), onComplete: function (e, r) { that.isActive = false; }, diff --git a/js/src/vue-components/multiline/multiline.component.js b/js/src/vue-components/multiline/multiline.component.js index 29919b2da8..4198b29a51 100644 --- a/js/src/vue-components/multiline/multiline.component.js +++ b/js/src/vue-components/multiline/multiline.component.js @@ -258,7 +258,7 @@ export default { getUUID: function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replaceAll(/[xy]/g, (c) => { const r = Math.floor(Math.random() * 16); - const v = c === 'x' ? r : (r & (0x3 | 0x8)); // eslint-disable-line no-bitwise + const v = c === 'x' ? r : r & (0x3 | 0x8); // eslint-disable-line no-bitwise return v.toString(16); }); diff --git a/js/src/vue-components/tree-item-selector/tree-item-selector.component.js b/js/src/vue-components/tree-item-selector/tree-item-selector.component.js index 7850530315..517bf1361c 100644 --- a/js/src/vue-components/tree-item-selector/tree-item-selector.component.js +++ b/js/src/vue-components/tree-item-selector/tree-item-selector.component.js @@ -47,7 +47,7 @@ export default { computed: { itemMargin: function () { return { - marginLeft: (this.item.nodes && this.item.nodes.length > 0) + marginLeft: this.item.nodes && this.item.nodes.length > 0 ? (this.open ? '-13px' : '-10px') : null, }; @@ -61,7 +61,7 @@ export default { return this.item.name; }, isParent: function () { - return (this.nodes && this.nodes.length > 0); + return this.nodes && this.nodes.length > 0; }, toggleIcon: function () { return this.isParent diff --git a/public/js/atk-vue-item-search.js.map b/public/js/atk-vue-item-search.js.map index ccce0de5ec..e063791500 100644 --- a/public/js/atk-vue-item-search.js.map +++ b/public/js/atk-vue-item-search.js.map @@ -1 +1 @@ -{"version":3,"file":"js/atk-vue-item-search.js","mappings":"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","sources":["webpack://atk/./src/vue-components/item-search.component.js"],"sourcesContent":["import $ from 'external/jquery';\nimport atk from 'atk';\n\n/**\n * Will allow user to send data query request to server.\n * Request should filter the data and reload the data view.\n * The request is send using Fomantic-UI api.\n *\n * Properties need for this component are:\n * context: string, a jQuery selector where the 'loading' class will be apply by Fomantic-UI - default to this component.\n * url: string, the URL to call.\n * q: string, the initial string for the query. Useful if this search is part of the relaod.\n * reload: string, an Id selector for jQuery, '#' is append automatically.\n */\nexport default {\n name: 'AtkItemSearch',\n template: `\n
\n \n \n \n
`,\n props: {\n context: String,\n url: String,\n q: String,\n reload: String,\n queryArg: String,\n options: Object,\n },\n data: function () {\n return {\n query: this.q,\n temp: this.q,\n isActive: false,\n extraQuery: null,\n inputCss: this.options.inputCss,\n };\n },\n computed: {\n classIcon: function () {\n return {\n 'search icon': (this.query === null || this.query === ''),\n 'remove icon': this.query !== null,\n };\n },\n },\n methods: {\n onKeyup: function () {\n if (!this.onKeyup.debouncedFx) {\n this.onKeyup.debouncedFx = atk.createDebouncedFx((e) => {\n this.onKeyup.debouncedFx = null;\n if (this.query !== this.temp) {\n if (this.query === '') {\n this.query = null;\n }\n this.sendQuery();\n this.temp = this.query;\n }\n }, this.options.inputTimeOut);\n }\n this.onKeyup.debouncedFx.call(this);\n },\n onEscape: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onEnter: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onClear: function () {\n if (this.query) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n sendQuery: function () {\n const that = this;\n const options = $.extend({}, this.extraQuery, { __atk_reload: this.reload, [this.queryArg]: this.query });\n const $reload = $('#' + this.reload);\n this.isActive = true;\n $reload.api({\n on: 'now',\n url: this.url,\n data: options,\n method: 'GET',\n stateContext: (this.context) ? $(this.context) : $(this.$el),\n onComplete: function (e, r) {\n that.isActive = false;\n },\n });\n },\n },\n};\n"],"names":["$","atk","name","template","props","context","String","url","q","reload","queryArg","options","Object","data","query","temp","isActive","extraQuery","inputCss","computed","classIcon","methods","onKeyup","debouncedFx","createDebouncedFx","e","sendQuery","inputTimeOut","call","onEscape","onEnter","onClear","that","extend","__atk_reload","$reload","api","on","method","stateContext","$el","onComplete","r"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/atk-vue-item-search.js","mappings":"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","sources":["webpack://atk/./src/vue-components/item-search.component.js"],"sourcesContent":["import $ from 'external/jquery';\nimport atk from 'atk';\n\n/**\n * Will allow user to send data query request to server.\n * Request should filter the data and reload the data view.\n * The request is send using Fomantic-UI api.\n *\n * Properties need for this component are:\n * context: string, a jQuery selector where the 'loading' class will be apply by Fomantic-UI - default to this component.\n * url: string, the URL to call.\n * q: string, the initial string for the query. Useful if this search is part of the relaod.\n * reload: string, an Id selector for jQuery, '#' is append automatically.\n */\nexport default {\n name: 'AtkItemSearch',\n template: `\n
\n \n \n \n
`,\n props: {\n context: String,\n url: String,\n q: String,\n reload: String,\n queryArg: String,\n options: Object,\n },\n data: function () {\n return {\n query: this.q,\n temp: this.q,\n isActive: false,\n extraQuery: null,\n inputCss: this.options.inputCss,\n };\n },\n computed: {\n classIcon: function () {\n return {\n 'search icon': this.query === null || this.query === '',\n 'remove icon': this.query !== null,\n };\n },\n },\n methods: {\n onKeyup: function () {\n if (!this.onKeyup.debouncedFx) {\n this.onKeyup.debouncedFx = atk.createDebouncedFx((e) => {\n this.onKeyup.debouncedFx = null;\n if (this.query !== this.temp) {\n if (this.query === '') {\n this.query = null;\n }\n this.sendQuery();\n this.temp = this.query;\n }\n }, this.options.inputTimeOut);\n }\n this.onKeyup.debouncedFx.call(this);\n },\n onEscape: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onEnter: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onClear: function () {\n if (this.query) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n sendQuery: function () {\n const that = this;\n const options = $.extend({}, this.extraQuery, { __atk_reload: this.reload, [this.queryArg]: this.query });\n const $reload = $('#' + this.reload);\n this.isActive = true;\n $reload.api({\n on: 'now',\n url: this.url,\n data: options,\n method: 'GET',\n stateContext: this.context ? $(this.context) : $(this.$el),\n onComplete: function (e, r) {\n that.isActive = false;\n },\n });\n },\n },\n};\n"],"names":["$","atk","name","template","props","context","String","url","q","reload","queryArg","options","Object","data","query","temp","isActive","extraQuery","inputCss","computed","classIcon","methods","onKeyup","debouncedFx","createDebouncedFx","e","sendQuery","inputTimeOut","call","onEscape","onEnter","onClear","that","extend","__atk_reload","$reload","api","on","method","stateContext","$el","onComplete","r"],"sourceRoot":""} \ No newline at end of file diff --git a/public/js/atk-vue-item-search.min.js.map b/public/js/atk-vue-item-search.min.js.map index 4027f8202a..27086df321 100644 --- a/public/js/atk-vue-item-search.min.js.map +++ b/public/js/atk-vue-item-search.min.js.map @@ -1 +1 @@ -{"version":3,"file":"js/atk-vue-item-search.min.js","mappings":"2JAcA,SACIA,KAAM,gBACNC,SAAW,8eAcXC,MAAO,CACHC,QAASC,OACTC,IAAKD,OACLE,EAAGF,OACHG,OAAQH,OACRI,SAAUJ,OACVK,QAASC,QAEbC,KAAM,WACF,MAAO,CACHC,MAAOC,KAAKP,EACZQ,KAAMD,KAAKP,EACXS,UAAU,EACVC,WAAY,KACZC,SAAUJ,KAAKJ,QAAQQ,SAE/B,EACAC,SAAU,CACNC,UAAW,WACP,MAAO,CACH,cAA+B,OAAfN,KAAKD,OAAiC,KAAfC,KAAKD,MAC5C,cAA8B,OAAfC,KAAKD,MAE5B,GAEJQ,QAAS,CACLC,QAAS,WACAR,KAAKQ,QAAQC,cACdT,KAAKQ,QAAQC,YAAcC,EAAAA,EAAAA,mBAAuBC,IAC9CX,KAAKQ,QAAQC,YAAc,KACvBT,KAAKD,QAAUC,KAAKC,OACD,KAAfD,KAAKD,QACLC,KAAKD,MAAQ,MAEjBC,KAAKY,YACLZ,KAAKC,KAAOD,KAAKD,MACrB,GACDC,KAAKJ,QAAQiB,eAEpBb,KAAKQ,QAAQC,YAAYK,KAAKd,KAClC,EACAe,SAAU,WACa,OAAff,KAAKD,QACLC,KAAKD,MAAQ,KACbC,KAAKC,KAAO,KACZD,KAAKY,YAEb,EACAI,QAAS,WACc,OAAfhB,KAAKD,QACLC,KAAKD,MAAQ,KACbC,KAAKC,KAAO,KACZD,KAAKY,YAEb,EACAK,QAAS,WACDjB,KAAKD,QACLC,KAAKD,MAAQ,KACbC,KAAKC,KAAO,KACZD,KAAKY,YAEb,EACAA,UAAW,WACP,MAAMM,EAAOlB,KACPJ,EAAUuB,IAAAA,OAAS,CAAC,EAAGnB,KAAKG,WAAY,CAAEiB,aAAcpB,KAAKN,OAAQ,CAACM,KAAKL,UAAWK,KAAKD,QAC3FsB,EAAUF,IAAE,IAAMnB,KAAKN,QAC7BM,KAAKE,UAAW,EAChBmB,EAAQC,IAAI,CACRC,GAAI,MACJ/B,IAAKQ,KAAKR,IACVM,KAAMF,EACN4B,OAAQ,MACRC,aAAezB,KAAKV,QAAW6B,IAAEnB,KAAKV,SAAW6B,IAAEnB,KAAK0B,KACxDC,WAAY,SAAUhB,EAAGiB,GACrBV,EAAKhB,UAAW,CACpB,GAER,G","sources":["webpack://atk/./src/vue-components/item-search.component.js"],"sourcesContent":["import $ from 'external/jquery';\nimport atk from 'atk';\n\n/**\n * Will allow user to send data query request to server.\n * Request should filter the data and reload the data view.\n * The request is send using Fomantic-UI api.\n *\n * Properties need for this component are:\n * context: string, a jQuery selector where the 'loading' class will be apply by Fomantic-UI - default to this component.\n * url: string, the URL to call.\n * q: string, the initial string for the query. Useful if this search is part of the relaod.\n * reload: string, an Id selector for jQuery, '#' is append automatically.\n */\nexport default {\n name: 'AtkItemSearch',\n template: `\n
\n \n \n \n
`,\n props: {\n context: String,\n url: String,\n q: String,\n reload: String,\n queryArg: String,\n options: Object,\n },\n data: function () {\n return {\n query: this.q,\n temp: this.q,\n isActive: false,\n extraQuery: null,\n inputCss: this.options.inputCss,\n };\n },\n computed: {\n classIcon: function () {\n return {\n 'search icon': (this.query === null || this.query === ''),\n 'remove icon': this.query !== null,\n };\n },\n },\n methods: {\n onKeyup: function () {\n if (!this.onKeyup.debouncedFx) {\n this.onKeyup.debouncedFx = atk.createDebouncedFx((e) => {\n this.onKeyup.debouncedFx = null;\n if (this.query !== this.temp) {\n if (this.query === '') {\n this.query = null;\n }\n this.sendQuery();\n this.temp = this.query;\n }\n }, this.options.inputTimeOut);\n }\n this.onKeyup.debouncedFx.call(this);\n },\n onEscape: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onEnter: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onClear: function () {\n if (this.query) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n sendQuery: function () {\n const that = this;\n const options = $.extend({}, this.extraQuery, { __atk_reload: this.reload, [this.queryArg]: this.query });\n const $reload = $('#' + this.reload);\n this.isActive = true;\n $reload.api({\n on: 'now',\n url: this.url,\n data: options,\n method: 'GET',\n stateContext: (this.context) ? $(this.context) : $(this.$el),\n onComplete: function (e, r) {\n that.isActive = false;\n },\n });\n },\n },\n};\n"],"names":["name","template","props","context","String","url","q","reload","queryArg","options","Object","data","query","this","temp","isActive","extraQuery","inputCss","computed","classIcon","methods","onKeyup","debouncedFx","atk","e","sendQuery","inputTimeOut","call","onEscape","onEnter","onClear","that","$","__atk_reload","$reload","api","on","method","stateContext","$el","onComplete","r"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/atk-vue-item-search.min.js","mappings":"2JAcA,SACIA,KAAM,gBACNC,SAAW,8eAcXC,MAAO,CACHC,QAASC,OACTC,IAAKD,OACLE,EAAGF,OACHG,OAAQH,OACRI,SAAUJ,OACVK,QAASC,QAEbC,KAAM,WACF,MAAO,CACHC,MAAOC,KAAKP,EACZQ,KAAMD,KAAKP,EACXS,UAAU,EACVC,WAAY,KACZC,SAAUJ,KAAKJ,QAAQQ,SAE/B,EACAC,SAAU,CACNC,UAAW,WACP,MAAO,CACH,cAA8B,OAAfN,KAAKD,OAAiC,KAAfC,KAAKD,MAC3C,cAA8B,OAAfC,KAAKD,MAE5B,GAEJQ,QAAS,CACLC,QAAS,WACAR,KAAKQ,QAAQC,cACdT,KAAKQ,QAAQC,YAAcC,EAAAA,EAAAA,mBAAuBC,IAC9CX,KAAKQ,QAAQC,YAAc,KACvBT,KAAKD,QAAUC,KAAKC,OACD,KAAfD,KAAKD,QACLC,KAAKD,MAAQ,MAEjBC,KAAKY,YACLZ,KAAKC,KAAOD,KAAKD,MACrB,GACDC,KAAKJ,QAAQiB,eAEpBb,KAAKQ,QAAQC,YAAYK,KAAKd,KAClC,EACAe,SAAU,WACa,OAAff,KAAKD,QACLC,KAAKD,MAAQ,KACbC,KAAKC,KAAO,KACZD,KAAKY,YAEb,EACAI,QAAS,WACc,OAAfhB,KAAKD,QACLC,KAAKD,MAAQ,KACbC,KAAKC,KAAO,KACZD,KAAKY,YAEb,EACAK,QAAS,WACDjB,KAAKD,QACLC,KAAKD,MAAQ,KACbC,KAAKC,KAAO,KACZD,KAAKY,YAEb,EACAA,UAAW,WACP,MAAMM,EAAOlB,KACPJ,EAAUuB,IAAAA,OAAS,CAAC,EAAGnB,KAAKG,WAAY,CAAEiB,aAAcpB,KAAKN,OAAQ,CAACM,KAAKL,UAAWK,KAAKD,QAC3FsB,EAAUF,IAAE,IAAMnB,KAAKN,QAC7BM,KAAKE,UAAW,EAChBmB,EAAQC,IAAI,CACRC,GAAI,MACJ/B,IAAKQ,KAAKR,IACVM,KAAMF,EACN4B,OAAQ,MACRC,aAAczB,KAAKV,QAAU6B,IAAEnB,KAAKV,SAAW6B,IAAEnB,KAAK0B,KACtDC,WAAY,SAAUhB,EAAGiB,GACrBV,EAAKhB,UAAW,CACpB,GAER,G","sources":["webpack://atk/./src/vue-components/item-search.component.js"],"sourcesContent":["import $ from 'external/jquery';\nimport atk from 'atk';\n\n/**\n * Will allow user to send data query request to server.\n * Request should filter the data and reload the data view.\n * The request is send using Fomantic-UI api.\n *\n * Properties need for this component are:\n * context: string, a jQuery selector where the 'loading' class will be apply by Fomantic-UI - default to this component.\n * url: string, the URL to call.\n * q: string, the initial string for the query. Useful if this search is part of the relaod.\n * reload: string, an Id selector for jQuery, '#' is append automatically.\n */\nexport default {\n name: 'AtkItemSearch',\n template: `\n
\n \n \n \n
`,\n props: {\n context: String,\n url: String,\n q: String,\n reload: String,\n queryArg: String,\n options: Object,\n },\n data: function () {\n return {\n query: this.q,\n temp: this.q,\n isActive: false,\n extraQuery: null,\n inputCss: this.options.inputCss,\n };\n },\n computed: {\n classIcon: function () {\n return {\n 'search icon': this.query === null || this.query === '',\n 'remove icon': this.query !== null,\n };\n },\n },\n methods: {\n onKeyup: function () {\n if (!this.onKeyup.debouncedFx) {\n this.onKeyup.debouncedFx = atk.createDebouncedFx((e) => {\n this.onKeyup.debouncedFx = null;\n if (this.query !== this.temp) {\n if (this.query === '') {\n this.query = null;\n }\n this.sendQuery();\n this.temp = this.query;\n }\n }, this.options.inputTimeOut);\n }\n this.onKeyup.debouncedFx.call(this);\n },\n onEscape: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onEnter: function () {\n if (this.query !== null) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n onClear: function () {\n if (this.query) {\n this.query = null;\n this.temp = null;\n this.sendQuery();\n }\n },\n sendQuery: function () {\n const that = this;\n const options = $.extend({}, this.extraQuery, { __atk_reload: this.reload, [this.queryArg]: this.query });\n const $reload = $('#' + this.reload);\n this.isActive = true;\n $reload.api({\n on: 'now',\n url: this.url,\n data: options,\n method: 'GET',\n stateContext: this.context ? $(this.context) : $(this.$el),\n onComplete: function (e, r) {\n that.isActive = false;\n },\n });\n },\n },\n};\n"],"names":["name","template","props","context","String","url","q","reload","queryArg","options","Object","data","query","this","temp","isActive","extraQuery","inputCss","computed","classIcon","methods","onKeyup","debouncedFx","atk","e","sendQuery","inputTimeOut","call","onEscape","onEnter","onClear","that","$","__atk_reload","$reload","api","on","method","stateContext","$el","onComplete","r"],"sourceRoot":""} \ No newline at end of file diff --git a/public/js/atk-vue-multiline.js.map b/public/js/atk-vue-multiline.js.map index e9f1111e8e..c34f6b0bbd 100644 --- a/public/js/atk-vue-multiline.js.map +++ b/public/js/atk-vue-multiline.js.map @@ -1 +1 @@ -{"version":3,"file":"js/atk-vue-multiline.js","mappings":"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","sources":["webpack://atk/./src/vue-components/multiline/multiline-body.component.js","webpack://atk/./src/vue-components/multiline/multiline-cell.component.js","webpack://atk/./src/vue-components/multiline/multiline-header.component.js","webpack://atk/./src/vue-components/multiline/multiline-readonly.component.js","webpack://atk/./src/vue-components/multiline/multiline-row.component.js","webpack://atk/./src/vue-components/multiline/multiline-textarea.component.js","webpack://atk/./src/vue-components/multiline/multiline.component.js","webpack://atk/./src/vue-components/share/atk-date-picker.js","webpack://atk/./src/vue-components/share/atk-lookup.js","webpack://atk/./node_modules/core-js/modules/esnext.async-iterator.some.js","webpack://atk/./node_modules/core-js/modules/esnext.iterator.some.js"],"sourcesContent":["import multilineRow from './multiline-row.component';\n\nexport default {\n name: 'AtkMultilineBody',\n template: `\n \n \n `,\n props: ['fieldDefs', 'rowData', 'deletables', 'errors'],\n data: function () {\n return { fields: this.fieldDefs };\n },\n created: function () {},\n components: {\n AtkMultilineRow: multilineRow,\n },\n computed: {\n rows: function () {\n return this.rowData;\n },\n },\n emits: ['onTabLastRow'],\n methods: {\n onTabLastColumn: function (rowIndex) {\n if (rowIndex + 1 === this.rowData.length) {\n this.$emit('onTabLastRow');\n }\n },\n isDeletableRow: function (row) {\n return this.deletables.includes(row.__atkml);\n },\n getRowErrors: function (rowId) {\n return this.errors[rowId] ?? [];\n },\n },\n};\n","import multilineReadonly from './multiline-readonly.component';\nimport multilineTextarea from './multiline-textarea.component';\nimport atkDatePicker from '../share/atk-date-picker';\nimport atkLookup from '../share/atk-lookup';\n\nexport default {\n name: 'AtkMultilineCell',\n template: `\n `,\n components: {\n AtkMultilineReadonly: multilineReadonly,\n AtkMultilineTextarea: multilineTextarea,\n AtkDatePicker: atkDatePicker,\n AtkLookup: atkLookup,\n },\n props: ['cellData', 'fieldValue'],\n data: function () {\n return {\n fieldName: this.cellData.name,\n type: this.cellData.type,\n inputName: '-' + this.cellData.name,\n inputValue: this.fieldValue,\n };\n },\n emits: ['updateValue'],\n methods: {\n getComponent: function () {\n return this.cellData.definition.component;\n },\n getComponentProps: function () {\n if (this.getComponent() === 'AtkMultilineReadonly') {\n return { readOnlyValue: this.fieldValue };\n }\n\n return this.cellData.definition.componentProps;\n },\n onInput: function (value) {\n this.inputValue = value;\n this.$emit('updateValue', this.fieldName, this.inputValue);\n },\n },\n};\n","import atk from 'atk';\n\nexport default {\n name: 'AtkMultilineHeader',\n template: `\n \n \n \n \n \n {{getErrorMsg(column)}}\n \n \n \n {{caption}}\n \n \n \n \n \n \n
{{column.caption}}
\n
\n {{getErrorMsg(column)}}\n
\n \n
\n
`,\n props: ['fields', 'selectionState', 'errors', 'caption'],\n data: function () {\n return { columns: this.fields, isDeleteAll: false };\n },\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onToggleDeleteAll: function () {\n this.$nextTick(() => {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete-all', { isOn: this.$refs.check.checked });\n });\n },\n getTextAlign: function (column) {\n let align = 'left';\n if (!column.isEditable) {\n switch (column.type) {\n case 'integer':\n case 'float':\n case 'atk4_money':\n align = 'right';\n\n break;\n }\n }\n\n return align;\n },\n getVisibleColumns: function () {\n let count = 1; // add deletable column;\n for (const field of this.columns) {\n count = field.isVisible ? count + 1 : count;\n }\n\n return count;\n },\n hasError: function () {\n return Object.keys(this.errors).length > 0;\n },\n hasCaption: function () {\n return this.caption;\n },\n getErrorMsg: function (column) {\n if (this.hasError()) {\n const rows = Object.keys(this.errors);\n for (const row of rows) {\n const error = this.errors[row].filter((col) => col.name === column.name);\n if (error.length > 0) {\n return error[0].msg;\n }\n }\n }\n\n return null;\n },\n },\n computed: {\n isIndeterminate: function () {\n return this.selectionState === 'indeterminate';\n },\n isChecked: function () {\n return this.selectionState === 'on';\n },\n },\n};\n","/**\n * Simply display a readonly value.\n */\nexport default {\n name: 'AtkMultilineReadonly',\n template: '
{{readOnlyValue}}
',\n props: ['readOnlyValue'],\n};\n","import atk from 'atk';\nimport multilineCell from './multiline-cell.component';\n\n/**\n * This will create a table td element using SuiTableCell.\n * The td element is created only if column as set isVisible = true;\n * The td element will add a multiline cell element.\n * the multiline cell will set it's own template component depending on the fieldType.\n * getValue\n */\nexport default {\n name: 'AtkMultilineRow',\n template: `\n \n \n \n \n \n \n \n `,\n props: ['fields', 'rowId', 'isDeletable', 'rowValues', 'errors'],\n data: function () {\n return { columns: this.fields };\n },\n components: {\n AtkMultilineCell: multilineCell,\n },\n computed: {\n /**\n * toDelete is bind by v-model, thus we need a setter for\n * computed property to work.\n * When isDeletable is pass, will set checkbox according to it's value.\n */\n toDelete: {\n get: function () {\n return this.isDeletable;\n },\n set: function (v) {\n return v;\n },\n },\n },\n emits: ['onTabLastColumn'],\n methods: {\n filterVisibleColumns: function (columns) {\n return columns.filter((v) => v.isVisible);\n },\n onTab: function (columnIndex) {\n if (columnIndex === this.columns.filter((column) => column.isEditable).length) {\n this.$emit('onTabLastColumn');\n }\n },\n hasColumnError: function (column) {\n return this.errors.some((v) => column.name === v.name);\n },\n getColumnWidth: function (column) {\n return column.fieldOptions ? column.fieldOptions.width : null;\n },\n onEdit: function () {\n this.isEditing = true;\n },\n onToggleDelete: function (e) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-toggle-delete', { rowId: this.rowId });\n },\n onUpdateValue: function (fieldName, value) {\n atk.eventBus.emit(this.$root.$el.parentElement.id + '-update-row', { rowId: this.rowId, fieldName: fieldName, value: value });\n },\n getValue: function (column) {\n return this.rowValues[column.name] || column.default;\n },\n },\n};\n","export default {\n name: 'AtkMultilineTextarea',\n template: '