@trudb/tru-common-lib 0.1.310 → 0.1.313

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.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, Input, Injectable, Component, Inject, HostListener, InjectionToken, NgModule, ViewEncapsulation, ViewChild, EventEmitter, Output, createComponent, Optional, APP_INITIALIZER, ViewChildren, QueryList, ContentChildren } from '@angular/core';
3
3
  import { EntityAspect, MetadataStore, DataService, EntityManager, EntityQuery, Predicate, FetchStrategy, breeze, EntityState, BinaryPredicate, AndOrPredicate } from 'breeze-client';
4
- import { BehaviorSubject, defer, from, of, Subject, Observable, skip, forkJoin, fromEvent, finalize, throwError } from 'rxjs';
4
+ import { BehaviorSubject, defer, from, of, Subject, Observable, fromEvent, skip, forkJoin, finalize, throwError } from 'rxjs';
5
5
  import * as _ from 'underscore';
6
6
  import ___default from 'underscore';
7
7
  import * as i2 from '@angular/common/http';
@@ -1730,11 +1730,170 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
1730
1730
  }]
1731
1731
  }] });
1732
1732
 
1733
+ class TruDesktopViewEventNotifier {
1734
+ active$ = new BehaviorSubject(false);
1735
+ onActiveStateChanged = () => {
1736
+ return this.active$;
1737
+ };
1738
+ get isActive() {
1739
+ return this.active$.getValue();
1740
+ }
1741
+ set isActive(value) {
1742
+ this.active$.next(value);
1743
+ }
1744
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopViewEventNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1745
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopViewEventNotifier });
1746
+ }
1747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopViewEventNotifier, decorators: [{
1748
+ type: Injectable
1749
+ }] });
1750
+
1751
+ class TruUtil {
1752
+ keyboardMap = ["", "", "", "CANCEL", "", "", "HELP", "", "BACK_SPACE", "TAB", "", "", "CLEAR", "ENTER", "RETURN", "", "SHIFT", "CONTROL", "ALT", "PAUSE", "CAPS_LOCK", "KANA", "EISU", "JUNJA", "FINAL", "HANJA", "", "ESCAPE", "CONVERT", "NONCONVERT", "ACCEPT", "MODECHANGE", "SPACE", "PAGE_UP", "PAGE_DOWN", "END", "HOME", "LEFT", "UP", "RIGHT", "DOWN", "SELECT", "PRINT", "EXECUTE", "PRINTSCREEN", "INSERT", "DELETE", "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "COLON", "SEMICOLON", "LESS_THAN", "EQUALS", "GREATER_THAN", "QUESTION_MARK", "AT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "WIN", "", "CONTEXT_MENU", "", "SLEEP", "NUMPAD0", "NUMPAD1", "NUMPAD2", "NUMPAD3", "NUMPAD4", "NUMPAD5", "NUMPAD6", "NUMPAD7", "NUMPAD8", "NUMPAD9", "MULTIPLY", "ADD", "SEPARATOR", "SUBTRACT", "DECIMAL", "DIVIDE", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "", "", "", "", "", "", "", "", "NUM_LOCK", "SCROLL_LOCK", "WIN_OEM_FJ_JISHO", "WIN_OEM_FJ_MASSHOU", "WIN_OEM_FJ_TOUROKU", "WIN_OEM_FJ_LOYA", "WIN_OEM_FJ_ROYA", "", "", "", "", "", "", "", "", "", "CIRCUMFLEX", "EXCLAMATION", "DOUBLE_QUOTE", "HASH", "DOLLAR", "PERCENT", "AMPERSAND", "UNDERSCORE", "OPEN_PAREN", "CLOSE_PAREN", "ASTERISK", "PLUS", "PIPE", "HYPHEN_MINUS", "OPEN_CURLY_BRACKET", "CLOSE_CURLY_BRACKET", "TILDE", "", "", "", "", "VOLUME_MUTE", "VOLUME_DOWN", "VOLUME_UP", "", "", "", "", "COMMA", "", "PERIOD", "SLASH", "BACK_QUOTE", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "OPEN_BRACKET", "BACK_SLASH", "CLOSE_BRACKET", "QUOTE", "", "META", "ALTGR", "", "WIN_ICO_HELP", "WIN_ICO_00", "", "WIN_ICO_CLEAR", "", "", "WIN_OEM_RESET", "WIN_OEM_JUMP", "WIN_OEM_PA1", "WIN_OEM_PA2", "WIN_OEM_PA3", "WIN_OEM_WSCTRL", "WIN_OEM_CUSEL", "WIN_OEM_ATTN", "WIN_OEM_FINISH", "WIN_OEM_COPY", "WIN_OEM_AUTO", "WIN_OEM_ENLW", "WIN_OEM_BACKTAB", "ATTN", "CRSEL", "EXSEL", "EREOF", "PLAY", "ZOOM", "", "PA1", "WIN_OEM_CLEAR", ""];
1753
+ constructor() { }
1754
+ numberToString = (value) => {
1755
+ return value === undefined ? '' : (value).toString();
1756
+ };
1757
+ nullableNumberToString = (value) => {
1758
+ return value === null || value === undefined ? '' : (value).toString();
1759
+ };
1760
+ tryParseInt = (str, defaultValue) => {
1761
+ var retValue = defaultValue;
1762
+ if (str !== null) {
1763
+ if (str.length > 0) {
1764
+ if (!isNaN(str)) {
1765
+ retValue = parseInt(str);
1766
+ }
1767
+ }
1768
+ }
1769
+ return retValue;
1770
+ };
1771
+ tryParseBool(value, defaultValue) {
1772
+ return (value == 'true' || value == 'false' || value === true || value === false) && JSON.parse(value) || defaultValue;
1773
+ }
1774
+ findClosestAncestorByClass = (element, cssSelector) => {
1775
+ let firstChar = cssSelector.charAt(0);
1776
+ for (; element; element = element.parentNode) {
1777
+ if (firstChar === '.') {
1778
+ if (element.classList && element.classList.contains(cssSelector.substr(1))) {
1779
+ return element;
1780
+ }
1781
+ }
1782
+ }
1783
+ return null;
1784
+ };
1785
+ isNumeric = (n) => {
1786
+ return !isNaN(parseFloat(n)) && isFinite(n);
1787
+ };
1788
+ removeNonNumericCharactersFromStr = (value) => {
1789
+ return value.replace(/[^0-9]/g, '');
1790
+ };
1791
+ isDate = (date) => {
1792
+ if (Object.prototype.toString.call(date) === '[object Date]') {
1793
+ if (isNaN(date.getTime())) {
1794
+ return false;
1795
+ }
1796
+ else {
1797
+ return true;
1798
+ }
1799
+ }
1800
+ else {
1801
+ return false;
1802
+ }
1803
+ };
1804
+ isValidDate = (value) => {
1805
+ return !isNaN(Date.parse(value));
1806
+ };
1807
+ rulesEval = (styles) => {
1808
+ let defaultStyles = {
1809
+ 'backgroundColor': '#ffffff',
1810
+ 'color': '#000000',
1811
+ 'font-style': 'normal',
1812
+ 'text-decoration': 'unset'
1813
+ };
1814
+ if (styles === null)
1815
+ return defaultStyles;
1816
+ if (Object.entries(styles).length !== 0) {
1817
+ Object.assign(defaultStyles, styles);
1818
+ return defaultStyles;
1819
+ }
1820
+ return defaultStyles;
1821
+ };
1822
+ /**
1823
+ * Serializes an object as URL parameters. The object should be a base type or have
1824
+ * properties that are each base types. Does not support a property with structure.
1825
+ * @param {Object} data
1826
+ * @returns {String}
1827
+ */
1828
+ formatAsUrlParameters = (data) => {
1829
+ if (typeof data !== 'object' || data === null)
1830
+ return (data == null ? '' : data.toString());
1831
+ let buffer = [];
1832
+ for (let name in data) {
1833
+ if (!data.hasOwnProperty(name)) {
1834
+ continue;
1835
+ }
1836
+ let value = data[name];
1837
+ buffer.push(encodeURIComponent(name) +
1838
+ '=' + encodeURIComponent(value == null ? '' : value));
1839
+ }
1840
+ let source = buffer.join('&')
1841
+ .replace(/%20/g, '+');
1842
+ return (source);
1843
+ };
1844
+ showEntityStatus = (entity, entityType, formatedRecordId) => {
1845
+ let title = '';
1846
+ if (entity) {
1847
+ if (entityType)
1848
+ title = entityType + ' - ';
1849
+ if (entity.entityAspect.entityState.isAdded()) {
1850
+ title += 'New Record';
1851
+ }
1852
+ else {
1853
+ title += formatedRecordId;
1854
+ }
1855
+ }
1856
+ return title;
1857
+ };
1858
+ getKeySequence = (event) => {
1859
+ var keys = [];
1860
+ if (event.ctrlKey)
1861
+ keys.push('ctrl');
1862
+ if (event.metaKey)
1863
+ keys.push('meta');
1864
+ if (event.shiftKey)
1865
+ keys.push('shift');
1866
+ if (event.altKey)
1867
+ keys.push('alt');
1868
+ var keyCode = (event.keyCode !== 'control' && event.which !== 'control') ? event.keyCode || event.which : null;
1869
+ if (keyCode)
1870
+ keys.push(this.keyboardMap[keyCode].toLowerCase());
1871
+ keys = [...new Set(keys)];
1872
+ return keys.join('+');
1873
+ };
1874
+ targetIsControl = (target) => {
1875
+ if (target === null)
1876
+ return false;
1877
+ var nodeName = target.nodeName.toLowerCase();
1878
+ return nodeName === 'input' || nodeName === 'textarea' || nodeName === 'select' || nodeName === '#text';
1879
+ };
1880
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1881
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruUtil, providedIn: 'root' });
1882
+ }
1883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruUtil, decorators: [{
1884
+ type: Injectable,
1885
+ args: [{
1886
+ providedIn: 'root',
1887
+ }]
1888
+ }], ctorParameters: () => [] });
1889
+
1733
1890
  class TruDetailViewBase {
1734
1891
  dataContext;
1735
1892
  appEnvironment;
1736
1893
  textManager;
1737
1894
  windowEventHandler;
1895
+ desktopViewEventNotifier;
1896
+ util;
1738
1897
  view;
1739
1898
  tableName;
1740
1899
  entities = [];
@@ -1746,11 +1905,13 @@ class TruDetailViewBase {
1746
1905
  navigationIndex = 0;
1747
1906
  recordsBeforeRevert = 0;
1748
1907
  subs = [];
1749
- constructor(dataContext, appEnvironment, textManager, windowEventHandler) {
1908
+ constructor(dataContext, appEnvironment, textManager, windowEventHandler, desktopViewEventNotifier, util) {
1750
1909
  this.dataContext = dataContext;
1751
1910
  this.appEnvironment = appEnvironment;
1752
1911
  this.textManager = textManager;
1753
1912
  this.windowEventHandler = windowEventHandler;
1913
+ this.desktopViewEventNotifier = desktopViewEventNotifier;
1914
+ this.util = util;
1754
1915
  }
1755
1916
  calculateNextIndex = () => {
1756
1917
  let nextIndex = 0;
@@ -1805,6 +1966,38 @@ class TruDetailViewBase {
1805
1966
  if (active)
1806
1967
  this.setEntityDisplayValues(this.tableName);
1807
1968
  }));
1969
+ this.subs.push(fromEvent(document, 'keydown').subscribe((event) => {
1970
+ if (this.desktopViewEventNotifier.isActive) {
1971
+ let keySequence = this.util.getKeySequence(event);
1972
+ if (keySequence === 'ctrl+i' || keySequence === 'meta+i') {
1973
+ //this.onAddEntity();
1974
+ event.preventDefault();
1975
+ }
1976
+ if (keySequence === 'ctrl+d' || keySequence === 'meta+d') {
1977
+ this.onDeleteEntity();
1978
+ event.preventDefault();
1979
+ }
1980
+ if (keySequence === 'ctrl+up' || keySequence === 'meta+up') {
1981
+ this.onFirstEntity();
1982
+ event.preventDefault();
1983
+ }
1984
+ if (keySequence === 'ctrl+left' || keySequence === 'meta+left') {
1985
+ this.onPreviousEntity();
1986
+ event.preventDefault();
1987
+ }
1988
+ if (keySequence === 'ctrl+right' || keySequence === 'meta+right') {
1989
+ this.onNextEntity();
1990
+ event.preventDefault();
1991
+ }
1992
+ if (keySequence === 'ctrl+down' || keySequence === 'meta+down') {
1993
+ this.onLastEntity();
1994
+ event.preventDefault();
1995
+ }
1996
+ var targetIsControl = this.util.targetIsControl(event.target);
1997
+ if (!targetIsControl && event.ctrlKey || event.altKey)
1998
+ event.preventDefault();
1999
+ }
2000
+ }));
1808
2001
  }
1809
2002
  setNavigationIndex(index) {
1810
2003
  this.navigationIndex = index;
@@ -1829,13 +2022,13 @@ class TruDetailViewBase {
1829
2022
  this.windowEventHandler.setWindowTitle(this.textManager.formatWindowTitle(title));
1830
2023
  this.recordLocation = recordIndex + ' of ' + this.entities.length;
1831
2024
  }
1832
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDetailViewBase, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruTextManager }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Component });
2025
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDetailViewBase, deps: [{ token: TruDataContext }, { token: TruAppEnvironment }, { token: TruTextManager }, { token: TruWindowEventHandler }, { token: TruDesktopViewEventNotifier }, { token: TruUtil }], target: i0.ɵɵFactoryTarget.Component });
1833
2026
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruDetailViewBase, selector: "tru-detail-view-base", inputs: { view: "view" }, ngImport: i0, template: "", styles: [""] });
1834
2027
  }
