@ng-atomic/common 1.1.0 → 1.3.0

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 (112) hide show
  1. package/bundles/ng-atomic-common-directives-ios-safari-scroll-buggyfill.umd.js +94 -0
  2. package/bundles/ng-atomic-common-directives-ios-safari-scroll-buggyfill.umd.js.map +1 -0
  3. package/bundles/ng-atomic-common-directives-ios-safari-scroll-buggyfill.umd.min.js +2 -0
  4. package/bundles/ng-atomic-common-directives-ios-safari-scroll-buggyfill.umd.min.js.map +1 -0
  5. package/bundles/ng-atomic-common-directives.umd.js +3 -4
  6. package/bundles/ng-atomic-common-directives.umd.js.map +1 -1
  7. package/bundles/ng-atomic-common-directives.umd.min.js +1 -1
  8. package/bundles/ng-atomic-common-directives.umd.min.js.map +1 -1
  9. package/bundles/ng-atomic-common-pipes.umd.js +170 -26
  10. package/bundles/ng-atomic-common-pipes.umd.js.map +1 -1
  11. package/bundles/ng-atomic-common-pipes.umd.min.js +1 -1
  12. package/bundles/ng-atomic-common-pipes.umd.min.js.map +1 -1
  13. package/bundles/ng-atomic-common-services.umd.js +104 -4
  14. package/bundles/ng-atomic-common-services.umd.js.map +1 -1
  15. package/bundles/ng-atomic-common-services.umd.min.js +2 -2
  16. package/bundles/ng-atomic-common-services.umd.min.js.map +1 -1
  17. package/bundles/ng-atomic-common-store.umd.js +32 -7
  18. package/bundles/ng-atomic-common-store.umd.js.map +1 -1
  19. package/bundles/ng-atomic-common-store.umd.min.js +2 -2
  20. package/bundles/ng-atomic-common-store.umd.min.js.map +1 -1
  21. package/bundles/ng-atomic-common-utils.umd.js +59 -23
  22. package/bundles/ng-atomic-common-utils.umd.js.map +1 -1
  23. package/bundles/ng-atomic-common-utils.umd.min.js +16 -1
  24. package/bundles/ng-atomic-common-utils.umd.min.js.map +1 -1
  25. package/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.directive.d.ts +1 -3
  26. package/directives/ios-safari-scroll-buggyfill/ng-atomic-common-directives-ios-safari-scroll-buggyfill.d.ts +5 -0
  27. package/directives/ios-safari-scroll-buggyfill/package.json +10 -0
  28. package/esm2015/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.directive.js +3 -6
  29. package/esm2015/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.directive.js.map +1 -1
  30. package/esm2015/directives/ios-safari-scroll-buggyfill/ng-atomic-common-directives-ios-safari-scroll-buggyfill.js +5 -0
  31. package/esm2015/directives/ios-safari-scroll-buggyfill/ng-atomic-common-directives-ios-safari-scroll-buggyfill.js.map +1 -0
  32. package/esm2015/pipes/index.js +2 -0
  33. package/esm2015/pipes/index.js.map +1 -1
  34. package/esm2015/pipes/smart-clamp/index.js +3 -0
  35. package/esm2015/pipes/smart-clamp/index.js.map +1 -0
  36. package/esm2015/pipes/smart-clamp/smart-clamp.module.js +27 -0
  37. package/esm2015/pipes/smart-clamp/smart-clamp.module.js.map +1 -0
  38. package/esm2015/pipes/smart-clamp/smart-clamp.pipe.js +45 -0
  39. package/esm2015/pipes/smart-clamp/smart-clamp.pipe.js.map +1 -0
  40. package/esm2015/pipes/smart-exp/smart-exp.pipe.js +15 -15
  41. package/esm2015/pipes/smart-exp/smart-exp.pipe.js.map +1 -1
  42. package/esm2015/pipes/smart-sort-by/index.js +3 -0
  43. package/esm2015/pipes/smart-sort-by/index.js.map +1 -0
  44. package/esm2015/pipes/smart-sort-by/smart-sort-by.module.js +27 -0
  45. package/esm2015/pipes/smart-sort-by/smart-sort-by.module.js.map +1 -0
  46. package/esm2015/pipes/smart-sort-by/smart-sort-by.pipe.js +32 -0
  47. package/esm2015/pipes/smart-sort-by/smart-sort-by.pipe.js.map +1 -0
  48. package/esm2015/pipes/yen/yen.pipe.js +2 -2
  49. package/esm2015/pipes/yen/yen.pipe.js.map +1 -1
  50. package/esm2015/services/form/form.service.js +33 -0
  51. package/esm2015/services/form/form.service.js.map +1 -0
  52. package/esm2015/services/form/index.js +2 -0
  53. package/esm2015/services/form/index.js.map +1 -0
  54. package/esm2015/services/index.js +2 -0
  55. package/esm2015/services/index.js.map +1 -1
  56. package/esm2015/services/query-resolver/index.js +2 -0
  57. package/esm2015/services/query-resolver/index.js.map +1 -0
  58. package/esm2015/services/query-resolver/query-resolver.service.js +28 -0
  59. package/esm2015/services/query-resolver/query-resolver.service.js.map +1 -0
  60. package/esm2015/store/entities.page.store.js +19 -5
  61. package/esm2015/store/entities.page.store.js.map +1 -1
  62. package/esm2015/store/entity.page.store.js +1 -1
  63. package/esm2015/store/entity.page.store.js.map +1 -1
  64. package/esm2015/utils/date-utils/date-utils.js +13 -0
  65. package/esm2015/utils/date-utils/date-utils.js.map +1 -0
  66. package/esm2015/utils/date-utils/index.js +2 -0
  67. package/esm2015/utils/date-utils/index.js.map +1 -0
  68. package/esm2015/utils/index.js +3 -1
  69. package/esm2015/utils/index.js.map +1 -1
  70. package/esm2015/utils/query/query.resolver.js +16 -8
  71. package/esm2015/utils/query/query.resolver.js.map +1 -1
  72. package/esm2015/utils/smart-exp-transformer/index.js +2 -0
  73. package/esm2015/utils/smart-exp-transformer/index.js.map +1 -0
  74. package/esm2015/utils/smart-exp-transformer/smart-exp-transformer.js +18 -0
  75. package/esm2015/utils/smart-exp-transformer/smart-exp-transformer.js.map +1 -0
  76. package/fesm2015/ng-atomic-common-directives-ios-safari-scroll-buggyfill.js +55 -0
  77. package/fesm2015/ng-atomic-common-directives-ios-safari-scroll-buggyfill.js.map +1 -0
  78. package/fesm2015/ng-atomic-common-directives.js +3 -6
  79. package/fesm2015/ng-atomic-common-directives.js.map +1 -1
  80. package/fesm2015/ng-atomic-common-pipes.js +140 -23
  81. package/fesm2015/ng-atomic-common-pipes.js.map +1 -1
  82. package/fesm2015/ng-atomic-common-services.js +60 -2
  83. package/fesm2015/ng-atomic-common-services.js.map +1 -1
  84. package/fesm2015/ng-atomic-common-store.js +21 -5
  85. package/fesm2015/ng-atomic-common-store.js.map +1 -1
  86. package/fesm2015/ng-atomic-common-utils.js +46 -19
  87. package/fesm2015/ng-atomic-common-utils.js.map +1 -1
  88. package/package.json +3 -3
  89. package/pipes/index.d.ts +2 -0
  90. package/pipes/smart-clamp/index.d.ts +2 -0
  91. package/pipes/smart-clamp/smart-clamp.module.d.ts +8 -0
  92. package/pipes/smart-clamp/smart-clamp.pipe.d.ts +14 -0
  93. package/pipes/smart-exp/smart-exp.pipe.d.ts +4 -1
  94. package/pipes/smart-sort-by/index.d.ts +2 -0
  95. package/pipes/smart-sort-by/smart-sort-by.module.d.ts +8 -0
  96. package/pipes/smart-sort-by/smart-sort-by.pipe.d.ts +12 -0
  97. package/services/form/form.service.d.ts +7 -0
  98. package/services/form/index.d.ts +1 -0
  99. package/services/index.d.ts +2 -0
  100. package/services/query-resolver/index.d.ts +1 -0
  101. package/services/query-resolver/query-resolver.service.d.ts +9 -0
  102. package/store/entities.page.store.d.ts +11 -3
  103. package/store/entity.page.store.d.ts +2 -1
  104. package/utils/date-utils/date-utils.d.ts +10 -0
  105. package/utils/date-utils/index.d.ts +1 -0
  106. package/utils/index.d.ts +2 -1
  107. package/utils/query/query.resolver.d.ts +2 -1
  108. package/utils/smart-exp-transformer/index.d.ts +1 -0
  109. package/utils/smart-exp-transformer/smart-exp-transformer.d.ts +6 -0
  110. package/esm2015/utils/define-element.js +0 -10
  111. package/esm2015/utils/define-element.js.map +0 -1
  112. package/utils/define-element.d.ts +0 -2
