taon 21.0.77 → 21.0.82

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.
Files changed (62) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +5 -0
  2. package/bin/start.js +2 -3
  3. package/browser/fesm2022/taon-browser.mjs +169 -52
  4. package/browser/fesm2022/taon-browser.mjs.map +1 -1
  5. package/browser/package.json +1 -1
  6. package/browser/types/taon-browser.d.ts +37 -18
  7. package/browser-prod/fesm2022/taon-browser-prod.mjs +169 -52
  8. package/browser-prod/fesm2022/taon-browser-prod.mjs.map +1 -1
  9. package/browser-prod/package.json +1 -1
  10. package/browser-prod/types/taon-browser-prod.d.ts +37 -18
  11. package/cli.d.ts +2 -2
  12. package/cli.js +4 -4
  13. package/cli.js.map +1 -1
  14. package/icon-menu-taon.svg +15 -15
  15. package/lib/build-info._auto-generated_.d.ts +1 -1
  16. package/lib/build-info._auto-generated_.js +1 -1
  17. package/lib/create-context.js +4 -1
  18. package/lib/create-context.js.map +1 -1
  19. package/lib/endpoint-context.js +9 -3
  20. package/lib/endpoint-context.js.map +1 -1
  21. package/lib/global-state/taon-global-state/taon-global-state.entity.d.ts +1 -1
  22. package/lib/global-state/taon-global-state/taon-global-state.entity.js +2 -2
  23. package/lib/global-state/taon-global-state/taon-global-state.entity.js.map +1 -1
  24. package/lib/package.json +1 -1
  25. package/lib/start-cli.d.ts +7 -0
  26. package/lib/start-cli.js +46 -0
  27. package/lib/start-cli.js.map +1 -0
  28. package/lib/ui/index.js +2 -2
  29. package/lib/ui/taon-admin-mode-configuration/breakpoints.service.d.ts +8 -0
  30. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  31. package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +33 -14
  32. package/lib-prod/base-classes/base-controller.js.map +1 -1
  33. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  34. package/lib-prod/build-info._auto-generated_.js +1 -1
  35. package/lib-prod/create-context.js +4 -1
  36. package/lib-prod/create-context.js.map +1 -1
  37. package/lib-prod/endpoint-context.js +10 -4
  38. package/lib-prod/endpoint-context.js.map +1 -1
  39. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.d.ts +1 -1
  40. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js +2 -2
  41. package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js.map +1 -1
  42. package/lib-prod/index.js.map +1 -1
  43. package/lib-prod/package.json +1 -1
  44. package/lib-prod/realtime/realtime-client.js.map +1 -1
  45. package/lib-prod/realtime/realtime-core.js.map +1 -1
  46. package/lib-prod/realtime/realtime-server.js.map +1 -1
  47. package/lib-prod/start-cli.d.ts +7 -0
  48. package/lib-prod/start-cli.js +43 -0
  49. package/lib-prod/start-cli.js.map +1 -0
  50. package/lib-prod/ui/index.d.ts +1 -1
  51. package/lib-prod/ui/index.js +1 -1
  52. package/lib-prod/ui/taon-admin-mode-configuration/index.d.ts +1 -1
  53. package/lib-prod/ui/taon-admin-mode-configuration/index.js +1 -1
  54. package/package.json +1 -1
  55. package/websql/fesm2022/taon-websql.mjs +190 -74
  56. package/websql/fesm2022/taon-websql.mjs.map +1 -1
  57. package/websql/package.json +1 -1
  58. package/websql/types/taon-websql.d.ts +37 -18
  59. package/websql-prod/fesm2022/taon-websql-prod.mjs +191 -75
  60. package/websql-prod/fesm2022/taon-websql-prod.mjs.map +1 -1
  61. package/websql-prod/package.json +1 -1
  62. package/websql-prod/types/taon-websql-prod.d.ts +37 -18
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taon/websql",
3
- "version": "21.0.77",
3
+ "version": "21.0.82",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -9,10 +9,9 @@ import { DataSource, Repository, SaveOptions, DeepPartial, QueryDeepPartialEntit
9
9
  export { AfterInsert, AfterLoad, AfterRecover, AfterRemove, AfterSoftRemove, AfterUpdate, BeforeInsert, BeforeRecover, BeforeRemove, BeforeSoftRemove, BeforeUpdate, Column, Connection, CreateDateColumn, Column as CustomColumn, DeleteDateColumn, Generated, Generated as GeneratedColumn, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, OneToMany, OneToOne, PrimaryColumn, PrimaryGeneratedColumn, Repository, TreeChildren, TreeParent, UpdateDateColumn, VersionColumn, VirtualColumn } from 'taon-typeorm/websql';
10
10
  import { CoreModels } from 'tnp-core/websql';
11
11
  import { MySqlQuerySource } from 'taon-type-sql/websql';
12
- import * as rxjs from 'rxjs';
13
12
  import { Observable, Subscriber } from 'rxjs';
14
13
  import * as i0 from '@angular/core';
15
- import { InjectionToken, ViewContainerRef } from '@angular/core';
14
+ import { InjectionToken, ViewContainerRef, WritableSignal, TemplateRef } from '@angular/core';
16
15
  import { AxiosResponse } from 'axios';
17
16
  import * as _ngx_formly_core from '@ngx-formly/core';
18
17
  import { FieldWrapper, FieldArrayType, FormlyFormBuilder, FormlyFieldConfig } from '@ngx-formly/core';
@@ -20,6 +19,7 @@ import * as Electron from 'electron';
20
19
  import { ipcRenderer } from 'electron';
21
20
  import { ServerOptions, Server as Server$1, DefaultEventsMap } from 'socket.io';
22
21
  import { io, Socket } from 'socket.io-client';
22
+ import { StorSignal } from 'taon-storage/websql';
23
23
  import * as multer from 'multer';
24
24
 
25
25
  declare abstract class TaonBaseCustomRepository extends TaonBaseInjector {
@@ -1982,26 +1982,45 @@ declare function Cookie(name: string, expireInSecond?: number): (target: any, pr
1982
1982
  declare function Header(name?: string): (target: any, propertyKey: string | symbol, parameterIndex: number) => void;
1983
1983
  declare function Body(name?: string): (target: any, propertyKey: string | symbol, parameterIndex: number) => void;
1984
1984
 
1985
- declare class TaonAdminService {
1985
+ declare enum TaonAdminPanelMode {
1986
+ NONE = "NONE",
1987
+ ICON = "ICON",
1988
+ POPUP = "POPUP",
1989
+ SIDE = "SIDE",
1990
+ FULL_SCREEN = "FULL_SCREEN"
1991
+ }
1992
+ interface TaonAdminTab {
1993
+ name: string;
1994
+ templateOrIframeLink?: string | TemplateRef<any>;
1995
+ }
1996
+ declare class TaonAdmin {
1986
1997
  private static _instance;
1987
- static get Instance(): TaonAdminService;
1988
- scrollableEnabled: boolean;
1989
- private onEditMode;
1990
- onEditMode$: rxjs.Observable<unknown>;
1991
- adminPanelIsOpen: boolean;
1992
- draggablePopupMode: boolean;
1993
- draggablePopupModeFullScreen: boolean;
1998
+ static init(): void;
1999
+ static get Instance(): TaonAdmin;
2000
+ private constructor();
2001
+ additionalTabs: WritableSignal<TaonAdminTab[]>;
2002
+ adminPanelMode: StorSignal<TaonAdminPanelMode>;
1994
2003
  /**
1995
2004
  * Property used in taon
1996
2005
  */
1997
- keepWebsqlDbDataAfterReload: boolean;
2006
+ keepWebsqlDbDataAfterReload: StorSignal<boolean>;
2007
+ }
2008
+ declare class TaonAdminService {
2009
+ readonly isIframe: boolean;
2010
+ private breakpointsService;
1998
2011
  constructor();
1999
- setEditMode(value: boolean): void;
2000
- setKeepWebsqlDbDataAfterReload(value: boolean): void;
2001
- enabledTabs: any[];
2002
- hide(): void;
2012
+ isDesktop: WritableSignal<boolean>;
2013
+ get adminPanelMode(): StorSignal<TaonAdminPanelMode>;
2014
+ get keepWebsqlDbDataAfterReload(): StorSignal<boolean>;
2015
+ get additionalTabs(): WritableSignal<TaonAdminTab[]>;
2016
+ admin(): void;
2003
2017
  show(): void;
2004
- logout(): void;
2018
+ hide(): void;
2019
+ private devTapCount;
2020
+ private devTapTimeout;
2021
+ enableDeveloperIf5Timetap(): void;
2022
+ static ɵfac: i0.ɵɵFactoryDeclaration<TaonAdminService, never>;
2023
+ static ɵprov: i0.ɵɵInjectableDeclaration<TaonAdminService>;
2005
2024
  }
2006
2025
 
2007
2026
  declare namespace Taon {
@@ -2178,5 +2197,5 @@ declare const TAON_FLATTEN_MAPPING: {
2178
2197
  };
2179
2198
  };
2180
2199
 
2181
- export { BaseTaonClassesNames, Body, BooleanColumn, CURRENT_HOST_BACKEND_PORT, CURRENT_HOST_URL, ClassHelpers, ContextDbMigrations, ContextsEndpointStorage, ControllerConfig, Cookie, DELETE, DITaonContainer, DateTimeColumn, DecimalNumberColumn, DecoratorAbstractOpt, EndpointContext, EntityProcess, FormlyHorizontalWrapper, GET, HEAD, HTML, Header, MethodConfig, MockNamespaceIpc, MockServerIpc, MockSocketIpc, Models, NumberColumn, PATCH, POST, PUT, ParamConfig, Path, Query, RealtimeClient, RealtimeCore, RealtimeModels, RealtimeServer, RealtimeStrategy, RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, RealtimeSubsManager, RegisterComponentType, RegisterComponentTypeForEntity, RepeatTypeComponent, SimpleJsonColumn, String100Column, String200Column, String20Column, String45Column, String500Column, StringColumn, Symbols, TAON_CONTEXT, TAON_FLATTEN_MAPPING, Taon, TaonAdminService, TaonBaseAbstractEntity, TaonBaseAngularService, TaonBaseClass, TaonBaseContext, TaonBaseController, TaonBaseCrudController, TaonBaseCustomRepository, TaonBaseEntity, TaonBaseFileUploadMiddleware, TaonBaseInjector, TaonBaseMiddleware, TaonBaseMigration, TaonBaseProvider, TaonBaseRepository, TaonBaseSubscriberForEntity, TaonController, TaonControllerOptions, TaonEntity, TaonEntityKeysToOmitArr, TaonEntityOptions, TaonHelpers, TaonMiddleware, TaonMiddlewareOptions, TaonMigration, TaonMigrationOptions, TaonProvider, TaonProviderOptions, TaonRepository, TaonRepositoryOptions, TaonRestResponseWrapper, TaonSubscriber, TaonSubscriberOptions, TaonTempDatabasesFolder, TaonTempRoutesFolder, Validators, apiPrefix, cloneObj, controllerConfigFrom, createContext, createContextTemplate, findTypeForEntity, getFromlyConfigFor, getRegisteredComponents, getResponseValue, getTransformFunction, inject, singleTransform, typeFromEntity, typeFromName };
2182
- export type { AbstractEntityOmitKeys, FormlyArrayTransformFn, FormlyEntityType, FormlyInputType, MigrationStatus, MulterFileUploadResponse, TaonAdditionalMiddlewareMethodInfo, TaonContext, TaonEntityKeysToOmit, TaonHttpDecoratorOptions, TaonMiddlewareFunction, TaonMiddlewareInheritanceObj };
2200
+ export { BaseTaonClassesNames, Body, BooleanColumn, CURRENT_HOST_BACKEND_PORT, CURRENT_HOST_URL, ClassHelpers, ContextDbMigrations, ContextsEndpointStorage, ControllerConfig, Cookie, DELETE, DITaonContainer, DateTimeColumn, DecimalNumberColumn, DecoratorAbstractOpt, EndpointContext, EntityProcess, FormlyHorizontalWrapper, GET, HEAD, HTML, Header, MethodConfig, MockNamespaceIpc, MockServerIpc, MockSocketIpc, Models, NumberColumn, PATCH, POST, PUT, ParamConfig, Path, Query, RealtimeClient, RealtimeCore, RealtimeModels, RealtimeServer, RealtimeStrategy, RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, RealtimeSubsManager, RegisterComponentType, RegisterComponentTypeForEntity, RepeatTypeComponent, SimpleJsonColumn, String100Column, String200Column, String20Column, String45Column, String500Column, StringColumn, Symbols, TAON_CONTEXT, TAON_FLATTEN_MAPPING, Taon, TaonAdmin, TaonAdminPanelMode, TaonAdminService, TaonBaseAbstractEntity, TaonBaseAngularService, TaonBaseClass, TaonBaseContext, TaonBaseController, TaonBaseCrudController, TaonBaseCustomRepository, TaonBaseEntity, TaonBaseFileUploadMiddleware, TaonBaseInjector, TaonBaseMiddleware, TaonBaseMigration, TaonBaseProvider, TaonBaseRepository, TaonBaseSubscriberForEntity, TaonController, TaonControllerOptions, TaonEntity, TaonEntityKeysToOmitArr, TaonEntityOptions, TaonHelpers, TaonMiddleware, TaonMiddlewareOptions, TaonMigration, TaonMigrationOptions, TaonProvider, TaonProviderOptions, TaonRepository, TaonRepositoryOptions, TaonRestResponseWrapper, TaonSubscriber, TaonSubscriberOptions, TaonTempDatabasesFolder, TaonTempRoutesFolder, Validators, apiPrefix, cloneObj, controllerConfigFrom, createContext, createContextTemplate, findTypeForEntity, getFromlyConfigFor, getRegisteredComponents, getResponseValue, getTransformFunction, inject, singleTransform, typeFromEntity, typeFromName };
2201
+ export type { AbstractEntityOmitKeys, FormlyArrayTransformFn, FormlyEntityType, FormlyInputType, MigrationStatus, MulterFileUploadResponse, TaonAdditionalMiddlewareMethodInfo, TaonAdminTab, TaonContext, TaonEntityKeysToOmit, TaonHttpDecoratorOptions, TaonMiddlewareFunction, TaonMiddlewareInheritanceObj };
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { ___NS__merge, ___NS__cloneDeep, ___NS__camelCase, ___NS__isUndefined, ___NS__isArray, ___NS__isFunction, ___NS__isNull, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__OrignalClassKey, ___NS__isObject, ___NS__isRegExp, ___NS__isBuffer, ___NS__isArrayBuffer, ___NS__isDate, ___NS__isString, Utils__NS__uniqArray, ___NS__uniq, UtilsMigrations__NS__isValidTimestamp, Helpers__NS__throwError, UtilsMigrations__NS__getTimestampFromClassName, ___NS__times, ___NS__first, Helpers__NS__logInfo, UtilsOs__NS__isWebSQL, UtilsOs__NS__isElectron, Helpers__NS__error, UtilsOs__NS__isRunningInDocker, ___NS__isBoolean, ___NS__isNil, ___NS__set, Helpers__NS__info, ___NS__slice, ___NS__last, UtilsOs__NS__isNode, UtilsOs__NS__isBrowser, ___NS__startCase, crossPlatformPath, Helpers__NS__isBlob, Helpers__NS__runSyncOrAsync, config, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, UtilsOs__NS__isRunningInCliMode, Helpers__NS__log, ___NS__isNumber, UtilsTerminal__NS__waitMilliseconds, CoreModels__NS__TaonHttpErrorCustomProp, Helpers__NS__warn, ___NS__lowerFirst } from 'tnp-core/websql-prod';
2
+ import { ___NS__merge, ___NS__cloneDeep, ___NS__camelCase, ___NS__isUndefined, ___NS__isArray, ___NS__isFunction, ___NS__isNull, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__OrignalClassKey, ___NS__isObject, ___NS__isRegExp, ___NS__isBuffer, ___NS__isArrayBuffer, ___NS__isDate, ___NS__isString, Utils__NS__uniqArray, ___NS__uniq, UtilsMigrations__NS__isValidTimestamp, Helpers__NS__throwError, UtilsMigrations__NS__getTimestampFromClassName, ___NS__times, ___NS__first, Helpers__NS__logInfo, UtilsOs__NS__isWebSQL, UtilsOs__NS__isElectron, Helpers__NS__error, UtilsOs__NS__isRunningInDocker, ___NS__isBoolean, ___NS__isNil, ___NS__set, Helpers__NS__info, Helpers__NS__warn, ___NS__slice, ___NS__last, UtilsOs__NS__isNode, UtilsOs__NS__isBrowser, ___NS__startCase, crossPlatformPath, Helpers__NS__isBlob, Helpers__NS__runSyncOrAsync, config, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, UtilsOs__NS__isRunningInCliMode, Helpers__NS__log, ___NS__isNumber, UtilsTerminal__NS__waitMilliseconds, CoreModels__NS__TaonHttpErrorCustomProp, ___NS__lowerFirst } from 'tnp-core/websql-prod';
3
3
  import axios from 'axios';
4
4
  import { JSON10 } from 'json10/websql-prod';
5
5
  import { walk } from 'lodash-walk-object/websql-prod';
@@ -8,14 +8,16 @@ import { Observable, Subject, from } from 'rxjs';
8
8
  import { Table, TableIndex, EventSubscriber, Entity, DataSource, Column, PrimaryGeneratedColumn, VersionColumn, CreateDateColumn } from 'taon-typeorm/websql-prod';
9
9
  export { AfterInsert, AfterLoad, AfterRecover, AfterRemove, AfterSoftRemove, AfterUpdate, BeforeInsert, BeforeRecover, BeforeRemove, BeforeSoftRemove, BeforeUpdate, Column, Connection, CreateDateColumn, Column as CustomColumn, DeleteDateColumn, Generated, Generated as GeneratedColumn, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, OneToMany, OneToOne, PrimaryColumn, PrimaryGeneratedColumn, Repository, TreeChildren, TreeParent, UpdateDateColumn, VersionColumn, VirtualColumn } from 'taon-typeorm/websql-prod';
10
10
  import * as i0 from '@angular/core';
11
- import { InjectionToken, inject as inject$1, PLATFORM_ID, Injectable, ViewContainerRef, ViewChild, Component } from '@angular/core';
11
+ import { InjectionToken, Injectable, signal, inject as inject$1, PLATFORM_ID, ViewContainerRef, ViewChild, Component } from '@angular/core';
12
12
  import { CLASS__NS__getName, CLASS__NS__setName, CLASS__NS__getBy } from 'typescript-class-helpers/websql-prod';
13
13
  import * as JSON5 from 'json5';
14
14
  import { io } from 'socket.io-client';
15
+ import { TaonStor__NS__inLocalstorage } from 'taon-storage/websql-prod';
16
+ import * as i1 from '@angular/cdk/layout';
15
17
  import { __decorate, __metadata, __param } from 'tslib';
16
18
  import { isPlatformServer, isPlatformBrowser } from '@angular/common';
17
19
  import { MySqlQuerySource } from 'taon-type-sql/websql-prod';
18
- import * as i1 from '@ngx-formly/core';
20
+ import * as i1$1 from '@ngx-formly/core';
19
21
  import { FieldWrapper, FieldArrayType } from '@ngx-formly/core';
20
22
 
21
23
  const TaonEntityKeysToOmitArr = [
@@ -2307,51 +2309,158 @@ class RealtimeCore {
2307
2309
  }
2308
2310
  }
2309
2311
 
2312
+ //#region imports
2313
+ //#endregion
2314
+ const BRK = {
2315
+ mobile: '(max-width: 599.98px)',
2316
+ // tablet: obsvious
2317
+ desktop: '(min-width: 840.00px)',
2318
+ };
2319
+ class BreakpointsService {
2320
+ listenTo() {
2321
+ setTimeout(() => {
2322
+ this.sub.next(this.current);
2323
+ });
2324
+ return this.sub.asObservable();
2325
+ }
2326
+ constructor(breakpointObserver) {
2327
+ this.sub = new Subject();
2328
+ breakpointObserver.observe([BRK.mobile, BRK.desktop]).subscribe(state => {
2329
+ if (!___NS__isUndefined([BRK.mobile].find(f => state.breakpoints[f]))) {
2330
+ this.current = 'mobile';
2331
+ this.sub.next('mobile');
2332
+ }
2333
+ else if (!___NS__isUndefined([BRK.desktop].find(f => state.breakpoints[f]))) {
2334
+ this.current = 'desktop';
2335
+ this.sub.next('desktop');
2336
+ }
2337
+ else {
2338
+ this.current = 'tablet';
2339
+ this.sub.next('tablet');
2340
+ }
2341
+ });
2342
+ setTimeout(() => {
2343
+ if (breakpointObserver.isMatched([BRK.mobile])) {
2344
+ this.current = 'mobile';
2345
+ this.sub.next('mobile');
2346
+ }
2347
+ else if (breakpointObserver.isMatched([BRK.desktop])) {
2348
+ this.current = 'desktop';
2349
+ this.sub.next('desktop');
2350
+ }
2351
+ else {
2352
+ this.current = 'tablet';
2353
+ this.sub.next('tablet');
2354
+ }
2355
+ });
2356
+ }
2357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: BreakpointsService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
2358
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: BreakpointsService, providedIn: 'root' }); }
2359
+ }
2360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: BreakpointsService, decorators: [{
2361
+ type: Injectable,
2362
+ args: [{ providedIn: 'root' }]
2363
+ }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });
2364
+
2310
2365
  //#region import