1835
2028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDetailViewBase, decorators: [{
1836
2029
  type: Component,
1837
2030
  args: [{ selector: 'tru-detail-view-base', template: "" }]
1838
- }], ctorParameters: () => [{ type: TruDataContext }, { type: TruAppEnvironment }, { type: TruTextManager }, { type: TruWindowEventHandler }], propDecorators: { view: [{
2031
+ }], ctorParameters: () => [{ type: TruDataContext }, { type: TruAppEnvironment }, { type: TruTextManager }, { type: TruWindowEventHandler }, { type: TruDesktopViewEventNotifier }, { type: TruUtil }], propDecorators: { view: [{
1839
2032
  type: Input
1840
2033
  }] } });
1841
2034
 
@@ -3741,145 +3934,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
3741
3934
  }]
3742
3935
  }] });
3743
3936
 
3744
- class TruUtil {
3745
- keyboardMap = ["", "", "", "CANCEL", "", "", "HELP", "", "BACK_SPACE", "TAB", "", "", "CLEAR", "ENTER", "RETURN", "", "SHIFT", "CONTROL", "ALT", "PAUSE", "CAPS_LOCK", "KANA", "EISU", "JUNJA", "FINAL", "HANJA", "", "ESCAPE", "CONVERT", "NONCONVERT", "ACCEPT", "MODECHANGE", "SPACE", "PAGE_UP", "PAGE_DOWN", "END", "HOME", "LEFT", "UP", "RIGHT", "DOWN", "SELECT", "PRINT", "EXECUTE", "PRINTSCREEN", "INSERT", "DELETE", "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "COLON", "SEMICOLON", "LESS_THAN", "EQUALS", "GREATER_THAN", "QUESTION_MARK", "AT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "WIN", "", "CONTEXT_MENU", "", "SLEEP", "NUMPAD0", "NUMPAD1", "NUMPAD2", "NUMPAD3", "NUMPAD4", "NUMPAD5", "NUMPAD6", "NUMPAD7", "NUMPAD8", "NUMPAD9", "MULTIPLY", "ADD", "SEPARATOR", "SUBTRACT", "DECIMAL", "DIVIDE", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "", "", "", "", "", "", "", "", "NUM_LOCK", "SCROLL_LOCK", "WIN_OEM_FJ_JISHO", "WIN_OEM_FJ_MASSHOU", "WIN_OEM_FJ_TOUROKU", "WIN_OEM_FJ_LOYA", "WIN_OEM_FJ_ROYA", "", "", "", "", "", "", "", "", "", "CIRCUMFLEX", "EXCLAMATION", "DOUBLE_QUOTE", "HASH", "DOLLAR", "PERCENT", "AMPERSAND", "UNDERSCORE", "OPEN_PAREN", "CLOSE_PAREN", "ASTERISK", "PLUS", "PIPE", "HYPHEN_MINUS", "OPEN_CURLY_BRACKET", "CLOSE_CURLY_BRACKET", "TILDE", "", "", "", "", "VOLUME_MUTE", "VOLUME_DOWN", "VOLUME_UP", "", "", "", "", "COMMA", "", "PERIOD", "SLASH", "BACK_QUOTE", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "OPEN_BRACKET", "BACK_SLASH", "CLOSE_BRACKET", "QUOTE", "", "META", "ALTGR", "", "WIN_ICO_HELP", "WIN_ICO_00", "", "WIN_ICO_CLEAR", "", "", "WIN_OEM_RESET", "WIN_OEM_JUMP", "WIN_OEM_PA1", "WIN_OEM_PA2", "WIN_OEM_PA3", "WIN_OEM_WSCTRL", "WIN_OEM_CUSEL", "WIN_OEM_ATTN", "WIN_OEM_FINISH", "WIN_OEM_COPY", "WIN_OEM_AUTO", "WIN_OEM_ENLW", "WIN_OEM_BACKTAB", "ATTN", "CRSEL", "EXSEL", "EREOF", "PLAY", "ZOOM", "", "PA1", "WIN_OEM_CLEAR", ""];
3746
- constructor() { }
3747
- numberToString = (value) => {
3748
- return value === undefined ? '' : (value).toString();
3749
- };
3750
- nullableNumberToString = (value) => {
3751
- return value === null || value === undefined ? '' : (value).toString();
3752
- };
3753
- tryParseInt = (str, defaultValue) => {
3754
- var retValue = defaultValue;
3755
- if (str !== null) {
3756
- if (str.length > 0) {
3757
- if (!isNaN(str)) {
3758
- retValue = parseInt(str);
3759
- }
3760
- }
3761
- }
3762
- return retValue;
3763
- };
3764
- tryParseBool(value, defaultValue) {
3765
- return (value == 'true' || value == 'false' || value === true || value === false) && JSON.parse(value) || defaultValue;
3766
- }
3767
- findClosestAncestorByClass = (element, cssSelector) => {
3768
- let firstChar = cssSelector.charAt(0);
3769
- for (; element; element = element.parentNode) {
3770
- if (firstChar === '.') {
3771
- if (element.classList && element.classList.contains(cssSelector.substr(1))) {
3772
- return element;
3773
- }
3774
- }
3775
- }
3776
- return null;
3777
- };
3778
- isNumeric = (n) => {
3779
- return !isNaN(parseFloat(n)) && isFinite(n);
3780
- };
3781
- removeNonNumericCharactersFromStr = (value) => {
3782
- return value.replace(/[^0-9]/g, '');
3783
- };
3784
- isDate = (date) => {
3785
- if (Object.prototype.toString.call(date) === '[object Date]') {
3786
- if (isNaN(date.getTime())) {
3787
- return false;
3788
- }
3789
- else {
3790
- return true;
3791
- }
3792
- }
3793
- else {
3794
- return false;
3795
- }
3796
- };
3797
- isValidDate = (value) => {
3798
- return !isNaN(Date.parse(value));
3799
- };
3800
- rulesEval = (styles) => {
3801
- let defaultStyles = {
3802
- 'backgroundColor': '#ffffff',
3803
- 'color': '#000000',
3804
- 'font-style': 'normal',
3805
- 'text-decoration': 'unset'
3806
- };
3807
- if (styles === null)
3808
- return defaultStyles;
3809
- if (Object.entries(styles).length !== 0) {
3810
- Object.assign(defaultStyles, styles);
3811
- return defaultStyles;
3812
- }
3813
- return defaultStyles;
3814
- };
3815
- /**
3816
- * Serializes an object as URL parameters. The object should be a base type or have
3817
- * properties that are each base types. Does not support a property with structure.
3818
- * @param {Object} data
3819
- * @returns {String}
3820
- */
3821
- formatAsUrlParameters = (data) => {
3822
- if (typeof data !== 'object' || data === null)
3823
- return (data == null ? '' : data.toString());
3824
- let buffer = [];
3825
- for (let name in data) {
3826
- if (!data.hasOwnProperty(name)) {
3827
- continue;
3828
- }
3829
- let value = data[name];
3830
- buffer.push(encodeURIComponent(name) +
3831
- '=' + encodeURIComponent(value == null ? '' : value));
3832
- }
3833
- let source = buffer.join('&')
3834
- .replace(/%20/g, '+');
3835
- return (source);
3836
- };
3837
- showEntityStatus = (entity, entityType, formatedRecordId) => {
3838
- let title = '';
3839
- if (entity) {
3840
- if (entityType)
3841
- title = entityType + ' - ';
3842
- if (entity.entityAspect.entityState.isAdded()) {
3843
- title += 'New Record';
3844
- }
3845
- else {
3846
- title += formatedRecordId;
3847
- }
3848
- }
3849
- return title;
3850
- };
3851
- getKeySequence = (event) => {
3852
- var keys = [];
3853
- if (event.ctrlKey)
3854
- keys.push('ctrl');
3855
- if (event.metaKey)
3856
- keys.push('meta');
3857
- if (event.shiftKey)
3858
- keys.push('shift');
3859
- if (event.altKey)
3860
- keys.push('alt');
3861
- var keyCode = (event.keyCode !== 'control' && event.which !== 'control') ? event.keyCode || event.which : null;
3862
- if (keyCode)
3863
- keys.push(this.keyboardMap[keyCode].toLowerCase());
3864
- keys = [...new Set(keys)];
3865
- return keys.join('+');
3866
- };
3867
- targetIsControl = (target) => {
3868
- if (target === null)
3869
- return false;
3870
- var nodeName = target.nodeName.toLowerCase();
3871
- return nodeName === 'input' || nodeName === 'textarea' || nodeName === 'select' || nodeName === '#text';
3872
- };
3873
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3874
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruUtil, providedIn: 'root' });
3875
- }
3876
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruUtil, decorators: [{
3877
- type: Injectable,
3878
- args: [{
3879
- providedIn: 'root',
3880
- }]
3881
- }], ctorParameters: () => [] });
3882
-
3883
3937
  class TruMatSelectPanel {
3884
3938
  renderer;
3885
3939
  select;
@@ -5057,24 +5111,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
5057
5111
  type: Output
5058
5112
  }] } });