@@ -1,7 +1,8 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { ComponentStore } from '@ngrx/component-store';
3
3
  import { filter, tap, switchMap, map, distinctUntilChanged } from 'rxjs/operators';
4
- import { filterByQuery, compareById } from '@ng-atomic/common/utils';
4
+ import { QueryResolverService } from '@ng-atomic/common/services';
5
+ import { compareById } from '@ng-atomic/common/utils';
5
6
 
6
7
  const tryCatch = (promise) => new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
7
8
  try {
@@ -42,33 +43,48 @@ class EntityPageStore extends ComponentStore {
42
43
  }
43
44
 
44
45
  class EntitiesPageStore extends ComponentStore {
45
- constructor(initialState) {
46
+ constructor(initialState, queryResolver = new QueryResolverService()) {
46
47
  super(initialState);
48
+ this.queryResolver = queryResolver;
47
49
  this.userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));
48
- this.entities$ = this.select(({ query, entities }) => filterByQuery(entities, query, this.LANG_MAP))
50
+ this.entities$ = this.select(({ query, entities }) => this.queryResolver.resolve(entities, query, this.LANG_MAP))
49
51
  .pipe(map((entities) => entities.sort(compareById)))
50
52
  .pipe(distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));
51
53
  this.setUserId = this.updater((state, userId) => (Object.assign(Object.assign({}, state), { userId })));
52
54
  this.setEntities = this.updater((state, entities) => (Object.assign(Object.assign({}, state), { entities })));
53
55
  this.setPage = this.updater((state, page) => (Object.assign(Object.assign({}, state), { page })));
54
56
  this.setIdSet = this.updater((state, idSet) => (Object.assign(Object.assign({}, state), { idSet })));
57
+ this.setSortKey = this.updater((state, sortKey) => (Object.assign(Object.assign({}, state), { sortKey })));
58
+ this.setSortOrder = this.updater((state, sortOrder) => (Object.assign(Object.assign({}, state), { sortOrder })));
55
59
  this.addId = this.updater((state, id) => (Object.assign(Object.assign({}, state), { idSet: new Set([...state.idSet, id]) })));
56
60
  this.removeId = this.updater((state, id) => {
57
61
  return Object.assign(Object.assign({}, state), { idSet: new Set([...state.idSet].filter(_id => _id !== id)) });
58
62
  });
59
63
  this.setQuery = this.updater((state, query) => (Object.assign(Object.assign({}, state), { query })));
60
64
  this.getPage = this.effect((entities$) => entities$.pipe(tap(({ length }) => this.setPage(this.page.patch({ length })))));
61
- this.getEntities = this.effect((userId$) => userId$.pipe(filter(userId => !!userId), tap(() => this.loading.setKey('[/entities] Get Entities')), switchMap(() => this._getEntities()), tap((entities) => this.setEntities(entities)), tap(() => this.loading.removeKey('[/entities] Get Entities'))));
65
+ this.getEntities = this.effect((userId$) => userId$.pipe(filter(userId => !!userId), tap(() => this.loading.setKey('[/entities] Get Entities')), switchMap((userId) => this._getEntities({ userId })), tap((entities) => this.setEntities(entities)), tap(() => this.loading.removeKey('[/entities] Get Entities'))));
62
66
  this.getPage(this.entities$);
63
67
  this.getEntities(this.userId$);
64
68
  }
65
69
  get page() { return this.get(state => state.page); }
70
+ get sortKey() { return this.get(state => state.sortKey); }
71
+ get sortOrder() { return this.get(state => state.sortOrder); }
66
72
  get idSet() { return this.get(state => state.idSet); }
73
+ changeSortFromEvent(name) {
74
+ if (name === this.sortKey) {
75
+ const order = this.sortOrder === 'asc' ? 'desc' : 'asc';
76
+ this.setSortOrder(order);
77
+ }
78
+ else {
79
+ this.setSortKey(name);
80
+ this.setSortOrder('asc');
81
+ }
82
+ }
67
83
  }