2311
2366
  //#endregion
2312
- const ENV = globalThis['ENV'];
2313
- // @Injectable({ providedIn: 'root' }) TODO make it angular service
2314
- class TaonAdminService {
2367
+ var TaonAdminPanelMode;
2368
+ (function (TaonAdminPanelMode) {
2369
+ TaonAdminPanelMode["NONE"] = "NONE";
2370
+ TaonAdminPanelMode["ICON"] = "ICON";
2371
+ TaonAdminPanelMode["POPUP"] = "POPUP";
2372
+ TaonAdminPanelMode["SIDE"] = "SIDE";
2373
+ TaonAdminPanelMode["FULL_SCREEN"] = "FULL_SCREEN";
2374
+ })(TaonAdminPanelMode || (TaonAdminPanelMode = {}));
2375
+ class TaonAdmin {
2376
+ static init() {
2377
+ TaonAdmin.Instance;
2378
+ }
2315
2379
  static get Instance() {
2316
2380
  if (!this._instance) {
2317
- this._instance = new TaonAdminService();
2381
+ this._instance = new TaonAdmin();
2318
2382
  }
2319
2383
  return this._instance;
2320
2384
  }
2321
- //#endregion
2322
- //#endregion
2323
- //#region constructor
2324
2385
  constructor() {
2386
+ this.additionalTabs = signal([], ...(ngDevMode ? [{ debugName: "additionalTabs" }] : []));
2387
+ //#region fields & getters / admin panel mode
2388
+ this.adminPanelMode = TaonStor__NS__inLocalstorage({
2389
+ defaultValue: TaonAdminPanelMode.NONE,
2390
+ keyOrPath: 'adminPanelMode',
2391
+ }, TaonAdminService);
2325
2392
  //#endregion
2326
- //#region fields & getters
2327
- this.scrollableEnabled = false; // TOOD false by default
2328
- this.onEditMode = new Subject();
2329
- this.onEditMode$ = this.onEditMode.asObservable();
2330
- this.enabledTabs = [];
2331
- TaonAdminService._instance = this;
2332
- this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;
2393
+ //#region fields & getters / keep websql database data after reload
2394
+ /**
2395
+ * Property used in taon
2396
+ */
2397
+ this.keepWebsqlDbDataAfterReload = TaonStor__NS__inLocalstorage({
2398
+ defaultValue: false,
2399
+ keyOrPath: 'keepWebsqlDbDataAfterReload',
2400
+ }, TaonAdminService);
2401
+ // console.log('TAON ADMIN INSTANCE CREATED');
2333
2402
  }
2334
- //#endregion
2335
- //#region methods
2336
- setEditMode(value) {
2337
- this.onEditMode.next(value);
2403
+ }
2404
+ //#region @browser
2405
+ //#endregion
2406
+ class TaonAdminService {
2407
+ constructor() {
2408
+ //#region singleton + constructor
2409
+ this.isIframe = window.location !== window.parent.location;
2410
+ this.breakpointsService = inject$1(BreakpointsService);
2411
+ //#endregion
2412
+ this.isDesktop = signal(true, ...(ngDevMode ? [{ debugName: "isDesktop" }] : []));
2413
+ this.devTapCount = 0;
2414
+ window['Taon'] = this;
2415
+ window['taon'] = this;
2416
+ this.breakpointsService.listenTo().subscribe(breakpoint => {
2417
+ // console.log({ breakpoint });
2418
+ this.isDesktop.set(breakpoint === 'desktop');
2419
+ if (this.isDesktop()) {
2420
+ //
2421
+ }
2422
+ else {
2423
+ this.adminPanelMode.set(TaonAdminPanelMode.NONE);
2424
+ }
2425
+ });
2338
2426
  }
2339
- setKeepWebsqlDbDataAfterReload(value) {
2340
- // if (value && !this.keepWebsqlDbDataAfterReload) {
2341
- // this.firstTimeKeepWebsqlDbDataTrue = true;
2342
- // }
2343
- this.keepWebsqlDbDataAfterReload = value;
2427
+ get adminPanelMode() {
2428
+ return TaonAdmin.Instance.adminPanelMode;
2344
2429
  }
2345
- hide() {
2346
- this.draggablePopupMode = false;
2347
- this.adminPanelIsOpen = false;
2430
+ get keepWebsqlDbDataAfterReload() {
2431
+ return TaonAdmin.Instance.keepWebsqlDbDataAfterReload;
2432
+ }
2433
+ get additionalTabs() {
2434
+ return TaonAdmin.Instance.additionalTabs;
2435
+ }
2436
+ admin() {
2437
+ this.adminPanelMode.set(TaonAdminPanelMode.FULL_SCREEN);
2348
2438
  }
2349
2439
  show() {
2350
- this.draggablePopupMode = false;
2351
- this.adminPanelIsOpen = true;
2440
+ this.adminPanelMode.set(TaonAdminPanelMode.POPUP);
2352
2441
  }
2353
- logout() { }
2442
+ hide() {
2443
+ this.adminPanelMode.set(TaonAdminPanelMode.NONE);
2444
+ }
2445
+ enableDeveloperIf5Timetap() {
2446
+ this.devTapCount++;
2447
+ // reset timer every tap
2448
+ clearTimeout(this.devTapTimeout);
2449
+ this.devTapTimeout = setTimeout(() => {
2450
+ this.devTapCount = 0;
2451
+ }, 2000); // 2s window to complete taps
2452
+ if (this.devTapCount >= 5) {
2453
+ this.devTapCount = 0;
2454
+ this.show();
2455
+ }
2456
+ }
2457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2458
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminService, providedIn: 'root' }); }
2354
2459
  }
2460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminService, decorators: [{
2461
+ type: Injectable,
2462
+ args: [{ providedIn: 'root' }]
2463
+ }], ctorParameters: () => [] });
2355
2464
 