5059
5113
 
5060
- class TruDesktopViewEventNotifier {
5061
- active$ = new BehaviorSubject(false);
5062
- onActiveStateChanged = () => {
5063
- return this.active$;
5064
- };
5065
- get isActive() {
5066
- return this.active$.getValue();
5067
- }
5068
- set isActive(value) {
5069
- this.active$.next(value);
5070
- }
5071
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopViewEventNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5072
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopViewEventNotifier });
5073
- }
5074
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopViewEventNotifier, decorators: [{
5075
- type: Injectable
5076
- }] });
5077
-
5078
5114
  class TruMergeData {
5079
5115
  _value;
5080
5116
  _modifiedBy;
@@ -9462,5 +9498,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
9462
9498
  * Generated bundle index. Do not edit.
9463
9499
  */
9464
9500
 
9465
- export { DetailViewModule, TruActionInvoke, TruAppEnvironment, TruAuth, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeMetadataProvider, TruBreezeValidator, TruBreezeValidatorModule, TruCard, TruCardColumn, TruCardColumnData, TruCardColumnModule, TruCardColumnSearchResultsConfigBase, TruChoice, TruCloudFileManager, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruConnectionHub, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataChange, TruDataContext, TruDataGrid, TruDataGridCellRenderer, TruDataGridHeader, TruDataGridModule, TruDataGridPkeyCellRenderer, TruDataGridRefHeader, TruDataGridTypes, TruDataGridUtil, TruDesktop, TruDesktopManager, TruDesktopModule, TruDesktopViewConfig, TruDetailViewBase, TruEditControlBase, TruEditControlConfigBase, TruEditParentControlConfigBase, TruEditPkeyControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGroupBox, TruGroupBoxModule, TruIconModule, TruListControlConfigBase, TruLogin, TruLoginModule, TruMatSelectPanel, TruMatSelectPanelModule, TruModelPropertyLookup, TruModelTypeLookup, TruNameValue, TruPasswordDialog, TruPasswordDialogModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruReportConfig, TruReportManager, TruReportView, TruReportViewModule, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchResultViewBase, TruSearchResultViewBaseModule, TruSearchResultViewManager, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTab, TruTabGroup, TruTabGroupModule, TruTabModule, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruToolbarUserProfile, TruToolbarUserProfileModule, TruUiNotification, TruUser, TruUtil, TruValidationDialog, TruValidationDialogConfig, TruValidationDialogContext, TruValidationDialogModule, TruValidatorFactory, TruWindowActionEventHandler, TruWindowEventArgs, TruWindowEventHandler };
9501
+ export { DetailViewModule, TruActionInvoke, TruAppEnvironment, TruAuth, TruAuthInterceptor, TruBreezeContext, TruBreezeContextFactory, TruBreezeMetadataProvider, TruBreezeValidator, TruBreezeValidatorModule, TruCard, TruCardColumn, TruCardColumnData, TruCardColumnModule, TruCardColumnSearchResultsConfigBase, TruChoice, TruCloudFileManager, TruColumn, TruColumnModule, TruCommonModule, TruComponentConfigBase, TruComponentLookup, TruConfirmDialog, TruConfirmDialogConfig, TruConfirmDialogModule, TruConnectionHub, TruContextFilter, TruContextFilterChoice, TruContextFilters, TruControlComponentConfigBase, TruDataChange, TruDataContext, TruDataGrid, TruDataGridCellRenderer, TruDataGridHeader, TruDataGridModule, TruDataGridPkeyCellRenderer, TruDataGridRefHeader, TruDataGridTypes, TruDataGridUtil, TruDesktop, TruDesktopManager, TruDesktopModule, TruDesktopViewConfig, TruDesktopViewEventNotifier, TruDetailViewBase, TruEditControlBase, TruEditControlConfigBase, TruEditParentControlConfigBase, TruEditPkeyControlConfigBase, TruEntityAccessor, TruEntityBase, TruExportDialog, TruExportDialogConfig, TruExportDialogModule, TruForm, TruFormModule, TruFormulaEval, TruGroupBox, TruGroupBoxModule, TruIconModule, TruListControlConfigBase, TruLogin, TruLoginModule, TruMatSelectPanel, TruMatSelectPanelModule, TruModelPropertyLookup, TruModelTypeLookup, TruNameValue, TruPasswordDialog, TruPasswordDialogModule, TruPredicate, TruPredicateMap, TruPropertyConfigBase, TruPropertyConfigCloudFile, TruPropertyConfigDate, TruPropertyConfigDecimal, TruPropertyConfigFile, TruPropertyConfigForeignKey, TruPropertyConfigInteger, TruPropertyConfigPassword, TruPropertyConfigPercentage, TruPropertyConfigScientific, TruPropertyConfigText, TruPropertyConfigTextChoices, TruPropertyConfigUsaAddress, TruPropertyConfigZipCode, TruQueryPredicateManager, TruReportConfig, TruReportManager, TruReportView, TruReportViewModule, TruRow, TruRowModule, TruSearchConfigBase, TruSearchControlBase, TruSearchControlConfigBase, TruSearchControlRangeBase, TruSearchIconModule, TruSearchPanelPositionManager, TruSearchPanelPositionManagerModule, TruSearchResultViewBase, TruSearchResultViewBaseModule, TruSearchResultViewManager, TruSearchViewBase, TruSearchViewBaseModule, TruSearchViewControlEventHandler, TruSearchViewEventHandler, TruSort, TruTab, TruTabGroup, TruTabGroupModule, TruTabModule, TruTableConfigBase, TruTableRegistry, TruTextManager, TruToolbar, TruToolbarButton, TruToolbarButtonModule, TruToolbarContextFilter, TruToolbarContextFilterModule, TruToolbarDropdown, TruToolbarDropdownModule, TruToolbarMenu, TruToolbarMenuModule, TruToolbarModule, TruToolbarSeparator, TruToolbarSeparatorModule, TruToolbarText, TruToolbarTextModule, TruToolbarUserProfile, TruToolbarUserProfileModule, TruUiNotification, TruUser, TruUtil, TruValidationDialog, TruValidationDialogConfig, TruValidationDialogContext, TruValidationDialogModule, TruValidatorFactory, TruWindowActionEventHandler, TruWindowEventArgs, TruWindowEventHandler };
9466
9502
  //# sourceMappingURL=trudb-tru-common-lib.mjs.map