68
84
 
69
85
  /**
70
86
  * Generated bundle index. Do not edit.
71
87
  */
72
88
 
73
- export { EntitiesPageStore, EntityPageStore };
89
+ export { EntitiesPageStore, EntityPageStore, tryCatch };
74
90
  //# sourceMappingURL=ng-atomic-common-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-store.js","sources":["../../../../libs/common/store/entity.page.store.ts","../../../../libs/common/store/entities.page.store.ts","../../../../libs/common/store/ng-atomic-common-store.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { LoadingService, SnackBarService } from '@ng-atomic/common/services';\nimport { Observable } from 'rxjs';\nimport { filter, switchMap, tap } from 'rxjs/operators';\n\nexport type Mode = 'create' | 'update'\n\nexport interface EntityPageState<Entity> {\n mode: Mode;\n entityId: string;\n entity: Entity;\n}\n\nconst tryCatch = (promise: Promise<any>) => new Promise(async (resolve, reject) => {\n try { resolve(await promise); } catch (error) { reject(error); }\n});\n\nexport abstract class EntityPageStore<S extends EntityPageState<Entity>, Entity> extends ComponentStore<S> {\n get entity() { return this.get().entity}\n\n mode$ = this.select(state => state.mode);\n entityId$ = this.select(state => state.entityId).pipe(filter(id => !!id));\n entity$ = this.select(state => state.entity);\n\n setMode = this.updater((state, mode: Mode) => ({...state, mode}));\n setEntityId = this.updater((state, entityId: string) => ({...state, entityId}));\n setEntity = this.updater((state, entity: Entity) => ({...state, entity}));\n\n constructor(initialState?: S) {\n super(initialState);\n this.getEntity(this.entityId$);\n }\n\n getEntityIdAndMode = this.effect((entityId$: Observable<string>) => entityId$.pipe(\n tap(id => this.setMode(id === 'new' ? 'create' : 'update')),\n filter(id => id !== 'new'),\n tap((id: string) => this.setEntityId(id)),\n ));\n\n getEntity = this.effect((entityId$: Observable<string>) => entityId$.pipe(\n switchMap(id => this._getEntity(id)),\n tap((entity: Entity) => this.setEntity(entity)),\n ));\n\n\n\n createEntity(value: Partial<Entity>) {\n const entity: Entity = ({...this.entity, ...value});\n\n this.loading.setKey('[pages/stores/pages/store] Create Store');\n\n return tryCatch(this._createEntity(entity))\n .catch(error => (console.error(error), this.snackBar.openSnackBar('作成に失敗しました。')))\n .finally(() => this.loading.removeKey('[pages/stores/pages/store] Create Store'));\n }\n\n updateEntity(value: Partial<Entity>) {\n const entity: Entity = ({...this.entity, ...value});\n\n this.loading.setKey('[pages/stores/pages/store] Create Store');\n return this._updateEntity(entity)\n .catch(error => (console.error(error), this.snackBar.openSnackBar('更新に失敗しました。')))\n .finally(() => this.loading.removeKey('[pages/stores/pages/store] Create Store'));\n }\n\n abstract _getEntity(id: string): Observable<Entity>;\n abstract _createEntity(entity: Entity): Promise<Entity>;\n abstract _updateEntity(entity: Entity): Promise<void>;\n\n abstract get loading(): LoadingService;\n abstract get snackBar(): SnackBarService;\n\n}\n","import { ComponentStore } from '@ngrx/component-store';\nimport { LoadingService } from '@ng-atomic/common/services';\n// import { Page } from '../components/templates/smart-index';\nimport { filterByQuery } from '@ng-atomic/common/utils';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, tap, map, filter, switchMap } from 'rxjs/operators';\n\nexport type Page = any\n\nexport interface EntitiesPageState<E> {\n userId: string; \n idSet: Set<string>;\n query: string;\n entities: E[]\n page: Page;\n}\n\nexport abstract class EntitiesPageStore<S extends EntitiesPageState<E>, E extends {id: string}> extends ComponentStore<S> {\n abstract LANG_MAP: Record<string, string>;\n\n get page(): Page { return this.get(state => state.page); }\n get idSet(): Set<string> { return this.get(state => state.idSet); }\n\n userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));\n entities$ = this.select(({query, entities}) => filterByQuery(entities, query, this.LANG_MAP))\n .pipe(map((entities: E[]) => entities.sort(compareById)))\n .pipe(distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));\n\n constructor(initialState: S) {\n super(initialState);\n this.getPage(this.entities$);\n this.getEntities(this.userId$);\n }\n\n setUserId = this.updater((state, userId: string) => ({...state, userId}));\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n setPage = this.updater((state, page: Page) => ({...state, page}));\n setIdSet = this.updater((state, idSet: Set<string>) => ({...state, idSet}));\n addId = this.updater((state, id: string) => ({...state, idSet: new Set([...state.idSet, id])}));\n removeId = this.updater((state, id: string) => {\n return {...state, idSet: new Set([...state.idSet].filter(_id => _id !== id))}\n });\n setQuery = this.updater((state, query: string) => ({...state, query}));\n\n getPage = this.effect((entities$: Observable<E[]>) => entities$.pipe(\n tap(({length}: E[]) => this.setPage(this.page.patch({length}))),\n ));\n\n getEntities = this.effect((userId$: Observable<string>) => userId$.pipe(\n filter(userId => !!userId),\n tap(() => this.loading.setKey('[/entities] Get Entities')),\n switchMap(() => this._getEntities()),\n tap((entities: E[]) => this.setEntities(entities)),\n tap(() => this.loading.removeKey('[/entities] Get Entities')),\n )); \n\n abstract _getEntities(): Observable<E[]>;\n abstract loading: LoadingService;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-common-store.js","sources":["../../../../libs/common/store/entity.page.store.ts","../../../../libs/common/store/entities.page.store.ts","../../../../libs/common/store/ng-atomic-common-store.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { LoadingService, SnackBarService } from '@ng-atomic/common/services';\nimport { Observable } from 'rxjs';\nimport { filter, switchMap, tap } from 'rxjs/operators';\n\nexport type Mode = 'create' | 'update'\n\nexport interface EntityPageState<Entity> {\n mode: Mode;\n entityId: string;\n entity: Entity;\n}\n\nexport const tryCatch = (promise: Promise<any>) => new Promise(async (resolve, reject) => {\n try { resolve(await promise); } catch (error) { reject(error); }\n});\n\nexport abstract class EntityPageStore<S extends EntityPageState<Entity>, Entity> extends ComponentStore<S> {\n get entity() { return this.get().entity}\n\n mode$ = this.select(state => state.mode);\n entityId$ = this.select(state => state.entityId).pipe(filter(id => !!id));\n entity$ = this.select(state => state.entity);\n\n setMode = this.updater((state, mode: Mode) => ({...state, mode}));\n setEntityId = this.updater((state, entityId: string) => ({...state, entityId}));\n setEntity = this.updater((state, entity: Entity) => ({...state, entity}));\n\n constructor(initialState?: S) {\n super(initialState);\n this.getEntity(this.entityId$);\n }\n\n getEntityIdAndMode = this.effect((entityId$: Observable<string>) => entityId$.pipe(\n tap(id => this.setMode(id === 'new' ? 'create' : 'update')),\n filter(id => id !== 'new'),\n tap((id: string) => this.setEntityId(id)),\n ));\n\n getEntity = this.effect((entityId$: Observable<string>) => entityId$.pipe(\n switchMap(id => this._getEntity(id)),\n tap((entity: Entity) => this.setEntity(entity)),\n ));\n\n createEntity(value: Partial<Entity>) {\n const entity: Entity = ({...this.entity, ...value});\n\n this.loading.setKey('[pages/stores/pages/store] Create Store');\n\n return tryCatch(this._createEntity(entity))\n .catch(error => (console.error(error), this.snackBar.openSnackBar('作成に失敗しました。')))\n .finally(() => this.loading.removeKey('[pages/stores/pages/store] Create Store'));\n }\n\n updateEntity(value: Partial<Entity>) {\n const entity: Entity = ({...this.entity, ...value});\n\n this.loading.setKey('[pages/stores/pages/store] Create Store');\n return this._updateEntity(entity)\n .catch(error => (console.error(error), this.snackBar.openSnackBar('更新に失敗しました。')))\n .finally(() => this.loading.removeKey('[pages/stores/pages/store] Create Store'));\n }\n\n abstract _getEntity(idOrParams: string): Observable<Entity>;\n abstract _createEntity(entity: Entity): Promise<Entity>;\n abstract _updateEntity(entity: Entity): Promise<void>;\n\n abstract get loading(): LoadingService;\n abstract get snackBar(): SnackBarService;\n\n}\n","import { ComponentStore } from '@ngrx/component-store';\nimport { LoadingService, QueryResolverService } from '@ng-atomic/common/services';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, tap, map, filter, switchMap } from 'rxjs/operators';\n\nexport type Page = any\n\nexport interface EntitiesPageState<E> {\n userId: string; \n idSet: Set<string>;\n query: string;\n entities: E[]\n page: Page;\n sortKey?: string;\n sortOrder?: 'asc' | 'desc';\n}\n\nexport abstract class EntitiesPageStore<S extends EntitiesPageState<E>, E extends {id: string}> extends ComponentStore<S> {\n abstract LANG_MAP: Record<string, string>;\n\n get page(): Page { return this.get(state => state.page); }\n get sortKey(): string { return this.get(state => state.sortKey); }\n get sortOrder(): string { return this.get(state => state.sortOrder); }\n get idSet(): Set<string> { return this.get(state => state.idSet); }\n\n userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));\n entities$ = this.select(({query, entities}) => this.queryResolver.resolve(entities, query, this.LANG_MAP))\n .pipe(map((entities: E[]) => entities.sort(compareById)))\n .pipe(distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));\n\n constructor(\n initialState: S,\n public queryResolver = new QueryResolverService(),\n ) {\n super(initialState);\n this.getPage(this.entities$);\n this.getEntities(this.userId$);\n }\n\n setUserId = this.updater((state, userId: string) => ({...state, userId}));\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n setPage = this.updater((state, page: Page) => ({...state, page}));\n setIdSet = this.updater((state, idSet: Set<string>) => ({...state, idSet}));\n setSortKey = this.updater((state, sortKey: string) => ({...state, sortKey}));\n setSortOrder = this.updater((state, sortOrder: 'asc' | 'desc') => ({...state, sortOrder}));\n addId = this.updater((state, id: string) => ({...state, idSet: new Set([...state.idSet, id])}));\n removeId = this.updater((state, id: string) => {\n return {...state, idSet: new Set([...state.idSet].filter(_id => _id !== id))}\n });\n setQuery = this.updater((state, query: string) => ({...state, query}));\n\n getPage = this.effect((entities$: Observable<E[]>) => entities$.pipe(\n tap(({length}: E[]) => this.setPage(this.page.patch({length}))),\n ));\n\n getEntities = this.effect((userId$: Observable<string>) => userId$.pipe(\n filter(userId => !!userId),\n tap(() => this.loading.setKey('[/entities] Get Entities')),\n switchMap((userId) => this._getEntities({userId})),\n tap((entities: E[]) => this.setEntities(entities)),\n tap(() => this.loading.removeKey('[/entities] Get Entities')),\n )); \n\n changeSortFromEvent(name: string) {\n if (name === this.sortKey) {\n const order = this.sortOrder === 'asc' ? 'desc' : 'asc';\n this.setSortOrder(order);\n } else {\n this.setSortKey(name);\n this.setSortOrder('asc');\n }\n }\n\n abstract _getEntities(data?: object): Observable<E[]>;\n abstract loading: LoadingService;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { __decorate, __param, __metadata, __awaiter } from 'tslib';