2356
2465
  /* */
2357
2466
  /* */
@@ -2990,8 +3099,9 @@ class EndpointContext {
2990
3099
  let keepWebsqlDbDataAfterReload = false;
2991
3100
  //#region @browser
2992
3101
  keepWebsqlDbDataAfterReload =
2993
- TaonAdminService.Instance?.keepWebsqlDbDataAfterReload; // TODO @LAST
3102
+ TaonAdmin.Instance?.keepWebsqlDbDataAfterReload(); // TODO @LAST
2994
3103
  //#endregion
3104
+ // console.log({keepWebsqlDbDataAfterReload})
2995
3105
  databaseConfig = databaseConfig = Models__NS__DatabaseConfig.from({
2996
3106
  location: `db-${this.contextName}.sqlite`,
2997
3107
  type: 'sqljs',
@@ -3305,9 +3415,14 @@ class EndpointContext {
3305
3415
  return;
3306
3416
  }
3307
3417
  //#region @websql
3308
- for (const classFun of this.getClassFunByArr(Models__NS__ClassType.ENTITY)) {
3309
- const repo = (await this.connection.getRepository(ClassHelpers__NS__getOrginalClass(classFun)));
3310
- this.repos.set(ClassHelpers__NS__getName(classFun), repo);
3418
+ if (this.connection) {
3419
+ for (const classFun of this.getClassFunByArr(Models__NS__ClassType.ENTITY)) {
3420
+ const repo = (await this.connection.getRepository(ClassHelpers__NS__getOrginalClass(classFun)));
3421
+ this.repos.set(ClassHelpers__NS__getName(classFun), repo);
3422
+ }
3423
+ }
3424
+ else {
3425
+ Helpers__NS__warn(`Skipping db init for ${this.contextName}.Use database:true to enable db.`);
3311
3426
  }
3312
3427
  //#endregion
3313
3428
  for (const classTypeName of [
@@ -4516,8 +4631,8 @@ class EndpointContext {
4516
4631
  //#region handling web sql request
4517
4632
  //#region @websqlOnly
4518
4633
  //#region resolve variables
4519
- const MIN_TIMEOUT = 400;
4520
- const MIN_TIMEOUT_STEP = 200;
4634
+ const MIN_TIMEOUT = 100;
4635
+ const MIN_TIMEOUT_STEP = 10;
4521
4636
  const globalThisVar = globalThis; // TODO not a good idea! probably should be in context
4522
4637
  const timeout = globalThisVar[Symbols__NS__old.WEBSQL_REST_PROGRESS_TIMEOUT] || MIN_TIMEOUT;
4523
4638
  let updateFun = globalThisVar[Symbols__NS__old.WEBSQL_REST_PROGRESS_FUN];
@@ -5009,7 +5124,8 @@ const createContextFn = (configFn, cloneOptions) => {
5009
5124
  //#region @browser
5010
5125
  let keepWebsqlDbDataAfterReload = false;
5011
5126
  keepWebsqlDbDataAfterReload =
5012
- TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
5127
+ TaonAdmin.Instance?.keepWebsqlDbDataAfterReload();
5128
+ // console.log({ keepWebsqlDbDataAfterReload });
5013
5129
  if (keepWebsqlDbDataAfterReload) {
5014
5130
  !UtilsOs__NS__isRunningInCliMode() &&
5015
5131
  Helpers__NS__info(`[taon] Keeping websql data after reload ` +
@@ -5674,6 +5790,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
5674
5790
  type: Injectable
5675
5791
  }], ctorParameters: () => [] });
5676
5792
 
5793
+ /**
5794
+ * Entity decorator
5795
+ */
5796
+ function TaonEntity(options) {
5797
+ return function (constructor) {
5798
+ options = options || {};
5799
+ options.uniqueKeyProp = options.uniqueKeyProp || 'id';
5800
+ if (!options.className) {
5801
+ const nameForClass = constructor?.name || 'AnyClass';
5802
+ throw `Please define 'classname' property inside decorator of class '${nameForClass}':
5803
+
5804
+ @TaonEntity({
5805
+ className: '${nameForClass}'
5806
+ })
5807
+ class ${constructor?.name} {
5808
+ //...
5809
+
5810
+ `;
5811
+ }
5812
+ ClassHelpers__NS__setName(constructor, options?.className);
5813
+ DefaultMapping(options?.defaultModelMapping)(constructor);
5814
+ DefaultModel(options.defaultModelMapping)(constructor);
5815
+ Reflect.defineMetadata(Symbols__NS__metadata.options.entity, options, constructor);
5816
+ Reflect.defineMetadata(Symbols__NS__metadata.className, options?.className || constructor.name, constructor);
5817
+ //#region @websql
5818
+ Entity(options?.className)(constructor);
5819
+ //#endregion
5820
+ CLASS__NS__setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest
5821
+ };
5822
+ }
5823
+ class TaonEntityOptions extends DecoratorAbstractOpt {
5824
+ }
5825
+
5677
5826
  var TaonGlobalStateStatus;
5678
5827
  (function (TaonGlobalStateStatus) {
5679
5828
  TaonGlobalStateStatus["NORMAL"] = "normal";
@@ -5726,39 +5875,6 @@ const TaonGlobalStateDefaultsValues = {
5726
5875
  status: TaonGlobalStateStatus.NORMAL,
5727
5876
  };
5728
5877
 
5729
- /**
5730
- * Entity decorator
5731
- */
5732
- function TaonEntity(options) {
5733
- return function (constructor) {
5734
- options = options || {};
5735
- options.uniqueKeyProp = options.uniqueKeyProp || 'id';
5736
- if (!options.className) {
5737
- const nameForClass = constructor?.name || 'AnyClass';
5738
- throw `Please define 'classname' property inside decorator of class '${nameForClass}':
5739
-
5740
- @TaonEntity({
5741
- className: '${nameForClass}'
5742
- })
5743
- class ${constructor?.name} {
5744
- //...
5745
-
5746
- `;
5747
- }
5748
- ClassHelpers__NS__setName(constructor, options?.className);
5749
- DefaultMapping(options?.defaultModelMapping)(constructor);
5750
- DefaultModel(options.defaultModelMapping)(constructor);
5751
- Reflect.defineMetadata(Symbols__NS__metadata.options.entity, options, constructor);
5752
- Reflect.defineMetadata(Symbols__NS__metadata.className, options?.className || constructor.name, constructor);
5753
- //#region @websql
5754
- Entity(options?.className)(constructor);
5755
- //#endregion
5756
- CLASS__NS__setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest
5757
- };
5758
- }
5759
- class TaonEntityOptions extends DecoratorAbstractOpt {
5760
- }
5761
-
5762
5878
  //#region imports
5763
5879
  //#endregion
5764
5880
  let TAON_GLOBAL_STATE = class TAON_GLOBAL_STATE extends TaonBaseAbstractEntity {
@@ -7739,7 +7855,7 @@ class RepeatTypeComponent extends FieldArrayType {
7739
7855
  // @ts-ignore
7740
7856
  super(builder);
7741
7857
  }
7742
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RepeatTypeComponent, deps: [{ token: i1.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
7858
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: RepeatTypeComponent, deps: [{ token: i1$1.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
7743
7859
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: RepeatTypeComponent, isStandalone: false, selector: "formly-repeat-section", usesInheritance: true, ngImport: i0, template: `
7744
7860
  <div *ngIf="field.fieldGroup && field.fieldGroup.length === 0">
7745
7861
  Press button to add new element...
@@ -7805,7 +7921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
7805
7921
  </button>
7806
7922
  </div>
7807
7923
  `, styles: [":host{display:block;padding:5px;margin-bottom:5px;border:1px solid gray}formly-group{display:block;border:1px dashed gray;margin-bottom:5px;padding:5px}.taon-formly-array{padding:5px;background:#fff}\n"] }]
7808
- }], ctorParameters: () => [{ type: i1.FormlyFormBuilder }] });
7924
+ }], ctorParameters: () => [{ type: i1$1.FormlyFormBuilder }] });
7809
7925
 
7810
7926
  function findTypeForEntity(entity, isArray = false) {
7811
7927
  if (!___NS__isArray(RegisterComponentType.prototype.types)) {
@@ -8264,5 +8380,5 @@ const TAON_FLATTEN_MAPPING = {
8264
8380
  * Generated bundle index. Do not edit.
8265
8381
  */
8266
8382
 
8267
- export { BaseTaonClassesNames, Body, BooleanColumn, CURRENT_HOST_BACKEND_PORT, CURRENT_HOST_URL, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName, ContextDbMigrations, ContextsEndpointStorage, ControllerConfig, Cookie, DELETE, DITaonContainer, DateTimeColumn, DecimalNumberColumn, DecoratorAbstractOpt, EndpointContext, EntityProcess, FormlyHorizontalWrapper, GET, HEAD, HTML, Header, MethodConfig, MockNamespaceIpc, MockServerIpc, MockSocketIpc, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, NumberColumn, PATCH, POST, PUT, ParamConfig, Path, Query, RealtimeClient, RealtimeCore, RealtimeServer, RealtimeStrategy, RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, RealtimeSubsManager, RegisterComponentType, RegisterComponentTypeForEntity, RepeatTypeComponent, SimpleJsonColumn, String100Column, String200Column, String20Column, String45Column, String500Column, StringColumn, Symbols__NS__REALTIME, Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, TAON_CONTEXT, TAON_FLATTEN_MAPPING, TaonAdminService, TaonBaseAbstractEntity, TaonBaseAngularService, TaonBaseClass, TaonBaseContext, TaonBaseController, TaonBaseCrudController, TaonBaseCustomRepository, TaonBaseEntity, TaonBaseFileUploadMiddleware, TaonBaseInjector, TaonBaseMiddleware, TaonBaseMigration, TaonBaseProvider, TaonBaseRepository, TaonBaseSubscriberForEntity, TaonController, TaonControllerOptions, TaonEntity, TaonEntityKeysToOmitArr, TaonEntityOptions, TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks, TaonMiddleware, TaonMiddlewareOptions, TaonMigration, TaonMigrationOptions, TaonProvider, TaonProviderOptions, TaonRepository, TaonRepositoryOptions, TaonRestResponseWrapper, TaonSubscriber, TaonSubscriberOptions, TaonTempDatabasesFolder, TaonTempRoutesFolder, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__init, Taon__NS__inject, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__removeLoader, Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions, apiPrefix, cloneObj, controllerConfigFrom, createContext, createContextTemplate, findTypeForEntity, getFromlyConfigFor, getRegisteredComponents, getResponseValue, getTransformFunction, inject, singleTransform, typeFromEntity, typeFromName };
8383
+ export { BaseTaonClassesNames, Body, BooleanColumn, CURRENT_HOST_BACKEND_PORT, CURRENT_HOST_URL, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName, ContextDbMigrations, ContextsEndpointStorage, ControllerConfig, Cookie, DELETE, DITaonContainer, DateTimeColumn, DecimalNumberColumn, DecoratorAbstractOpt, EndpointContext, EntityProcess, FormlyHorizontalWrapper, GET, HEAD, HTML, Header, MethodConfig, MockNamespaceIpc, MockServerIpc, MockSocketIpc, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, NumberColumn, PATCH, POST, PUT, ParamConfig, Path, Query, RealtimeClient, RealtimeCore, RealtimeServer, RealtimeStrategy, RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, RealtimeSubsManager, RegisterComponentType, RegisterComponentTypeForEntity, RepeatTypeComponent, SimpleJsonColumn, String100Column, String200Column, String20Column, String45Column, String500Column, StringColumn, Symbols__NS__REALTIME, Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, TAON_CONTEXT, TAON_FLATTEN_MAPPING, TaonAdmin, TaonAdminPanelMode, TaonAdminService, TaonBaseAbstractEntity, TaonBaseAngularService, TaonBaseClass, TaonBaseContext, TaonBaseController, TaonBaseCrudController, TaonBaseCustomRepository, TaonBaseEntity, TaonBaseFileUploadMiddleware, TaonBaseInjector, TaonBaseMiddleware, TaonBaseMigration, TaonBaseProvider, TaonBaseRepository, TaonBaseSubscriberForEntity, TaonController, TaonControllerOptions, TaonEntity, TaonEntityKeysToOmitArr, TaonEntityOptions, TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks, TaonMiddleware, TaonMiddlewareOptions, TaonMigration, TaonMigrationOptions, TaonProvider, TaonProviderOptions, TaonRepository, TaonRepositoryOptions, TaonRestResponseWrapper, TaonSubscriber, TaonSubscriberOptions, TaonTempDatabasesFolder, TaonTempRoutesFolder, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__init, Taon__NS__inject, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__removeLoader, Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions, apiPrefix, cloneObj, controllerConfigFrom, createContext, createContextTemplate, findTypeForEntity, getFromlyConfigFor, getRegisteredComponents, getResponseValue, getTransformFunction, inject, singleTransform, typeFromEntity, typeFromName };
8268
8384
  //# sourceMappingURL=taon-websql-prod.mjs.map