openproject-primer_view_components 0.48.0 → 0.48.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/app/assets/javascripts/app/components/primer/open_project/zen_mode_button.d.ts +5 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/components/primer/open_project/page_header/title.rb +1 -1
- data/app/components/primer/open_project/zen_mode_button.d.ts +5 -0
- data/app/components/primer/open_project/zen_mode_button.js +24 -5
- data/app/components/primer/open_project/zen_mode_button.ts +29 -4
- data/lib/primer/view_components/version.rb +1 -1
- metadata +2 -2
@@ -11,7 +11,7 @@ module Primer
|
|
11
11
|
HEADING_TAG_OPTIONS = [:h1, :h2, :h3, :h4, :h5, :h6].freeze
|
12
12
|
HEADING_TAG_FALLBACK = :h1
|
13
13
|
|
14
|
-
renders_one :editable_form, lambda { |model:
|
14
|
+
renders_one :editable_form, lambda { |model: false, update_path:, cancel_path:, input_name: :title, method: :put, label: I18n.t(:label_title), placeholder: I18n.t(:label_title), **system_arguments|
|
15
15
|
primer_form_with(
|
16
16
|
model: model,
|
17
17
|
method: method,
|
@@ -1,8 +1,13 @@
|
|
1
1
|
declare class ZenModeButtonElement extends HTMLElement {
|
2
2
|
button: HTMLElement;
|
3
3
|
inZenMode: boolean;
|
4
|
+
constructor();
|
5
|
+
disconnectedCallback(): void;
|
6
|
+
fullscreenChangeEventHandler(): void;
|
7
|
+
dispatchZenModeStatus(): void;
|
4
8
|
private deactivateZenMode;
|
5
9
|
private activateZenMode;
|
10
|
+
changeButtonState(inZenMode: boolean): void;
|
6
11
|
performAction(): void;
|
7
12
|
}
|
8
13
|
declare global {
|
@@ -6,24 +6,43 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
6
6
|
};
|
7
7
|
import { controller, target } from '@github/catalyst';
|
8
8
|
let ZenModeButtonElement = class ZenModeButtonElement extends HTMLElement {
|
9
|
+
// eslint-disable-next-line custom-elements/no-constructor
|
9
10
|
constructor() {
|
10
|
-
super(
|
11
|
+
super();
|
11
12
|
this.inZenMode = false;
|
13
|
+
document.addEventListener('fullscreenchange', this.fullscreenChangeEventHandler.bind(this));
|
14
|
+
}
|
15
|
+
disconnectedCallback() {
|
16
|
+
document.removeEventListener('fullscreenchange', this.fullscreenChangeEventHandler.bind(this));
|
17
|
+
}
|
18
|
+
fullscreenChangeEventHandler() {
|
19
|
+
this.changeButtonState(!this.inZenMode);
|
20
|
+
this.dispatchZenModeStatus();
|
21
|
+
}
|
22
|
+
dispatchZenModeStatus() {
|
23
|
+
// Create a new custom event
|
24
|
+
const event = new CustomEvent('zenModeToggled', {
|
25
|
+
detail: {
|
26
|
+
active: this.inZenMode,
|
27
|
+
},
|
28
|
+
});
|
29
|
+
// Dispatch the custom event
|
30
|
+
window.dispatchEvent(event);
|
12
31
|
}
|
13
32
|
deactivateZenMode() {
|
14
|
-
this.inZenMode = false;
|
15
|
-
this.button.setAttribute('aria-pressed', 'false');
|
16
33
|
if (document.exitFullscreen) {
|
17
34
|
void document.exitFullscreen();
|
18
35
|
}
|
19
36
|
}
|
20
37
|
activateZenMode() {
|
21
|
-
this.inZenMode = true;
|
22
|
-
this.button.setAttribute('aria-pressed', 'true');
|
23
38
|
if (document.documentElement.requestFullscreen) {
|
24
39
|
void document.documentElement.requestFullscreen();
|
25
40
|
}
|
26
41
|
}
|
42
|
+
changeButtonState(inZenMode) {
|
43
|
+
this.inZenMode = inZenMode;
|
44
|
+
this.button.setAttribute('aria-pressed', inZenMode.toString());
|
45
|
+
}
|
27
46
|
performAction() {
|
28
47
|
if (this.inZenMode) {
|
29
48
|
this.deactivateZenMode();
|
@@ -5,21 +5,46 @@ class ZenModeButtonElement extends HTMLElement {
|
|
5
5
|
@target button: HTMLElement
|
6
6
|
inZenMode = false
|
7
7
|
|
8
|
+
// eslint-disable-next-line custom-elements/no-constructor
|
9
|
+
constructor() {
|
10
|
+
super()
|
11
|
+
document.addEventListener('fullscreenchange', this.fullscreenChangeEventHandler.bind(this))
|
12
|
+
}
|
13
|
+
|
14
|
+
disconnectedCallback() {
|
15
|
+
document.removeEventListener('fullscreenchange', this.fullscreenChangeEventHandler.bind(this))
|
16
|
+
}
|
17
|
+
|
18
|
+
fullscreenChangeEventHandler() {
|
19
|
+
this.changeButtonState(!this.inZenMode)
|
20
|
+
this.dispatchZenModeStatus()
|
21
|
+
}
|
22
|
+
dispatchZenModeStatus() {
|
23
|
+
// Create a new custom event
|
24
|
+
const event = new CustomEvent('zenModeToggled', {
|
25
|
+
detail: {
|
26
|
+
active: this.inZenMode,
|
27
|
+
},
|
28
|
+
})
|
29
|
+
// Dispatch the custom event
|
30
|
+
window.dispatchEvent(event)
|
31
|
+
}
|
32
|
+
|
8
33
|
private deactivateZenMode() {
|
9
|
-
this.inZenMode = false
|
10
|
-
this.button.setAttribute('aria-pressed', 'false')
|
11
34
|
if (document.exitFullscreen) {
|
12
35
|
void document.exitFullscreen()
|
13
36
|
}
|
14
37
|
}
|
15
38
|
|
16
39
|
private activateZenMode() {
|
17
|
-
this.inZenMode = true
|
18
|
-
this.button.setAttribute('aria-pressed', 'true')
|
19
40
|
if (document.documentElement.requestFullscreen) {
|
20
41
|
void document.documentElement.requestFullscreen()
|
21
42
|
}
|
22
43
|
}
|
44
|
+
public changeButtonState(inZenMode: boolean) {
|
45
|
+
this.inZenMode = inZenMode
|
46
|
+
this.button.setAttribute('aria-pressed', inZenMode.toString())
|
47
|
+
}
|
23
48
|
|
24
49
|
public performAction() {
|
25
50
|
if (this.inZenMode) {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openproject-primer_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.48.
|
4
|
+
version: 0.48.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-10-
|
12
|
+
date: 2024-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionview
|