2
- import { InjectionToken, Optional, Inject, ɵɵdefineNgModule, ɵɵdefineInjector, ɵsetClassMetadata, NgModule, ɵɵsetNgModuleScope } from '@angular/core';
3
- import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
4
1
  import * as dayjs from 'dayjs';
5
2
  import { isDayjs, extend, locale } from 'dayjs';
3
+ import { __decorate, __param, __metadata } from 'tslib';
4
+ import { InjectionToken, Optional, Inject, ɵɵdefineNgModule, ɵɵdefineInjector, ɵsetClassMetadata, NgModule, ɵɵsetNgModuleScope } from '@angular/core';
5
+ import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
6
6
  import * as utc from 'dayjs/plugin/utc';
7
7
  import * as localeData from 'dayjs/plugin/localeData';
8
8
  import * as LocalizedFormat from 'dayjs/plugin/localizedFormat';
@@ -16,6 +16,18 @@ const abs = (n) => Math.abs(n);
16
16
 
17
17
  const compareById = (a, b) => parseInt(a.id, 10) - parseInt(b.id, 10);
18
18
 
19
+ const removeComma = (str) => str.replace(/\,/g, '');
20
+ const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
21
+ const DATE_REGEX = /^[0-9]{4}\/(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])$/;
22
+ const DATETIME_REGEX = /^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\+([+-][0-2]\d:[0-5]\d)$/;
23
+ const isDateStr = (str) => str && !!str.match(DATE_REGEX);
24
+ const isDateTimeStr = (str) => str && !!str.match(DATE_REGEX);
25
+ const ISO_REGEX = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
26
+ const isIsoString = (str) => str && !!str.match(ISO_REGEX);
27
+ function timestampToDayjs(timestamp) {
28
+ return timestamp ? dayjs(timestamp.toDate()) : null;
29
+ }
30
+
19
31
  /** InjectionToken for Dayjs date adapter to configure options. */
