mirror of
https://github.com/mirego/accent.git
synced 2024-08-16 06:20:31 +03:00
Update deps
This commit is contained in:
parent
b71142c76d
commit
04cf73b5c8
1
Makefile
1
Makefile
@ -100,6 +100,7 @@ lint-template-hbs:
|
||||
.PHONY: type-check
|
||||
type-check: ## Type-check typescript files
|
||||
cd webapp && npx tsc
|
||||
cd jipt && npx tsc
|
||||
|
||||
.PHONY: test
|
||||
test: ## Run the test suite
|
||||
|
@ -18,7 +18,7 @@ export default class ProjectFetcher {
|
||||
return data.data && data.data.viewer.project;
|
||||
}
|
||||
|
||||
private async graphql(config: Config) {
|
||||
private graphql(config: Config) {
|
||||
const query = `query ProjectDetails($project_id: ID!) {
|
||||
viewer {
|
||||
project(id: $project_id) {
|
||||
|
4840
jipt/package-lock.json
generated
4840
jipt/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"parcel-bundler": "1.11.0",
|
||||
"typescript": "3.3.1"
|
||||
"parcel-bundler": "1.12.4",
|
||||
"typescript": "3.8.3"
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ export interface Config {
|
||||
|
||||
const state = new State({
|
||||
nodes: new WeakMap(),
|
||||
projectTranslations: {},
|
||||
projectTranslations: new Map(),
|
||||
refs: new Map(),
|
||||
});
|
||||
|
||||
|
@ -23,7 +23,7 @@ export default class LiveNode {
|
||||
return !!this.state.nodes.get(node);
|
||||
}
|
||||
|
||||
matchAttributes(node: Element) {
|
||||
matchAttributes(node: HTMLElement) {
|
||||
Array.from(node.attributes).forEach((attribute) => {
|
||||
const translation = this.findTranslationByValue(attribute.value);
|
||||
if (!translation || !translation.text) return;
|
||||
@ -61,15 +61,17 @@ export default class LiveNode {
|
||||
if (newContent === node.nodeValue) return;
|
||||
|
||||
parentNode.innerHTML = this.replaceValue(parentNode.innerHTML, newContent);
|
||||
const newNode = parentNode.getElementsByClassName(ACCENT_CLASS)[0];
|
||||
const newNode = parentNode.getElementsByClassName(
|
||||
ACCENT_CLASS
|
||||
)[0] as HTMLElement;
|
||||
Mutation.nodeStyleRefresh(newNode, translation);
|
||||
|
||||
this.state.addReference(newNode, translation);
|
||||
}
|
||||
|
||||
evaluate(node: Element) {
|
||||
evaluate(node: HTMLElement) {
|
||||
node.childNodes &&
|
||||
node.childNodes.forEach((node: Element) => {
|
||||
node.childNodes.forEach((node: HTMLElement) => {
|
||||
this.evaluate(node);
|
||||
if (node.attributes) this.matchAttributes(node);
|
||||
});
|
||||
@ -87,7 +89,7 @@ export default class LiveNode {
|
||||
return value.match(ACCENT_REGEX);
|
||||
}
|
||||
|
||||
private findTranslationByValue(value) {
|
||||
private findTranslationByValue(value: string) {
|
||||
if (!value) return;
|
||||
|
||||
const match = this.valueMatch(value);
|
||||
|
@ -18,12 +18,12 @@ export default class Mutation {
|
||||
this.liveNode = liveNode;
|
||||
}
|
||||
|
||||
static nodeChange(node: Element, meta: any, text: string) {
|
||||
static nodeChange(node: HTMLElement, meta: any, text: string) {
|
||||
this.textNodeChange(node, meta, text);
|
||||
this.attributeNodeChange(node, meta, text);
|
||||
}
|
||||
|
||||
static nodeStyleRefresh(node: Element, translation: Translation) {
|
||||
static nodeStyleRefresh(node: HTMLElement, translation: Translation) {
|
||||
node.removeAttribute('class');
|
||||
|
||||
if (translation.isConflicted) {
|
||||
@ -33,7 +33,7 @@ export default class Mutation {
|
||||
}
|
||||
}
|
||||
|
||||
private static textNodeChange(node: Element, meta: any, text: string) {
|
||||
private static textNodeChange(node: HTMLElement, meta: any, text: string) {
|
||||
if (node.innerHTML === text) return;
|
||||
let updatedText = text;
|
||||
|
||||
@ -44,7 +44,11 @@ export default class Mutation {
|
||||
if (!meta.head) this.handleUpdatedNodeStyles(node);
|
||||
}
|
||||
|
||||
private static attributeNodeChange(node, meta, text) {
|
||||
private static attributeNodeChange(
|
||||
node: HTMLElement,
|
||||
meta: any,
|
||||
text: string
|
||||
) {
|
||||
if (!meta.attributeName) return;
|
||||
if (node.getAttribute(meta.attributeName) === text) return;
|
||||
|
||||
@ -78,7 +82,9 @@ export default class Mutation {
|
||||
handleNodeMutation(node) {
|
||||
if (node.nodeType === Node.TEXT_NODE) this.liveNode.matchText(node.target);
|
||||
if (node.type === 'childList') {
|
||||
node.addedNodes.forEach((node: Element) => this.liveNode.evaluate(node));
|
||||
node.addedNodes.forEach((node: HTMLElement) =>
|
||||
this.liveNode.evaluate(node)
|
||||
);
|
||||
}
|
||||
if (node.type === 'attributes') this.liveNode.matchAttributes(node.target);
|
||||
if (node.type === 'characterData') this.liveNode.matchText(node.target);
|
||||
|
@ -13,16 +13,22 @@ interface Translation {
|
||||
text: string;
|
||||
}
|
||||
|
||||
interface Args {
|
||||
refs: Map<string, RefState>;
|
||||
nodes: WeakMap<HTMLElement, NodeState>;
|
||||
projectTranslations: Map<string, Translation>;
|
||||
}
|
||||
|
||||
/*
|
||||
The State is a singleton component that keeps track of references
|
||||
used in all components. With the state, you can request a NodeElement from a translation, vice and versa.
|
||||
*/
|
||||
export default class State {
|
||||
refs: Map<string, RefState>;
|
||||
nodes: Map<HTMLElement, NodeState>;
|
||||
nodes: WeakMap<HTMLElement, NodeState>;
|
||||
projectTranslations: Map<string, Translation>;
|
||||
|
||||
constructor(properties) {
|
||||
constructor(properties: Args) {
|
||||
this.refs = properties.refs;
|
||||
this.nodes = properties.nodes;
|
||||
this.projectTranslations = properties.projectTranslations;
|
||||
@ -36,7 +42,7 @@ export default class State {
|
||||
localStorage.setItem('accent-current-revision', id);
|
||||
}
|
||||
|
||||
addReference(node, translation, meta = {}) {
|
||||
addReference(node: HTMLElement, translation: Translation, meta = {}) {
|
||||
this.addTranslationRef(translation, node, meta);
|
||||
this.addNodeRef(node, translation);
|
||||
}
|
||||
@ -45,7 +51,11 @@ export default class State {
|
||||
return this.projectTranslations[id];
|
||||
}
|
||||
|
||||
private addTranslationRef(translation, node, meta = {}) {
|
||||
private addTranslationRef(
|
||||
translation: Translation,
|
||||
node: HTMLElement,
|
||||
meta = {}
|
||||
) {
|
||||
const match = this.refs.get(translation.id);
|
||||
const elements = match ? match.elements : new Map();
|
||||
elements.set(node, meta);
|
||||
@ -53,9 +63,9 @@ export default class State {
|
||||
this.refs.set(translation.id, {elements});
|
||||
}
|
||||
|
||||
private addNodeRef(node, translation, meta = {}) {
|
||||
private addNodeRef(node: HTMLElement, translation: Translation, meta = {}) {
|
||||
const match = this.nodes.get(node);
|
||||
const keys = match ? match.keys : new Set();
|
||||
const keys: Set<string> = match ? match.keys : new Set();
|
||||
keys.add(translation.key);
|
||||
|
||||
this.nodes.set(node, {keys, meta});
|
||||
|
@ -1,6 +1,8 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": false,
|
||||
"lib": ["dom", "es2015"],
|
||||
"noEmit": true,
|
||||
"downlevelIteration": true
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,6 @@
|
||||
@import 'reset';
|
||||
@import 'base';
|
||||
@import 'classes';
|
||||
@import 'reset-select';
|
||||
|
||||
@import 'html-components/emoji-picker';
|
||||
@import 'html-components/sub-navigation';
|
||||
|
@ -1,13 +1,13 @@
|
||||
:global(.filters) {
|
||||
.filters {
|
||||
padding: 15px;
|
||||
border-radius: 3px;
|
||||
background: $color-light-background;
|
||||
|
||||
:global(&.filters--white) {
|
||||
&.filters--white {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
:global(.ember-power-select-trigger) {
|
||||
.ember-power-select-trigger {
|
||||
padding: 5px 10px;
|
||||
background: #fff;
|
||||
box-shadow: none;
|
||||
@ -17,44 +17,44 @@
|
||||
color: var(--color-black-opacity-70);
|
||||
|
||||
&:focus,
|
||||
:global(&.ember-power-select-trigger--active) {
|
||||
&.ember-power-select-trigger--active {
|
||||
background: $color-light-background;
|
||||
border: 1px solid rgba($color-black, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:global(.filters-wrapper) {
|
||||
.filters-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
:global(.queryForm-filters) {
|
||||
.queryForm-filters {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
:global(.queryForm-filters-column) {
|
||||
.queryForm-filters-column {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
:global(.queryForm-filter) {
|
||||
.queryForm-filter {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
margin-top: 2px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
:global(.queryForm-filter-label) {
|
||||
.queryForm-filter-label {
|
||||
margin-right: 10px;
|
||||
color: $color-grey;
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
:global(.queryForm-filter-select) {
|
||||
.queryForm-filter-select {
|
||||
font-size: 13px;
|
||||
min-width: 130px;
|
||||
}
|
||||
|
@ -38,16 +38,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
.modalList {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: ($screen-sm)) {
|
||||
.acc-modal__wrapper {
|
||||
padding: 30px 10px;
|
||||
}
|
||||
|
||||
.modalList {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
@ -1,30 +0,0 @@
|
||||
.resetSelect {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
border-radius: 3px;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '›';
|
||||
transform: rotate(90deg);
|
||||
top: 50%;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.resetSelect-tag {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
}
|
1938
webapp/package-lock.json
generated
1938
webapp/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -38,8 +38,8 @@
|
||||
"cached-path-relative": "1.0.2",
|
||||
"color": "3.1.2",
|
||||
"cryptiles": "4.1.3",
|
||||
"date-fns": "2.8.1",
|
||||
"diff": "4.0.1",
|
||||
"date-fns": "2.11.1",
|
||||
"diff": "4.0.2",
|
||||
"ember-auto-import": "1.5.3",
|
||||
"ember-checkbox-with-label": "2.0.0",
|
||||
"ember-cli": "3.17.0",
|
||||
@ -48,8 +48,8 @@
|
||||
"ember-cli-babel-polyfills": "2.0.1",
|
||||
"ember-cli-content-security-policy": "1.1.1",
|
||||
"ember-cli-dependency-checker": "3.2.0",
|
||||
"ember-cli-flash": "1.8.0",
|
||||
"ember-cli-htmlbars": "4.2.0",
|
||||
"ember-cli-flash": "1.8.1",
|
||||
"ember-cli-htmlbars": "4.2.3",
|
||||
"ember-cli-inject-live-reload": "2.0.2",
|
||||
"ember-cli-sass": "10.0.1",
|
||||
"ember-cli-shims": "1.2.0",
|
||||
@ -59,17 +59,17 @@
|
||||
"ember-concurrency-decorators": "1.0.0",
|
||||
"ember-css-modules": "1.2.1",
|
||||
"ember-css-modules-sass": "1.0.1",
|
||||
"ember-fetch": "^7.0.0",
|
||||
"ember-fetch": "8.0.1",
|
||||
"ember-inline-svg": "1.0.0",
|
||||
"ember-intl": "4.3.0",
|
||||
"ember-load-initializers": "2.1.1",
|
||||
"ember-power-select": "4.0.0",
|
||||
"ember-radio-button": "2.0.1",
|
||||
"ember-resolver": "7.0.0",
|
||||
"ember-source": "3.17.2",
|
||||
"ember-source": "3.17.3",
|
||||
"ember-wormhole": "0.5.5",
|
||||
"graphql": "14.6.0",
|
||||
"graphql-tag": "2.10.1",
|
||||
"graphql-tag": "2.10.3",
|
||||
"hoek": "6.1.3",
|
||||
"loader.js": "4.7.0",
|
||||
"merge": "1.2.1",
|
||||
@ -87,8 +87,8 @@
|
||||
"@types/ember__test-helpers": "0.7.10",
|
||||
"@types/mocha": "5.2.7",
|
||||
"@types/rsvp": "4.0.3",
|
||||
"babel-eslint": "10.0.3",
|
||||
"ember-cli-bundle-analyzer": "0.1.0",
|
||||
"babel-eslint": "10.1.0",
|
||||
"ember-cli-bundle-analyzer": "0.2.0",
|
||||
"ember-cli-chai": "0.5.0",
|
||||
"ember-cli-mocha": "0.15.0",
|
||||
"ember-cli-sri": "2.1.1",
|
||||
|
Loading…
Reference in New Issue
Block a user