From a421a698fc4768d78bca003381f49656c38fced0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 21 Dec 2024 14:15:11 +0200 Subject: [PATCH 01/64] feat(bootstrap-addons): use v flag for regexp's in json-input --- .../bootstrap-addons/src/forms/json-input/json-input.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/bootstrap-addons/src/forms/json-input/json-input.ts b/packages/bootstrap-addons/src/forms/json-input/json-input.ts index 845ee7c..9ae2f36 100644 --- a/packages/bootstrap-addons/src/forms/json-input/json-input.ts +++ b/packages/bootstrap-addons/src/forms/json-input/json-input.ts @@ -190,9 +190,16 @@ export class BsJsonInput { } #initAjv($schema: string, ajvOptions: Options): Ajv { + const regExp = (pattern: string) => new RegExp(pattern, 'v'); + + regExp.code = 'regexp'; + const options: Options = { strict: false, multipleOfPrecision: 2, + code: { + regExp, + }, ...ajvOptions, }; let ajv: Ajv; From 433bda5fce5b146cd91d97262028a9e464b2dfe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 21 Dec 2024 14:17:10 +0200 Subject: [PATCH 02/64] chore(bootstrap-addons): 5.2.21 --- packages/bootstrap-addons/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bootstrap-addons/package.json b/packages/bootstrap-addons/package.json index 70b635d..772587f 100644 --- a/packages/bootstrap-addons/package.json +++ b/packages/bootstrap-addons/package.json @@ -1,7 +1,7 @@ { "name": "@ekzo-dev/bootstrap-addons", "description": "Aurelia Bootstrap additional component", - "version": "5.2.20", + "version": "5.2.21", "homepage": "https://github.com/ekzo-dev/aurelia-components/tree/main/packages/bootstrap-addons", "repository": { "type": "git", From b49625e62bb88e0adea5b945e4a840a760bfcd0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 21 Dec 2024 14:46:38 +0200 Subject: [PATCH 03/64] fix(bootstrap-addons): fix JsonSchema 2010-12 regexp's --- packages/bootstrap-addons/src/forms/json-input/json-input.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/bootstrap-addons/src/forms/json-input/json-input.ts b/packages/bootstrap-addons/src/forms/json-input/json-input.ts index 9ae2f36..c12671f 100644 --- a/packages/bootstrap-addons/src/forms/json-input/json-input.ts +++ b/packages/bootstrap-addons/src/forms/json-input/json-input.ts @@ -190,7 +190,8 @@ export class BsJsonInput { } #initAjv($schema: string, ajvOptions: Options): Ajv { - const regExp = (pattern: string) => new RegExp(pattern, 'v'); + // use 'u' flag when editing JsonSchema itself, as 2020-12 meta-schema has incompatible with 'v' flag regexp's + const regExp = (pattern: string) => new RegExp(pattern, this.jsonSchema === true ? 'u' : 'v'); regExp.code = 'regexp'; From 05a7da5cc8e1dffcf814badf2812323e167d22be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 21 Dec 2024 14:47:19 +0200 Subject: [PATCH 04/64] chore(bootstrap-addons): 5.2.22 --- packages/bootstrap-addons/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bootstrap-addons/package.json b/packages/bootstrap-addons/package.json index 772587f..e291259 100644 --- a/packages/bootstrap-addons/package.json +++ b/packages/bootstrap-addons/package.json @@ -1,7 +1,7 @@ { "name": "@ekzo-dev/bootstrap-addons", "description": "Aurelia Bootstrap additional component", - "version": "5.2.21", + "version": "5.2.22", "homepage": "https://github.com/ekzo-dev/aurelia-components/tree/main/packages/bootstrap-addons", "repository": { "type": "git", From 438f0e754fc8757e3e96d51cab41e7712d517608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 21 Dec 2024 16:17:47 +0200 Subject: [PATCH 05/64] fix(bootstrap-addons): fix meta-schema patterns that are not compatible with V flag --- .../src/forms/json-input/json-input.stories.ts | 2 +- .../bootstrap-addons/src/forms/json-input/json-input.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/bootstrap-addons/src/forms/json-input/json-input.stories.ts b/packages/bootstrap-addons/src/forms/json-input/json-input.stories.ts index f3fe284..d6b32eb 100644 --- a/packages/bootstrap-addons/src/forms/json-input/json-input.stories.ts +++ b/packages/bootstrap-addons/src/forms/json-input/json-input.stories.ts @@ -15,7 +15,7 @@ const Overview: Story = (args): StoryFnAureliaReturnType => ({ Overview.args = { jsonSchema: { - $schema: 'http://json-schema.org/draft-07/schema#', + $schema: 'https://json-schema.org/draft/2020-12/schema', type: 'object', properties: { enum: { diff --git a/packages/bootstrap-addons/src/forms/json-input/json-input.ts b/packages/bootstrap-addons/src/forms/json-input/json-input.ts index c12671f..8c4feae 100644 --- a/packages/bootstrap-addons/src/forms/json-input/json-input.ts +++ b/packages/bootstrap-addons/src/forms/json-input/json-input.ts @@ -27,6 +27,11 @@ import addFormats from 'ajv-formats'; import { bindable, BindingMode, customElement } from 'aurelia'; import { JSONValue, parsePath } from 'immutable-json-patch'; +const patternMap: Record = { + '^[A-Za-z_][-A-Za-z0-9._]*$': '^[A-Za-z_][\\-A-Za-z0-9._]*$', + '^[A-Za-z][-A-Za-z0-9.:_]*$': '^[A-Za-z][\\-A-Za-z0-9.:_]*$', +}; + @customElement({ name: 'bs-json-input', template, @@ -190,8 +195,8 @@ export class BsJsonInput { } #initAjv($schema: string, ajvOptions: Options): Ajv { - // use 'u' flag when editing JsonSchema itself, as 2020-12 meta-schema has incompatible with 'v' flag regexp's - const regExp = (pattern: string) => new RegExp(pattern, this.jsonSchema === true ? 'u' : 'v'); + // some regexp's in 2019-09/2020-12 meta-schemas are not compatible with 'v' flag, so update them + const regExp = (pattern: string) => new RegExp(patternMap[pattern] ?? pattern, 'v'); regExp.code = 'regexp'; From 31dd6c63790f3d290f14d752902092b91145766e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 21 Dec 2024 16:18:36 +0200 Subject: [PATCH 06/64] chore(bootstrap-addons): 5.2.23 --- packages/bootstrap-addons/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bootstrap-addons/package.json b/packages/bootstrap-addons/package.json index e291259..034d433 100644 --- a/packages/bootstrap-addons/package.json +++ b/packages/bootstrap-addons/package.json @@ -1,7 +1,7 @@ { "name": "@ekzo-dev/bootstrap-addons", "description": "Aurelia Bootstrap additional component", - "version": "5.2.22", + "version": "5.2.23", "homepage": "https://github.com/ekzo-dev/aurelia-components/tree/main/packages/bootstrap-addons", "repository": { "type": "git", From d586065a232f6e467cf6f1fbc775fa7920c59008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 23 Dec 2024 12:16:31 +0200 Subject: [PATCH 07/64] fix(activestorage): fix options injection --- package-lock.json | 9 +++++---- packages-adapters/activestorage/package.json | 4 ++-- packages-adapters/activestorage/src/direct-upload.ts | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7be815a..a5c9911 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12183,8 +12183,9 @@ } }, "node_modules/@rails/activestorage": { - "version": "6.1.7", - "license": "MIT", + "version": "6.1.710", + "resolved": "https://registry.npmjs.org/@rails/activestorage/-/activestorage-6.1.710.tgz", + "integrity": "sha512-hLXxAtn7hSWXkTzMGOmQmjuzJ0FzVw8j/Zi8DGS+DG9x4uPQjl+ZEVdty7pFcsBCjkpejtk0TChcBQlLW8sgOg==", "dependencies": { "spark-md5": "^3.0.0" } @@ -53186,7 +53187,7 @@ "version": "6.1.1", "license": "MIT", "dependencies": { - "@rails/activestorage": "~6.1.7-3", + "@rails/activestorage": "~6.1.710", "@types/rails__activestorage": "~6.0.1" }, "peerDependencies": { @@ -53276,7 +53277,7 @@ }, "packages/bootstrap-addons": { "name": "@ekzo-dev/bootstrap-addons", - "version": "5.2.16", + "version": "5.2.23", "license": "MIT", "dependencies": { "@ekzo-dev/bootstrap": "^5.2.18", diff --git a/packages-adapters/activestorage/package.json b/packages-adapters/activestorage/package.json index a0d4e93..66a51cd 100644 --- a/packages-adapters/activestorage/package.json +++ b/packages-adapters/activestorage/package.json @@ -1,7 +1,7 @@ { "name": "@ekzo-dev/activestorage", "description": "Aurelia Active Storage adapter", - "version": "6.1.1", + "version": "6.1.2", "homepage": "https://github.com/ekzo-dev/aurelia-components/tree/main/packages-adapters/activestorage", "repository": { "type": "git", @@ -9,7 +9,7 @@ }, "license": "MIT", "dependencies": { - "@rails/activestorage": "~6.1.7-3", + "@rails/activestorage": "~6.1.710", "@types/rails__activestorage": "~6.0.1" }, "peerDependencies": { diff --git a/packages-adapters/activestorage/src/direct-upload.ts b/packages-adapters/activestorage/src/direct-upload.ts index 361b552..c92f301 100644 --- a/packages-adapters/activestorage/src/direct-upload.ts +++ b/packages-adapters/activestorage/src/direct-upload.ts @@ -112,7 +112,7 @@ export class AsDirectUpload implements ICustomAttributeViewModel, EventListenerO private input = resolve(HTMLElement) as HTMLInputElement; - constructor(private options: ActiveStorageOptions) {} + private options = resolve(ActiveStorageOptions); attaching() { this.input.addEventListener('change', this); From 28d51e5cc502644201d52537ab08676d2c9e2001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 23 Dec 2024 23:44:22 +0200 Subject: [PATCH 08/64] fix(bootstrap-addons): dispatch change events --- package-lock.json | 2 +- packages/bootstrap-addons/package.json | 2 +- packages/bootstrap-addons/src/forms/select/select.html | 1 + packages/bootstrap-addons/src/forms/select/select.ts | 9 +++++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5c9911..858e45d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53184,7 +53184,7 @@ }, "packages-adapters/activestorage": { "name": "@ekzo-dev/activestorage", - "version": "6.1.1", + "version": "6.1.2", "license": "MIT", "dependencies": { "@rails/activestorage": "~6.1.710", diff --git a/packages/bootstrap-addons/package.json b/packages/bootstrap-addons/package.json index 034d433..8cb4bde 100644 --- a/packages/bootstrap-addons/package.json +++ b/packages/bootstrap-addons/package.json @@ -1,7 +1,7 @@ { "name": "@ekzo-dev/bootstrap-addons", "description": "Aurelia Bootstrap additional component", - "version": "5.2.23", + "version": "5.2.24", "homepage": "https://github.com/ekzo-dev/aurelia-components/tree/main/packages/bootstrap-addons", "repository": { "type": "git", diff --git a/packages/bootstrap-addons/src/forms/select/select.html b/packages/bootstrap-addons/src/forms/select/select.html index a71ab3d..1e18c72 100644 --- a/packages/bootstrap-addons/src/forms/select/select.html +++ b/packages/bootstrap-addons/src/forms/select/select.html @@ -36,6 +36,7 @@ title.bind="title & attr" autocomplete="off" keydown.trigger="$event.preventDefault()" + ref="control" />
diff --git a/packages/bootstrap-addons/src/forms/select/select.ts b/packages/bootstrap-addons/src/forms/select/select.ts index df8e5b3..8d535bc 100644 --- a/packages/bootstrap-addons/src/forms/select/select.ts +++ b/packages/bootstrap-addons/src/forms/select/select.ts @@ -64,6 +64,15 @@ export class BsSelect extends BaseBsSelect implements ICustomElementViewModel { selectOption(option: ISelectOption) { this.value = option.value; + this.#dispatchEvents(); + } + + #dispatchEvents() { + const change = new Event('change', { bubbles: true }); + const input = new Event('input', { bubbles: true }); + + this.control.dispatchEvent(input); + this.control.dispatchEvent(change); } #setHeight(): void { From 14769aabe2ef52b72940f53013f4bb83439a0ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=85=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=94=D0=BC?= =?UTF-8?q?=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sun, 29 Dec 2024 11:33:20 +0200 Subject: [PATCH 09/64] feat(bootstrap-addons): make custom select clearable (hide empty option and add clear button) --- .../bootstrap-addons/src/forms/select/filter.ts | 8 +++++--- .../src/forms/select/select.html | 16 ++++++++++++---- .../bootstrap-addons/src/forms/select/select.ts | 13 +++++++++++-- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/packages/bootstrap-addons/src/forms/select/filter.ts b/packages/bootstrap-addons/src/forms/select/filter.ts index d8f568f..98d6f95 100644 --- a/packages/bootstrap-addons/src/forms/select/filter.ts +++ b/packages/bootstrap-addons/src/forms/select/filter.ts @@ -5,11 +5,13 @@ import { valueConverter } from 'aurelia'; export class Filter { toView( list: Map | ISelectOption[], - search: string + search: string, + emptyOption?: ISelectOption ): Map | ISelectOption[] { - if (search === '') return list; + if (search === '' && emptyOption === undefined) return list; - const cb = (option: { text: string }) => option.text.toLowerCase().includes(search.toLowerCase()); + const cb = (option: ISelectOption) => + option.value !== emptyOption?.value && option.text.toLowerCase().includes(search.toLowerCase()); if (list instanceof Map) { const result = new Map(); diff --git a/packages/bootstrap-addons/src/forms/select/select.html b/packages/bootstrap-addons/src/forms/select/select.html index 1e18c72..dea241e 100644 --- a/packages/bootstrap-addons/src/forms/select/select.html +++ b/packages/bootstrap-addons/src/forms/select/select.html @@ -38,6 +38,14 @@ keydown.trigger="$event.preventDefault()" ref="control" /> +
@@ -45,19 +53,19 @@
-