20
32
  const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken('MAT_DAYJS_DATE_ADAPTER_OPTIONS', {
21
33
  providedIn: 'root',
@@ -265,6 +277,21 @@ MatDayjsDateModule.ɵinj = ɵɵdefineInjector({ providers: [{ provide: MAT_DATE_
265
277
  }]
266
278
  }], null, null); })();
267
279
 
280
+ const SMART_EXP_TRANSFORMER = new InjectionToken('[@ng-atomic/common] Smart Transformer');
281
+ // export const yenTransform = (value: number, _unit?: string): string => {
282
+ // return value < 1 ? `${comma(value * 100)}%` : `${comma(value)}円`;
283
+ // }
284
+ const yenTransform = (value, _unit) => {
285
+ return `${comma(value)}円`;
286
+ };
287
+ const smartExpTransformer = input => isDayjs(input)
288
+ ? input.format('YY/MM/DD')
289
+ : Array.isArray(input)
290
+ ? `${input.length}個のアイテム`
291
+ : typeof input === 'number'
292
+ ? yenTransform(input)
293
+ : input;
294
+
268
295
  const getAllProps = (obj, keys = Object.keys(obj)) => {
269
296
  const proto = Object.getPrototypeOf(obj);
270
297
  keys = Object.getOwnPropertyNames(proto)
@@ -275,25 +302,26 @@ const getAllProps = (obj, keys = Object.keys(obj)) => {
275
302
  };
276
303
  const toObject = (obj) => getAllProps(obj).reduce((p, k) => (Object.assign(Object.assign({}, p), { [k]: obj[k] })), {});
277
304
 
278
- const filterByQuery = (items, queryString, dlm = {}) => {
279
- return new QueryResolver(dlm).resolve(items, queryString);
305
+ const filterByQuery = (items, queryString, dlm = {}, transformer = smartExpTransformer) => {
306
+ return new QueryResolver(dlm, transformer).resolve(items, queryString);
280
307
  };
281
308
  class QueryResolver {
282
- constructor(map) {
309
+ constructor(map, transformer) {
310
+ this.transformer = transformer;
283
311
  this.inQueryByKey = (items, query) => {
284
312
  var _a, _b;
285
313
  const [not, _key, value] = this.parseQuery(query);
286
314
  const key = (_b = (_a = this.REVERSED_MAP) === null || _a === void 0 ? void 0 : _a[_key]) !== null && _b !== void 0 ? _b : _key;
287
- return items.filter(item => { var _a; return _not(_in((_a = flatten(toObject(item))) === null || _a === void 0 ? void 0 : _a[key], value), not); });
315
+ return items.filter(item => { var _a; return _not(this.in(key, (_a = flatten(toObject(item))) === null || _a === void 0 ? void 0 : _a[key], value), not); });
288
316
  };
289
317
  this.gtQueryByKey = (items, query) => {
290
318
  var _a, _b;
291
319
  const [_key, value] = query.split('>');
292
320
  const key = (_b = (_a = this.REVERSED_MAP) === null || _a === void 0 ? void 0 : _a[_key]) !== null && _b !== void 0 ? _b : _key;
293
- return items.filter(item => { var _a; return _gt((_a = flatten(toObject(item))) === null || _a === void 0 ? void 0 : _a[key], value); });
321
+ return items.filter(item => { var _a; return this.gt(key, (_a = flatten(toObject(item))) === null || _a === void 0 ? void 0 : _a[key], value); });
294
322
  };
295
- this.inQuery = (items, query) => {
296
- return items.filter(item => Object.values(flatten(toObject(item))).some(value => _in(value, query)));
323
+ this.inQuery = (items, q) => {
324
+ return items.filter(item => Object.entries(flatten(toObject(item))).some(([k, v]) => this.in(k, v, q)));
297
325
  };
298
326
  this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => (Object.assign(Object.assign({}, p), { [v]: k })), {});
299
327
  }
@@ -317,6 +345,12 @@ class QueryResolver {
317
345
  const [_key, value] = query.split(':');
318
346
  return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];
319
347
  }
348
+ in(k, v, q) {
349
+ return _in(this.transformer(v, k), q);
350
+ }
351
+ gt(k, v, q) {
352
+ return _gt(this.transformer(v, k), q);
353
+ }
320
354
  }
321
355
  const _not = (bool, not) => {
322
356
  return not ? !bool : bool;
@@ -332,18 +366,11 @@ const _gt = (value, query) => {
332
366
  : false;
333
367
  };
334
368
 
335
- function defineElement(injector, Component) {
336
- return __awaiter(this, void 0, void 0, function* () {
337
- return import('@angular/elements').then(({ createCustomElement }) => {
338
- const el = createCustomElement(Component, { injector });
339
- customElements.define('pages-blank', el);
340
- });
341
- });
342
- }
369
+ // export * from './define-element';
343
370
 
344
371
  /**
345
372
  * Generated bundle index. Do not edit.
346
373
  */
347
374
 
348
- export { DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, MatDayjsDateModule, abs, comma, commaStr, compareById, defineElement, filterByQuery, toObject };
375
+ export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, MatDayjsDateModule, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, filterByQuery, isDateStr, isDateTimeStr, isIsoString, removeComma, smartExpTransformer, timestampToDayjs, toObject, yenTransform };
349
376
  //# sourceMappingURL=ng-atomic-common-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-utils.js","sources":["../../../../libs/common/utils/comma/comma.ts","../../../../libs/common/utils/compare-by-id/compare-by-id.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../libs/common/utils/to-object/to-object.ts","../../../../libs/common/utils/query/query.resolver.ts","../../../../libs/common/utils/define-element.ts","../../../../libs/common/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit: string = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport const compareById = (a: HasId, b: HasId) => parseInt(a.id, 10) - parseInt(b.id, 10);\n","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport * as dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport * as utc from 'dayjs/plugin/utc';\nimport * as localeData from 'dayjs/plugin/localeData';\nimport * as LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport * as customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport * as dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_DAYJS_DATE_ADAPTER_OPTIONS]\n },\n ],\n})\nexport class DayjsDateModule { }\n\n@NgModule({\n imports: [DayjsDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n})\nexport class MatDayjsDateModule { }","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)!.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: obj[k]}), {});\n","import { toObject } from '../to-object';\nimport { flatten } from 'flat';\n\nexport const filterByQuery = <T>(items: T[], queryString: string, dlm: Record<string, string> = {}): T[] => {\n return new QueryResolver(dlm).resolve(items, queryString);\n}\n\ntype QueryResolveFunc<T> = (items: T[], query: string) => T[];\n\nclass QueryResolver<T extends object = any> {\n REVERSED_MAP: Record<string, string>;\n\n constructor(map: Record<string, string>) {\n this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => ({...p, [v]: k}), {} as Record<string, string>);\n }\n\n resolve(items: T[], queryString: string): T[] {\n return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));\n }\n\n resolveQueries(items: T[], queries: string[]): T[] {\n return queries.reduce((_items, query: string) => {\n if (query.includes(':')) return this.inQueryByKey(_items, query);\n if (query.includes('=')) return this.inQueryByKey(_items, query);\n if (query.includes('>')) return this.gtQueryByKey(_items, query);\n if (query.includes('<')) return this.inQueryByKey(_items, query);\n return this.inQuery(_items, query);\n }, items);\n }\n\n private parseQuery(query: string): [boolean, string, string] {\n const [_key, value] = query.split(':');\n return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];\n }\n\n private inQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [not, _key, value] = this.parseQuery(query);\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _not(_in(flatten(toObject(item as any))?.[key], value), not));\n }\n\n private gtQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('>');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _gt(flatten(toObject(item as any))?.[key], value));\n }\n\n private inQuery: QueryResolveFunc<T> = (items, query) => {\n return items.filter(item => Object.values(flatten(toObject(item as T))).some(value => _in(value, query)));\n }\n}\n\nconst _not = (bool: boolean, not: boolean): boolean => {\n return not ? !bool : bool;\n}\n\nconst _in = (value: any, query: string) => {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nconst _gt = (value: any, query: string) => {\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : false;\n}","import { Injector } from '@angular/core';\n\nexport async function defineElement(injector: Injector, Component: any) {\n return import('@angular/elements').then(({createCustomElement}) => {\n const el = createCustomElement(Component, { injector });\n customElements.define('pages-blank', el);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["dayjs.isDayjs","dayjs.extend","dayjs.locale"],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-common-utils.js","sources":["../../../../libs/common/utils/comma/comma.ts","../../../../libs/common/utils/compare-by-id/compare-by-id.ts","../../../../libs/common/utils/date-utils/date-utils.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../libs/common/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../libs/common/utils/smart-exp-transformer/smart-exp-transformer.ts","../../../../libs/common/utils/to-object/to-object.ts","../../../../libs/common/utils/query/query.resolver.ts","../../../../libs/common/utils/index.ts","../../../../libs/common/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit: string = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport const compareById = (a: HasId, b: HasId) => parseInt(a.id, 10) - parseInt(b.id, 10);\n","import * as dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport * as dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport * as utc from 'dayjs/plugin/utc';\nimport * as localeData from 'dayjs/plugin/localeData';\nimport * as LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport * as customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport * as dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_DAYJS_DATE_ADAPTER_OPTIONS]\n },\n ],\n})\nexport class DayjsDateModule { }\n\n@NgModule({\n imports: [DayjsDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n})\nexport class MatDayjsDateModule { }","import { InjectionToken } from '@angular/core';\nimport * as dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const SMART_EXP_TRANSFORMER = new InjectionToken<SmartExpTransformer>('[@ng-atomic/common] Smart Transformer');\n\nexport type SmartExpTransformer = (input: string | number | dayjs.Dayjs | any, key?: string) => string;\n\n// export const yenTransform = (value: number, _unit?: string): string => {\n// return value < 1 ? `${comma(value * 100)}%` : `${comma(value)}円`;\n// }\n\nexport const yenTransform = (value: number, _unit?: string): string => {\n return `${comma(value)}円`;\n}\n\nexport const smartExpTransformer: SmartExpTransformer = input => dayjs.isDayjs(input)\n ? input.format('YY/MM/DD')\n : Array.isArray(input) \n ? `${input.length}個のアイテム`\n : typeof input === 'number'\n ? yenTransform(input)\n : input;","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)!.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: obj[k]}), {});\n","import { flatten } from 'flat';\nimport { smartExpTransformer, SmartExpTransformer } from '../smart-exp-transformer';\nimport { toObject } from '../to-object';\n\nexport const filterByQuery = <T>(\n items: T[], \n queryString: string, \n dlm: Record<string, string> = {},\n transformer: SmartExpTransformer = smartExpTransformer,\n): T[] => {\n return new QueryResolver(dlm, transformer).resolve(items, queryString);\n}\n\ntype QueryResolveFunc<T> = (items: T[], query: string) => T[];\n\nclass QueryResolver<T extends object = any> {\n REVERSED_MAP: Record<string, string>;\n\n constructor(\n map: Record<string, string>,\n private transformer: SmartExpTransformer,\n ) {\n this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => ({\n ...p, [v]: k\n }), {} as Record<string, string>);\n }\n\n resolve(items: T[], queryString: string): T[] {\n return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));\n }\n\n resolveQueries(items: T[], queries: string[]): T[] {\n return queries.reduce((_items, query: string) => {\n if (query.includes(':')) return this.inQueryByKey(_items, query);\n if (query.includes('=')) return this.inQueryByKey(_items, query);\n if (query.includes('>')) return this.gtQueryByKey(_items, query);\n if (query.includes('<')) return this.inQueryByKey(_items, query);\n return this.inQuery(_items, query);\n }, items);\n }\n\n private parseQuery(query: string): [boolean, string, string] {\n const [_key, value] = query.split(':');\n return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];\n }\n\n private inQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [not, _key, value] = this.parseQuery(query);\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _not(this.in(key, flatten(toObject(item as any))?.[key], value), not));\n }\n\n private gtQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('>');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => this.gt(key, flatten(toObject(item as any))?.[key], value));\n }\n\n private inQuery: QueryResolveFunc<T> = (items, q) => {\n return items.filter(item => Object.entries(flatten(toObject(item as T))).some(([k, v]) => this.in(k, v, q)));\n }\n\n private in(k: string, v: any, q: string) {\n return _in(this.transformer(v, k), q);\n }\n\n private gt(k: string, v: any, q: string) {\n return _gt(this.transformer(v, k), q);\n }\n}\n\nconst _not = (bool: boolean, not: boolean): boolean => {\n return not ? !bool : bool;\n}\n\nconst _in = (value: any, query: string): boolean => {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nconst _gt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : false;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './mat-dayjs-date';\nexport * from './smart-exp-transformer';\nexport * from './to-object';\nexport * from './query';\n// export * from './define-element';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["dayjs.isDayjs","dayjs.extend","dayjs.locale"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^11.2.14",
6
6
  "@angular/core": "^11.2.14",
7
+ "flat": "^5.0.2",
7
8
  "rxjs": "~6.6.3",
8
- "@ngrx/component-store": "^11.1.1",
9
- "flat": "^5.0.2"
9
+ "@ngrx/component-store": "^11.1.1"
10
10
  },
11
11
  "dependencies": {
12
12
  "tslib": "^2.0.0"
package/pipes/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './domain';
2
+ export * from './smart-clamp';
2
3
  export * from './smart-exp';
4
+ export * from './smart-sort-by';
3
5
  export * from './smart-field';
4
6
  export * from './yen';
@@ -0,0 +1,2 @@
1
+ export * from './smart-clamp.module';
2
+ export * from './smart-clamp.pipe';
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./smart-clamp.pipe";
3
+ import * as i2 from "@angular/common";
4
+ export declare class SmartClampModule {
5
+ static ɵfac: i0.ɵɵFactoryDef<SmartClampModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDefWithMeta<SmartClampModule, [typeof i1.SmartClampPipe], [typeof i2.CommonModule], [typeof i1.SmartClampPipe]>;
7
+ static ɵinj: i0.ɵɵInjectorDef<SmartClampModule>;
8
+ }
@@ -0,0 +1,14 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { EntitiesPageStore } from '@ng-atomic/common/store';
3
+ import { SmartSortByTransformer } from '../smart-sort-by';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SmartClampPipe implements PipeTransform {
6
+ private transformer?;
7
+ private slicePipe;
8
+ private _input;
9
+ private _output;
10
+ constructor(transformer?: SmartSortByTransformer);
11
+ transform<T>(items: T[], store: EntitiesPageStore<any, any>): T[];
12
+ static ɵfac: i0.ɵɵFactoryDef<SmartClampPipe, [{ optional: true; }]>;
13
+ static ɵpipe: i0.ɵɵPipeDefWithMeta<SmartClampPipe, "smartClamp">;
14
+ }
@@ -1,7 +1,10 @@
1
1
  import * as dayjs from 'dayjs';
2
+ import { SmartExpTransformer } from '@ng-atomic/common/utils';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class SmartExpPipe {
5
+ private transformer;
6
+ constructor(transformer: SmartExpTransformer);
4
7
  transform(input: string | number | dayjs.Dayjs | any, key?: string): string;
5
- static ɵfac: i0.ɵɵFactoryDef<SmartExpPipe, never>;
8
+ static ɵfac: i0.ɵɵFactoryDef<SmartExpPipe, [{ optional: true; }]>;
6
9
  static ɵpipe: i0.ɵɵPipeDefWithMeta<SmartExpPipe, "smartExp">;
7
10
  }
@@ -0,0 +1,2 @@
1
+ export * from './smart-sort-by.module';
2
+ export * from './smart-sort-by.pipe';
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./smart-sort-by.pipe";
3
+ import * as i2 from "@angular/common";
4
+ export declare class SmartSortByModule {
5
+ static ɵfac: i0.ɵɵFactoryDef<SmartSortByModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDefWithMeta<SmartSortByModule, [typeof i1.SmartSortByPipe], [typeof i2.CommonModule], [typeof i1.SmartSortByPipe]>;
7
+ static ɵinj: i0.ɵɵInjectorDef<SmartSortByModule>;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { InjectionToken, PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare const SMART_SORT_BY_TRANSFORMER: InjectionToken<unknown>;
4
+ export declare type SmartSortByTransformer = <T>(items: T[], key: string, order: 'asc' | 'desc') => T[];
5
+ export declare const smartSortByTransformer: SmartSortByTransformer;
6
+ export declare class SmartSortByPipe implements PipeTransform {
7
+ private transformer?;
8
+ constructor(transformer?: SmartSortByTransformer);
9
+ transform<T>(items: T[], key: string, order?: 'asc' | 'desc'): T[];
10
+ static ɵfac: i0.ɵɵFactoryDef<SmartSortByPipe, [{ optional: true; }]>;
11
+ static ɵpipe: i0.ɵɵPipeDefWithMeta<SmartSortByPipe, "smartSortBy">;
12
+ }
@@ -0,0 +1,7 @@
1
+ export declare class BaseFormService {
2
+ static fromQueryParams<T>(obj: T): object;
3
+ static toQueryParams<T>(obj: object): T;
4
+ static dayjsKeys(object: object): string[];
5
+ static toValue(object: object): object;
6
+ static fromValue(value: object): object;
7
+ }
@@ -0,0 +1 @@
1
+ export * from './form.service';
@@ -1,2 +1,4 @@
1
+ export * from './form';
1
2
  export * from './loading';
3
+ export * from './query-resolver';
2
4
  export * from './snack-bar';
@@ -0,0 +1 @@
1
+ export * from './query-resolver.service';
@@ -0,0 +1,9 @@
1
+ import { SmartExpTransformer } from '@ng-atomic/common/utils';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryResolverService {
4
+ private transformer?;
5
+ constructor(transformer?: SmartExpTransformer);
6
+ resolve<T>(items: T[], queryString: string, dlm?: Record<string, string>): T[];
7
+ static ɵfac: i0.ɵɵFactoryDef<QueryResolverService, [{ optional: true; }]>;
8
+ static ɵprov: i0.ɵɵInjectableDef<QueryResolverService>;
9
+ }
@@ -1,5 +1,5 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { LoadingService } from '@ng-atomic/common/services';
2
+ import { LoadingService, QueryResolverService } from '@ng-atomic/common/services';
3
3
  import { Observable } from 'rxjs';
4
4
  export declare type Page = any;
5
5
  export interface EntitiesPageState<E> {
@@ -8,25 +8,33 @@ export interface EntitiesPageState<E> {
8
8
  query: string;
9
9
  entities: E[];
10
10
  page: Page;
11
+ sortKey?: string;
12
+ sortOrder?: 'asc' | 'desc';
11
13
  }
12
14
  export declare abstract class EntitiesPageStore<S extends EntitiesPageState<E>, E extends {
13
15
  id: string;
14
16
  }> extends ComponentStore<S> {
17
+ queryResolver: QueryResolverService;
15
18
  abstract LANG_MAP: Record<string, string>;
16
19
  get page(): Page;
20
+ get sortKey(): string;
21
+ get sortOrder(): string;
17
22
  get idSet(): Set<string>;
18
23
  userId$: Observable<string>;
19
24
  entities$: Observable<E[]>;
20
- constructor(initialState: S);
25
+ constructor(initialState: S, queryResolver?: QueryResolverService);
21
26
  setUserId: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
22
27
  setEntities: (observableOrValue: E[] | Observable<E[]>) => import("rxjs").Subscription;
23
28
  setPage: (() => void) | ((observableOrValue: any) => import("rxjs").Subscription);
24
29
  setIdSet: (observableOrValue: Set<string> | Observable<Set<string>>) => import("rxjs").Subscription;
30
+ setSortKey: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
31
+ setSortOrder: (observableOrValue: "asc" | "desc" | Observable<"asc" | "desc">) => import("rxjs").Subscription;
25
32
  addId: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
26
33
  removeId: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
27
34
  setQuery: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
28
35
  getPage: (observableOrValue: E[] | Observable<E[]>) => import("rxjs").Subscription;
29
36
  getEntities: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
30
- abstract _getEntities(): Observable<E[]>;
37
+ changeSortFromEvent(name: string): void;
38
+ abstract _getEntities(data?: object): Observable<E[]>;
31
39
  abstract loading: LoadingService;
32
40
  }
@@ -7,6 +7,7 @@ export interface EntityPageState<Entity> {
7
7
  entityId: string;
8
8
  entity: Entity;
9
9
  }
10
+ export declare const tryCatch: (promise: Promise<any>) => Promise<unknown>;
10
11
  export declare abstract class EntityPageStore<S extends EntityPageState<Entity>, Entity> extends ComponentStore<S> {
11
12
  get entity(): Entity;
12
13
  mode$: Observable<Mode>;
@@ -20,7 +21,7 @@ export declare abstract class EntityPageStore<S extends EntityPageState<Entity>,
20
21
  getEntity: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
21
22
  createEntity(value: Partial<Entity>): Promise<unknown>;
22
23
  updateEntity(value: Partial<Entity>): Promise<void>;
23
- abstract _getEntity(id: string): Observable<Entity>;
24
+ abstract _getEntity(idOrParams: string): Observable<Entity>;
24
25
  abstract _createEntity(entity: Entity): Promise<Entity>;
25
26
  abstract _updateEntity(entity: Entity): Promise<void>;
26
27
  abstract get loading(): LoadingService;
@@ -0,0 +1,10 @@
1
+ import * as dayjs from 'dayjs';
2
+ export declare const removeComma: (str: string) => string;
3
+ export declare const DATE_FORMAT = "YYYY-MM-DDTHH:mm:ss";
4
+ export declare const isDateStr: (str: string | null) => str is string;
5
+ export declare const isDateTimeStr: (str: string | null) => str is string;
6
+ export declare const isIsoString: (str: string | null) => str is string;
7
+ export interface Timestamp {
8
+ toDate: () => Date;
9
+ }
10
+ export declare function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null;
@@ -0,0 +1 @@
1
+ export * from './date-utils';
package/utils/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './comma';
2
2
  export * from './compare-by-id';
3
+ export * from './date-utils';
3
4
  export * from './mat-dayjs-date';
5
+ export * from './smart-exp-transformer';
4
6
  export * from './to-object';
5
7
  export * from './query';
6
- export * from './define-element';
@@ -1 +1,2 @@
1
- export declare const filterByQuery: <T>(items: T[], queryString: string, dlm?: Record<string, string>) => T[];
1
+ import { SmartExpTransformer } from '../smart-exp-transformer';
2
+ export declare const filterByQuery: <T>(items: T[], queryString: string, dlm?: Record<string, string>, transformer?: SmartExpTransformer) => T[];
@@ -0,0 +1 @@
1
+ export * from './smart-exp-transformer';
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import * as dayjs from 'dayjs';
3
+ export declare const SMART_EXP_TRANSFORMER: InjectionToken<SmartExpTransformer>;
4
+ export declare type SmartExpTransformer = (input: string | number | dayjs.Dayjs | any, key?: string) => string;
5
+ export declare const yenTransform: (value: number, _unit?: string) => string;
6
+ export declare const smartExpTransformer: SmartExpTransformer;
@@ -1,10 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- export function defineElement(injector, Component) {
3
- return __awaiter(this, void 0, void 0, function* () {
4
- return import('@angular/elements').then(({ createCustomElement }) => {
5
- const el = createCustomElement(Component, { injector });
6
- customElements.define('pages-blank', el);
7
- });
8
- });
9
- }
10
- //# sourceMappingURL=define-element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"define-element.js","sourceRoot":"","sources":["../../../../../libs/common/utils/define-element.ts"],"names":[],"mappings":";AAEA,MAAM,UAAgB,aAAa,CAAC,QAAkB,EAAE,SAAc;;QACpE,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,mBAAmB,EAAC,EAAE,EAAE;YAChE,MAAM,EAAE,GAAG,mBAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;CAAA","sourcesContent":["import { Injector } from '@angular/core';\n\nexport async function defineElement(injector: Injector, Component: any) {\n return import('@angular/elements').then(({createCustomElement}) => {\n const el = createCustomElement(Component, { injector });\n customElements.define('pages-blank', el);\n });\n}\n"]}