@ng-atomic/components 19.50.0 → 19.80.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.
- package/fesm2022/ng-atomic-components-atoms-chips-input.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
- package/fesm2022/ng-atomic-components-atoms-value-cell.mjs +2 -15
- package/fesm2022/ng-atomic-components-atoms-value-cell.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-extras-editor.mjs +0 -2
- package/fesm2022/ng-atomic-components-extras-editor.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-app.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-breadcrumb-navbar.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-card.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -4
- package/fesm2022/ng-atomic-components-frames-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -7
- package/fesm2022/ng-atomic-components-frames-drawer.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-horizontal-divider.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-line-up.mjs +60 -72
- package/fesm2022/ng-atomic-components-frames-line-up.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +2 -4
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-scroll.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-side-nav.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames.mjs +0 -2
- package/fesm2022/ng-atomic-components-frames.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-action-input-field.mjs +0 -3
- package/fesm2022/ng-atomic-components-molecules-action-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs +0 -1
- package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-thread-message.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-tree-column.mjs +0 -7
- package/fesm2022/ng-atomic-components-molecules-tree-column.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-breadcrumb-navbar.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-definition-list.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs +1 -2
- package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -3
- package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-navigator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-stripe-input-section.mjs +2 -5
- package/fesm2022/ng-atomic-components-organisms-stripe-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-table.mjs +2 -17
- package/fesm2022/ng-atomic-components-organisms-table.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +4 -4
- package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-tree-section.mjs +0 -22
- package/fesm2022/ng-atomic-components-organisms-tree-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms.mjs +0 -1
- package/fesm2022/ng-atomic-components-organisms.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-_index.mjs +2 -4
- package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-pages-form.mjs +2 -4
- package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-services-global-iframe.mjs +2 -62
- package/fesm2022/ng-atomic-components-services-global-iframe.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-_index.mjs +3 -15
- package/fesm2022/ng-atomic-components-templates-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-code-editor.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-entrance.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-form-harness.mjs +0 -3
- package/fesm2022/ng-atomic-components-templates-form-harness.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-form.mjs +4 -4
- package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates.mjs +0 -3
- package/fesm2022/ng-atomic-components-templates.mjs.map +1 -1
- package/package.json +3 -3
- package/types/ng-atomic-components-frames-line-up.d.ts +7 -18
- package/types/ng-atomic-components-frames-line-up.d.ts.map +1 -1
- package/types/ng-atomic-components-frames.d.ts.map +1 -1
- package/types/ng-atomic-components-molecules-tree-column.d.ts +0 -2
- package/types/ng-atomic-components-molecules-tree-column.d.ts.map +1 -1
- package/types/ng-atomic-components-organisms-thread-messages-section.d.ts +1 -1
- package/types/ng-atomic-components-organisms-thread-messages-section.d.ts.map +1 -1
- package/types/ng-atomic-components-organisms-tree-section.d.ts +0 -2
- package/types/ng-atomic-components-organisms-tree-section.d.ts.map +1 -1
- package/types/ng-atomic-components-pages-form.d.ts +0 -2
- package/types/ng-atomic-components-pages-form.d.ts.map +1 -1
- package/types/ng-atomic-components-services-global-iframe.d.ts +0 -34
- package/types/ng-atomic-components-services-global-iframe.d.ts.map +1 -1
- package/types/ng-atomic-components-templates-form-harness.d.ts +0 -3
- package/types/ng-atomic-components-templates-form-harness.d.ts.map +1 -1
- package/types/ng-atomic-components-templates.d.ts +0 -1
- package/types/ng-atomic-components-templates.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-components-pages-_index.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/pages/_index/index.page.ts","../../../../../packages/@ng-atomic/components/src/lib/pages/_index/ng-atomic-components-pages-_index.ts"],"sourcesContent":["import { Component, Directive, InjectionToken, Injector, Provider, Signal, computed, effect, inject, input, runInInjectionContext, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { RouterOutletFrame, RouterOutletFrameStore } from '@ng-atomic/components/frames/router-outlet';\nimport { convertToItemsMap, getType, IndexTemplate, ItemsMap } from '@ng-atomic/components/templates/_index';\nimport { injectAll } from '@ng-atomic/common/stores/entities';\nimport { injectModel, injectModelName } from '@ng-atomic/common/pipes/domain';\nimport { Actions, Effect, InjectableComponent, NgAtomicComponent, TokenizedType, TypeOrTypeFactory, _computed, applyToInput, computeFake, provideComponent, provideEffect, resolveActions } from '@ng-atomic/core';\nimport { buildColumns, injectIndexForm } from '@ng-atomic/components/organisms/table';\nimport { injectIsRootPage, injectNavStartActions, injectSideAppNavStartActions, makeDI, NavActionId } from '@ng-atomic/common/services/ui';\nimport { injectEntityIdName } from '@ng-atomic/components/pages/form';\nimport { computedRawValue, getRawValue$, injectChildRouteParam, injectHasNext, injectRouteSkip } from \"@ng-atomic/common/utils\";\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { IndexPipe } from '@ng-atomic/common/pipes/index';\nimport { map, startWith } from 'rxjs';\nimport { makeInitializerConfig } from '@ng-atomic/common/services/initializer';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { IndexLengthPipe } from '@ng-atomic/common/pipes/index-length';\nimport { SheetService } from '@ng-atomic/common/services/sheets';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { derivedAsync } from 'ngxtension/derived-async';\n\nexport function injectHighlight(key: string): Signal<SelectionModel<string>> {\n const itemId = injectChildRouteParam(key);\n return computed(() => new SelectionModel<string>(true, itemId() ? [itemId()] : []));\n}\n\ntype FilterFunc = (item: { id: string }) => boolean;\nconst FILTER_FUNC = new InjectionToken<(injector?: Injector) => FilterFunc>('FILTER_FUNC');\nexport function provideFilterFunc(useFactory: () => FilterFunc) {\n const wrapped = () => (injector = inject(Injector)) => runInInjectionContext(injector, useFactory);\n return { provide: FILTER_FUNC, useFactory: wrapped };\n}\nexport function injectFilterFunc() {\n return (inject(FILTER_FUNC, { optional: true }) ?? (() => () => true))();\n}\n\nenum ActionId {\n BACK = '[@ng-atomic/components:pages/index] Back',\n CHECKBOX_CLICK = '[@ng-atomic/components/pages/index] CheckboxClick',\n HEADER_CHECKBOX_CLICK = '[@ng-atomic/components/pages/index] HeaderCheckboxClick',\n TABLE_HEADER_CLICK = '[@ng-atomic/components/pages/index] TableHeaderClick',\n TABLE_CHECKBOX_CLICK = '[@ng-atomic/components/pages/index] TableCheckboxClick',\n ADD = '[@ng-atomic/components/pages/index] Add',\n DETAIL = '[@ng-atomic/components/pages/index] Detail',\n CLOSE = '[@ng-atomic/components/pages/index] Close',\n LIST_ITEM_BUTTON_CLICKED = '[@ng-atomic/components/pages/index] ListItemButtonClick',\n TOGGLE_QUERY_FORM = '[@ng-atomic/components/pages/index] ToggleQueryForm',\n}\n\nexport function toggleAllSelection(selection: SelectionModel<string>, items: { id: string }[]) {\n if (selection.selected.length === items.length) {\n return new SelectionModel<string>(true, []);\n } else {\n return new SelectionModel<string>(true, items.map(entry => entry.id));\n }\n}\n\nfunction tryJsonParse(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return {};\n }\n}\n\nexport function recoveryFormValue(form: AbstractControl, key = 'default') {\n // FormControlの場合とFormGroupの場合で処理を分ける\n if (form instanceof FormGroup) {\n form.patchValue(tryJsonParse(localStorage.getItem(key) ?? ''));\n form.valueChanges.subscribe(value => {\n localStorage.setItem(key, JSON.stringify(value));\n });\n } else {\n const value = localStorage.getItem(key);\n console.debug('loaded:', value);\n form.setValue(value);\n form.valueChanges.subscribe(value => {\n console.debug('value:', value);\n localStorage.setItem(key, value);\n });\n }\n}\n\nexport function createToggleNavModeAction(navMode: 'expanded' | 'collapsed') {\n return {\n id: ActionId.TOGGLE_QUERY_FORM,\n icon: navMode === 'collapsed' ? 'expand_less' : 'expand_more',\n };\n}\n\n@TokenizedType()\n@Directive({ standalone: true })\nexport class IndexPageStore<T> extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly DI = makeDI(IndexPageStore, () => {\n const highlight = injectHighlight(injectEntityIdName());\n const isRootPage = injectIsRootPage() as any;\n const navStartActions = injectNavStartActions(isRootPage);\n const filterFunc = injectFilterFunc();\n const modelName = injectModelName();\n return () => ({\n style: {\n width: 'var(--page-width-lv3)',\n 'padding-left': `0`,\n } as Partial<CSSStyleDeclaration>,\n groupedBy: null as unknown as string,\n groupKeys: [],\n items: [],\n itemsMap: undefined as unknown as ItemsMap<any>,\n itemActions: (() => []) as Actions,\n itemsMapper: undefined as unknown as (items: any[]) => any[],\n itemsLength: 0,\n filterFunc,\n title: modelName() ? `${modelName()}一覧` : `取得中...`,\n type: <'list' | 'table' | 'grid'>'table',\n selection: new SelectionModel<string>(true, []),\n highlight: highlight(),\n form: new FormGroup({}) as AbstractControl,\n tableChildrenKey: null,\n navStartActions: navStartActions(),\n navEndActions: <Actions>[],\n });\n }, ['components', 'pages', 'index']);\n\n static readonly Config = {\n provide: IndexPageStore.DI.provideConfig,\n inject: IndexPageStore.DI.injectConfig,\n };\n\n static provideDefault() {\n return [\n IndexPageStore.provideDefaultConfig(),\n IndexPageStore.provideDefaultInitializer(),\n IndexPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideDefaultInitializer() {\n return [\n IndexPageStore.provideFormInitializer(),\n IndexPageStore.provideFormValueStorageInitializer(),\n IndexPageStore.provideItemsLengthInitializer(),\n IndexPageStore.provideItemsMapperInitializer(),\n IndexPageStore.provideAutoTogglePageInitializer(),\n ];\n }\n\n static provideDefaultEffects() {\n return [\n IndexPageStore.provideDetailEffect(),\n IndexPageStore.provideAddEffect(),\n IndexPageStore.provideBackEffect(),\n IndexPageStore.provideHeaderCheckboxClickEffect(),\n IndexPageStore.provideCheckboxClickEffect(),\n IndexPageStore.provideTableHeaderClickEffect(),\n IndexPageStore.provideSideNavEffects(),\n ];\n }\n\n static provideDefaultConfig() {\n return [\n IndexPageStore.Config.provide(),\n IndexPageStore.provideItemActionsConfig(),\n IndexPageStore.provideTypeConfig(),\n ]\n }\n\n static provideTypeConfig() {\n return IndexPageStore.Config.provide(() => {\n return (config, context) => ({ ...config, type: getType(context) });\n });\n }\n\n static provideItemsFromRepository() {\n return (IndexPageStore.Config.provide as any)(() => {\n const Model = injectModel();\n const items = Model ? injectAll(Model as any) : signal([]);\n return (config: any) => ({ ...config, items: items() });\n });\n }\n\n static provideItemActionsConfig() {\n return IndexPageStore.Config.provide(() => {\n return (config) => ({\n ...config,\n itemActions: (item) => [\n { id: ActionId.DETAIL, icon: 'open_in_new', name: '詳細', payload: item },\n ],\n });\n });\n }\n\n static provideSideAppNavStartActions() {\n return IndexPageStore.Config.provide(() => {\n const navStartActions = injectSideAppNavStartActions();\n return (config) => ({\n ...config,\n navStartActions: navStartActions(),\n });\n });\n }\n\n static Initializer = makeInitializerConfig(IndexPageStore);\n static provideFormInitializer() {\n return IndexPageStore.Initializer.provide((store) => {\n const form = injectIndexForm({\n columns: buildColumns([\n 'id',\n 'createdAt',\n 'updatedAt',\n (item: { id: string }) => [{ id: ActionId.DETAIL, icon: 'open_in_new', name: '詳細', payload: item }],\n ]),\n });\n applyToInput(store, 'form', form);\n });\n }\n static provideFormValueStorageInitializer() {\n return IndexPageStore.Initializer.provide((store) => {\n const route = inject(ActivatedRoute);\n const paths = route.pathFromRoot.map(r => r?.routeConfig?.path);\n const key = `@ng-atomic/components/pages/index:${paths.filter((path) => !!path).join('/')}`;\n recoveryFormValue(store.form(), key);\n });\n }\n\n static provideItemsLengthInitializer() {\n return [\n IndexLengthPipe,\n IndexPageStore.Initializer.provide((store) => {\n const pipe = inject(IndexLengthPipe);\n const formValue = computedRawValue(() => store.form());\n effect(() => {\n const itemsLength = pipe.transform(store.items(), formValue());\n applyToInput(store, 'itemsLength', itemsLength);\n });\n }),\n ];\n }\n\n static provideItemsMapperInitializer() {\n return [\n IndexPipe,\n IndexPageStore.Initializer.provide((store) => {\n const formValue = computedRawValue(() => store.form());\n const indexPipe = inject(IndexPipe);\n effect(() => {\n const value = formValue() as any;\n const itemsMapper = (items: any[]) => {\n const filterFunc = store.filterFunc();\n return indexPipe.transform(items.filter(filterFunc), value);\n };\n applyToInput(store, 'itemsMapper', itemsMapper);\n });\n }),\n ];\n }\n\n static provideDisplayedItemsPaginationInitializer(): Provider {\n return IndexPageStore.DI.provideInitializer((store) => {\n const page = derivedAsync(() => getRawValue$(store.form()).pipe(map(value => value.page)));\n effect(() => {\n const offset = page()?.index * (page()?.size ?? 100)\n const limit = offset + (page()?.size ?? 100);\n applyToInput(store, 'displayedItems', store.items().slice(offset, limit));\n });\n });\n }\n\n static provideColumnsInitializer(useFactory: () => string[]): Provider[] {\n return [\n IndexPageStore.Initializer.provide((store) => {\n const columns = useFactory();\n const form = injectIndexForm({ columns: buildColumns(columns) });\n applyToInput(store, 'form', form);\n }),\n ];\n }\n\n static provideItemsInitializer(itemsFactory: () => any[]): Provider[] {\n return [\n IndexPageStore.Initializer.provide((store) => {\n effect(() => {\n const items = itemsFactory();\n applyToInput(store, 'items', items as never[]);\n console.debug('items:', items);\n });\n }),\n ];\n }\n\n static provideToggleQueryFormNavEndActions(): Provider[] {\n return [\n IndexPageStore.Initializer.provide((store) => {\n effect(() => {\n applyToInput(store, 'navEndActions', [\n store.queryFormDisplayed() ? createToggleNavModeAction(store.navMode()) : null,\n ].filter(Boolean) as Actions);\n });\n }),\n provideEffect(ActionId.TOGGLE_QUERY_FORM, () => {\n const store = inject(IndexPageStore);\n return () => {\n applyToInput(store, 'navMode', store.navMode() === 'collapsed' ? 'expanded' : 'collapsed');\n };\n }),\n ];\n }\n\n static provideBackEffect() {\n return provideEffect(IndexPageStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n\n static provideDetailEffect() {\n return provideEffect(IndexPageStore.ActionId.DETAIL, () => {\n const app = inject(AppService);\n const store = inject(IndexPageStore);\n const hasNext = injectHasNext();\n return (item: { id: string }) => {\n app.router.navigate([item.id], {\n relativeTo: store.route,\n replaceUrl: hasNext(),\n });\n }\n });\n }\n\n static provideAddEffect() {\n return provideEffect(IndexPageStore.ActionId.ADD, () => {\n const app = inject(AppService);\n const hasNext = injectHasNext();\n const route = inject(ActivatedRoute);\n return () => {\n app.router.navigate(['new'], {\n relativeTo: route,\n replaceUrl: !!hasNext(),\n });\n };\n });\n }\n\n static provideCheckboxClickEffect() {\n return provideEffect(IndexPageStore.ActionId.TABLE_CHECKBOX_CLICK, () => {\n const store = inject(IndexPageStore);\n return (item: { id: string }) => {\n store.selection().toggle(item.id);\n };\n });\n }\n\n static provideTableHeaderClickEffect() {\n return provideEffect(IndexPageStore.ActionId.TABLE_HEADER_CLICK, () => {\n const store = inject(IndexPageStore);\n return (key: string) => {\n const sort = store.form().get(['sort'])!.value;\n const order = key === sort.key && sort.order === 'asc' ? 'desc' : 'asc';\n store.form().patchValue({ sort: { key, order } });\n };\n });\n }\n\n static provideSideNavEffects() {\n return provideEffect(NavActionId.TOGGLE_SIDE_NAV, () => {\n const app = inject(AppService);\n return () => app.sideNav.toggle();\n });\n }\n\n static provideHeaderCheckboxClickEffect() {\n return provideEffect(IndexPageStore.ActionId.HEADER_CHECKBOX_CLICK, () => {\n const store = inject(IndexPageStore);\n return () => {\n const selection = toggleAllSelection(store.selection(), store.displayedItems());\n applyToInput(store, 'selection', selection);\n }\n });\n }\n\n static provideAutoTogglePageInitializer(): Provider[] {\n return [\n provideEffect(RouterOutletFrameStore.ActionId.DEACTIVATED, () => {\n const store = inject(IndexPageStore);\n const style = computeFake(store.style());\n return () => {\n applyToInput(store, 'style', { ...style, paddingLeft: `0` });\n };\n }),\n IndexPageStore.Initializer.provide((store) => {\n const hasNext = injectHasNext();\n const style = computeFake(store.style());\n effect(() => {\n if (hasNext()) {\n setTimeout(() => {\n applyToInput(store, 'style', {\n ...style,\n paddingLeft: 'var(--page-width-lv1)',\n });\n }, 300);\n }\n });\n }),\n ];\n }\n\n readonly config = IndexPageStore.Config.inject();\n readonly style = input(_computed(() => this.config().style));\n readonly route = inject(ActivatedRoute);\n readonly groupedBy = input(_computed(() => this.config().groupedBy));\n readonly groupKeys = input(_computed(() => this.config().groupKeys));\n readonly type = input(_computed(() => this.config().type));\n readonly items = input(_computed(() => this.config().items));\n readonly itemsMap = input(_computed(() => convertToItemsMap(this.displayedItems(), { mapper: this.itemsMapper() })));\n readonly itemActions = input(_computed(() => this.config().itemActions));\n readonly title = input(_computed(() => this.config().title));\n readonly form = input(_computed(() => this.config().form));\n readonly selection = input(_computed(() => this.config().selection));\n readonly highlight = input(_computed(() => this.config().highlight));\n readonly navStartActions = input(_computed(() => this.config().navStartActions));\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly filterFunc = input(_computed(() => this.config().filterFunc));\n readonly itemsMapper = input(_computed(() => this.config().itemsMapper));\n readonly tableChildrenKey = input(_computed(() => this.config().tableChildrenKey));\n\n readonly itemsLength = input(_computed(() => this.config().itemsLength));\n readonly displayedItems = input(_computed(() => {\n let items = this.items() ?? [];\n const filterFunc = this.filterFunc();\n items = filterFunc ? items.filter(filterFunc) : items;\n const itemsMapper = this.itemsMapper();\n return itemsMapper ? itemsMapper(items) : items;\n }));\n readonly selectedIds = derivedAsync(() => {\n return this.selection().changed.pipe(\n startWith(null),\n map(() => this.selection().selected ?? []),\n );\n }, { initialValue: [] });\n readonly selected = computed(() => {\n const items = this.items() ?? [];\n const selectedIdSet = new Set(this.selectedIds());\n return (items ?? []).filter((entry: any) => selectedIdSet.has(entry.id));\n });\n readonly isAllSelected = computed(() => {\n return this.displayedItems().every(entry => this.selectedIds().includes(entry.id));\n });\n readonly skip = injectRouteSkip();\n\n readonly fb = inject(FormBuilder);\n readonly queryForm = input<FormGroup>(_computed(() => this.fb.group({\n status: [''],\n })));\n readonly queryFormFieldMap = input<FormFieldMap>({});\n readonly queryFormDisplayed = input(false);\n readonly navMode = input<'expanded' | 'collapsed'>('expanded');\n\n constructor() {\n super();\n IndexPageStore.Initializer.initializeStore(this);\n\n effect(() => {\n console.debug('[IndexPageStore] itemsMap:', this.itemsMap());\n });\n }\n}\n\n@TokenizedType()\n@Directive({ standalone: true, selector: 'ng-dashboard' })\nexport class IndexPageDashboardStore extends InjectableComponent {\n static provideComponent = <T>(factory: TypeOrTypeFactory<T>) => provideComponent(IndexPageDashboardStore, factory);\n}\n\n@Component({ selector: 'ng-dashboard', template: '' })\nexport class IndexPageDashboard extends NgAtomicComponent { }\n\n@Component({\n selector: 'pages-index',\n imports: [\n RouterOutletFrame,\n IndexTemplate,\n NgAtomicFormSectionBuilder,\n IndexPageDashboardStore,\n ],\n template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-index\n [style]=\"store.style()\"\n [title]=\"store.title()\"\n [type]=\"store.type()\"\n [tableChildrenKey]=\"store.tableChildrenKey()\"\n [items]=\"store.displayedItems()\"\n [itemsMap]=\"store.itemsMap()\"\n [itemsLength]=\"store.itemsLength()\"\n [itemActions]=\"store.itemActions()\"\n [groupedBy]=\"store.groupedBy()\"\n [groupKeys]=\"store.groupKeys()\"\n [form]=\"store.form()\"\n [selection]=\"store.selection()\"\n [highlight]=\"store.highlight()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [navMode]=\"store.navMode()\"\n (action)=\"dispatch($event)\"\n >\n @if (store.queryFormDisplayed()) {\n <div navDashboard>\n <ng-atomic-form-section-builder\n [form]=\"store.queryForm()\"\n [fieldMap]=\"store.queryFormFieldMap()\"\n />\n </div>\n }\n <ng-dashboard dashboard injectable/>\n </templates-index>\n </frames-router-outlet>\n `,\n styleUrl: './index.page.scss',\n hostDirectives: [\n {\n directive: IndexPageStore,\n inputs: [\n 'items',\n 'itemsMap',\n 'displayedItems',\n ],\n },\n ]\n})\nexport class IndexPage extends NgAtomicComponent {\n protected store = inject(IndexPageStore);\n protected router = inject(Router);\n protected sheet = inject(SheetService);\n\n @Effect(IndexTemplate.ActionId.BACK)\n protected back() {\n this.dispatch({ id: IndexPageStore.ActionId.BACK });\n }\n\n @Effect(NavActionId.CLOSE)\n protected close() {\n this.dispatch({ id: ActionId.CLOSE });\n }\n\n @Effect(IndexTemplate.ActionId.ITEM_CLICK)\n protected itemClick(item: { id: string }) {\n this.dispatch({ id: ActionId.DETAIL, payload: item });\n }\n\n @Effect(IndexTemplate.ActionId.TABLE_HEADER_CHECKBOX_CLICK)\n protected onHeaderCheckboxClick(item: { id: string }) {\n this.dispatch({ id: IndexPageStore.ActionId.HEADER_CHECKBOX_CLICK, payload: item });\n }\n\n // MEMO(@nontangent): シートのアクションをページに持たせるべきかは要検討。\n @Effect(IndexTemplate.ActionId.LIST_ITEM_BUTTON_CLICKED)\n protected onItemButtonClicked(item: any) {\n const actions = resolveActions(this.store.itemActions(), item);\n this.sheet.openActions(actions).then((action) => {\n if (!action) return;\n this.dispatch({\n id: action.id,\n payload: action.payload,\n });\n });\n }\n\n @Effect(IndexTemplate.ActionId.TABLE_HEADER_CLICK)\n protected onTableHeaderClick(payload: any) {\n this.dispatch({ id: IndexPageStore.ActionId.TABLE_HEADER_CLICK, payload });\n }\n\n @Effect(IndexTemplate.ActionId.TABLE_CHECKBOX_CLICK)\n protected onCheckboxClick(payload: any) {\n this.dispatch({ id: IndexPageStore.ActionId.TABLE_CHECKBOX_CLICK, payload });\n }\n\n // @Effect(RouterOutletFrameStore.ActionId.DEACTIVATED)\n // protected onDeactivated() {\n\n // }\n}\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-components-pages-_index.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/pages/_index/index.page.ts","../../../../../packages/@ng-atomic/components/src/lib/pages/_index/ng-atomic-components-pages-_index.ts"],"sourcesContent":["import { Component, Directive, InjectionToken, Injector, Provider, Signal, computed, effect, inject, input, runInInjectionContext, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { RouterOutletFrame, RouterOutletFrameStore } from '@ng-atomic/components/frames/router-outlet';\nimport { convertToItemsMap, getType, IndexTemplate, ItemsMap } from '@ng-atomic/components/templates/_index';\nimport { injectAll } from '@ng-atomic/common/stores/entities';\nimport { injectModel, injectModelName } from '@ng-atomic/common/pipes/domain';\nimport { Actions, Effect, InjectableComponent, NgAtomicComponent, TokenizedType, TypeOrTypeFactory, _computed, applyToInput, computeFake, provideComponent, provideEffect, resolveActions } from '@ng-atomic/core';\nimport { buildColumns, injectIndexForm } from '@ng-atomic/components/organisms/table';\nimport { injectIsRootPage, injectNavStartActions, injectSideAppNavStartActions, makeDI, NavActionId } from '@ng-atomic/common/services/ui';\nimport { injectEntityIdName } from '@ng-atomic/components/pages/form';\nimport { computedRawValue, getRawValue$, injectChildRouteParam, injectHasNext, injectRouteSkip } from \"@ng-atomic/common/utils\";\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { IndexPipe } from '@ng-atomic/common/pipes/index';\nimport { map, startWith } from 'rxjs';\nimport { makeInitializerConfig } from '@ng-atomic/common/services/initializer';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { IndexLengthPipe } from '@ng-atomic/common/pipes/index-length';\nimport { SheetService } from '@ng-atomic/common/services/sheets';\nimport { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { derivedAsync } from 'ngxtension/derived-async';\n\nexport function injectHighlight(key: string): Signal<SelectionModel<string>> {\n const itemId = injectChildRouteParam(key);\n return computed(() => new SelectionModel<string>(true, itemId() ? [itemId()] : []));\n}\n\ntype FilterFunc = (item: { id: string }) => boolean;\nconst FILTER_FUNC = new InjectionToken<(injector?: Injector) => FilterFunc>('FILTER_FUNC');\nexport function provideFilterFunc(useFactory: () => FilterFunc) {\n const wrapped = () => (injector = inject(Injector)) => runInInjectionContext(injector, useFactory);\n return { provide: FILTER_FUNC, useFactory: wrapped };\n}\nexport function injectFilterFunc() {\n return (inject(FILTER_FUNC, { optional: true }) ?? (() => () => true))();\n}\n\nenum ActionId {\n BACK = '[@ng-atomic/components:pages/index] Back',\n CHECKBOX_CLICK = '[@ng-atomic/components/pages/index] CheckboxClick',\n HEADER_CHECKBOX_CLICK = '[@ng-atomic/components/pages/index] HeaderCheckboxClick',\n TABLE_HEADER_CLICK = '[@ng-atomic/components/pages/index] TableHeaderClick',\n TABLE_CHECKBOX_CLICK = '[@ng-atomic/components/pages/index] TableCheckboxClick',\n ADD = '[@ng-atomic/components/pages/index] Add',\n DETAIL = '[@ng-atomic/components/pages/index] Detail',\n CLOSE = '[@ng-atomic/components/pages/index] Close',\n LIST_ITEM_BUTTON_CLICKED = '[@ng-atomic/components/pages/index] ListItemButtonClick',\n TOGGLE_QUERY_FORM = '[@ng-atomic/components/pages/index] ToggleQueryForm',\n}\n\nexport function toggleAllSelection(selection: SelectionModel<string>, items: { id: string }[]) {\n if (selection.selected.length === items.length) {\n return new SelectionModel<string>(true, []);\n } else {\n return new SelectionModel<string>(true, items.map(entry => entry.id));\n }\n}\n\nfunction tryJsonParse(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return {};\n }\n}\n\nexport function recoveryFormValue(form: AbstractControl, key = 'default') {\n \n if (form instanceof FormGroup) {\n form.patchValue(tryJsonParse(localStorage.getItem(key) ?? ''));\n form.valueChanges.subscribe(value => {\n localStorage.setItem(key, JSON.stringify(value));\n });\n } else {\n const value = localStorage.getItem(key);\n console.debug('loaded:', value);\n form.setValue(value);\n form.valueChanges.subscribe(value => {\n console.debug('value:', value);\n localStorage.setItem(key, value);\n });\n }\n}\n\nexport function createToggleNavModeAction(navMode: 'expanded' | 'collapsed') {\n return {\n id: ActionId.TOGGLE_QUERY_FORM,\n icon: navMode === 'collapsed' ? 'expand_less' : 'expand_more',\n };\n}\n\n@TokenizedType()\n@Directive({ standalone: true })\nexport class IndexPageStore<T> extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly DI = makeDI(IndexPageStore, () => {\n const highlight = injectHighlight(injectEntityIdName());\n const isRootPage = injectIsRootPage() as any;\n const navStartActions = injectNavStartActions(isRootPage);\n const filterFunc = injectFilterFunc();\n const modelName = injectModelName();\n return () => ({\n style: {\n width: 'var(--page-width-lv3)',\n 'padding-left': `0`,\n } as Partial<CSSStyleDeclaration>,\n groupedBy: null as unknown as string,\n groupKeys: [],\n items: [],\n itemsMap: undefined as unknown as ItemsMap<any>,\n itemActions: (() => []) as Actions,\n itemsMapper: undefined as unknown as (items: any[]) => any[],\n itemsLength: 0,\n filterFunc,\n title: modelName() ? `${modelName()}一覧` : `取得中...`,\n type: <'list' | 'table' | 'grid'>'table',\n selection: new SelectionModel<string>(true, []),\n highlight: highlight(),\n form: new FormGroup({}) as AbstractControl,\n tableChildrenKey: null,\n navStartActions: navStartActions(),\n navEndActions: <Actions>[],\n });\n }, ['components', 'pages', 'index']);\n\n static readonly Config = {\n provide: IndexPageStore.DI.provideConfig,\n inject: IndexPageStore.DI.injectConfig,\n };\n\n static provideDefault() {\n return [\n IndexPageStore.provideDefaultConfig(),\n IndexPageStore.provideDefaultInitializer(),\n IndexPageStore.provideDefaultEffects(),\n ];\n }\n\n static provideDefaultInitializer() {\n return [\n IndexPageStore.provideFormInitializer(),\n IndexPageStore.provideFormValueStorageInitializer(),\n IndexPageStore.provideItemsLengthInitializer(),\n IndexPageStore.provideItemsMapperInitializer(),\n IndexPageStore.provideAutoTogglePageInitializer(),\n ];\n }\n\n static provideDefaultEffects() {\n return [\n IndexPageStore.provideDetailEffect(),\n IndexPageStore.provideAddEffect(),\n IndexPageStore.provideBackEffect(),\n IndexPageStore.provideHeaderCheckboxClickEffect(),\n IndexPageStore.provideCheckboxClickEffect(),\n IndexPageStore.provideTableHeaderClickEffect(),\n IndexPageStore.provideSideNavEffects(),\n ];\n }\n\n static provideDefaultConfig() {\n return [\n IndexPageStore.Config.provide(),\n IndexPageStore.provideItemActionsConfig(),\n IndexPageStore.provideTypeConfig(),\n ]\n }\n\n static provideTypeConfig() {\n return IndexPageStore.Config.provide(() => {\n return (config, context) => ({ ...config, type: getType(context) });\n });\n }\n\n static provideItemsFromRepository() {\n return (IndexPageStore.Config.provide as any)(() => {\n const Model = injectModel();\n const items = Model ? injectAll(Model as any) : signal([]);\n return (config: any) => ({ ...config, items: items() });\n });\n }\n\n static provideItemActionsConfig() {\n return IndexPageStore.Config.provide(() => {\n return (config) => ({\n ...config,\n itemActions: (item) => [\n { id: ActionId.DETAIL, icon: 'open_in_new', name: '詳細', payload: item },\n ],\n });\n });\n }\n\n static provideSideAppNavStartActions() {\n return IndexPageStore.Config.provide(() => {\n const navStartActions = injectSideAppNavStartActions();\n return (config) => ({\n ...config,\n navStartActions: navStartActions(),\n });\n });\n }\n\n static Initializer = makeInitializerConfig(IndexPageStore);\n static provideFormInitializer() {\n return IndexPageStore.Initializer.provide((store) => {\n const form = injectIndexForm({\n columns: buildColumns([\n 'id',\n 'createdAt',\n 'updatedAt',\n (item: { id: string }) => [{ id: ActionId.DETAIL, icon: 'open_in_new', name: '詳細', payload: item }],\n ]),\n });\n applyToInput(store, 'form', form);\n });\n }\n static provideFormValueStorageInitializer() {\n return IndexPageStore.Initializer.provide((store) => {\n const route = inject(ActivatedRoute);\n const paths = route.pathFromRoot.map(r => r?.routeConfig?.path);\n const key = `@ng-atomic/components/pages/index:${paths.filter((path) => !!path).join('/')}`;\n recoveryFormValue(store.form(), key);\n });\n }\n\n static provideItemsLengthInitializer() {\n return [\n IndexLengthPipe,\n IndexPageStore.Initializer.provide((store) => {\n const pipe = inject(IndexLengthPipe);\n const formValue = computedRawValue(() => store.form());\n effect(() => {\n const itemsLength = pipe.transform(store.items(), formValue());\n applyToInput(store, 'itemsLength', itemsLength);\n });\n }),\n ];\n }\n\n static provideItemsMapperInitializer() {\n return [\n IndexPipe,\n IndexPageStore.Initializer.provide((store) => {\n const formValue = computedRawValue(() => store.form());\n const indexPipe = inject(IndexPipe);\n effect(() => {\n const value = formValue() as any;\n const itemsMapper = (items: any[]) => {\n const filterFunc = store.filterFunc();\n return indexPipe.transform(items.filter(filterFunc), value);\n };\n applyToInput(store, 'itemsMapper', itemsMapper);\n });\n }),\n ];\n }\n\n static provideDisplayedItemsPaginationInitializer(): Provider {\n return IndexPageStore.DI.provideInitializer((store) => {\n const page = derivedAsync(() => getRawValue$(store.form()).pipe(map(value => value.page)));\n effect(() => {\n const offset = page()?.index * (page()?.size ?? 100)\n const limit = offset + (page()?.size ?? 100);\n applyToInput(store, 'displayedItems', store.items().slice(offset, limit));\n });\n });\n }\n\n static provideColumnsInitializer(useFactory: () => string[]): Provider[] {\n return [\n IndexPageStore.Initializer.provide((store) => {\n const columns = useFactory();\n const form = injectIndexForm({ columns: buildColumns(columns) });\n applyToInput(store, 'form', form);\n }),\n ];\n }\n\n static provideItemsInitializer(itemsFactory: () => any[]): Provider[] {\n return [\n IndexPageStore.Initializer.provide((store) => {\n effect(() => {\n const items = itemsFactory();\n applyToInput(store, 'items', items as never[]);\n console.debug('items:', items);\n });\n }),\n ];\n }\n\n static provideToggleQueryFormNavEndActions(): Provider[] {\n return [\n IndexPageStore.Initializer.provide((store) => {\n effect(() => {\n applyToInput(store, 'navEndActions', [\n store.queryFormDisplayed() ? createToggleNavModeAction(store.navMode()) : null,\n ].filter(Boolean) as Actions);\n });\n }),\n provideEffect(ActionId.TOGGLE_QUERY_FORM, () => {\n const store = inject(IndexPageStore);\n return () => {\n applyToInput(store, 'navMode', store.navMode() === 'collapsed' ? 'expanded' : 'collapsed');\n };\n }),\n ];\n }\n\n static provideBackEffect() {\n return provideEffect(IndexPageStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n\n static provideDetailEffect() {\n return provideEffect(IndexPageStore.ActionId.DETAIL, () => {\n const app = inject(AppService);\n const store = inject(IndexPageStore);\n const hasNext = injectHasNext();\n return (item: { id: string }) => {\n app.router.navigate([item.id], {\n relativeTo: store.route,\n replaceUrl: hasNext(),\n });\n }\n });\n }\n\n static provideAddEffect() {\n return provideEffect(IndexPageStore.ActionId.ADD, () => {\n const app = inject(AppService);\n const hasNext = injectHasNext();\n const route = inject(ActivatedRoute);\n return () => {\n app.router.navigate(['new'], {\n relativeTo: route,\n replaceUrl: !!hasNext(),\n });\n };\n });\n }\n\n static provideCheckboxClickEffect() {\n return provideEffect(IndexPageStore.ActionId.TABLE_CHECKBOX_CLICK, () => {\n const store = inject(IndexPageStore);\n return (item: { id: string }) => {\n store.selection().toggle(item.id);\n };\n });\n }\n\n static provideTableHeaderClickEffect() {\n return provideEffect(IndexPageStore.ActionId.TABLE_HEADER_CLICK, () => {\n const store = inject(IndexPageStore);\n return (key: string) => {\n const sort = store.form().get(['sort'])!.value;\n const order = key === sort.key && sort.order === 'asc' ? 'desc' : 'asc';\n store.form().patchValue({ sort: { key, order } });\n };\n });\n }\n\n static provideSideNavEffects() {\n return provideEffect(NavActionId.TOGGLE_SIDE_NAV, () => {\n const app = inject(AppService);\n return () => app.sideNav.toggle();\n });\n }\n\n static provideHeaderCheckboxClickEffect() {\n return provideEffect(IndexPageStore.ActionId.HEADER_CHECKBOX_CLICK, () => {\n const store = inject(IndexPageStore);\n return () => {\n const selection = toggleAllSelection(store.selection(), store.displayedItems());\n applyToInput(store, 'selection', selection);\n }\n });\n }\n\n static provideAutoTogglePageInitializer(): Provider[] {\n return [\n provideEffect(RouterOutletFrameStore.ActionId.DEACTIVATED, () => {\n const store = inject(IndexPageStore);\n const style = computeFake(store.style());\n return () => {\n applyToInput(store, 'style', { ...style, paddingLeft: `0` });\n };\n }),\n IndexPageStore.Initializer.provide((store) => {\n const hasNext = injectHasNext();\n const style = computeFake(store.style());\n effect(() => {\n if (hasNext()) {\n setTimeout(() => {\n applyToInput(store, 'style', {\n ...style,\n paddingLeft: 'var(--page-width-lv1)',\n });\n }, 300);\n }\n });\n }),\n ];\n }\n\n readonly config = IndexPageStore.Config.inject();\n readonly style = input(_computed(() => this.config().style));\n readonly route = inject(ActivatedRoute);\n readonly groupedBy = input(_computed(() => this.config().groupedBy));\n readonly groupKeys = input(_computed(() => this.config().groupKeys));\n readonly type = input(_computed(() => this.config().type));\n readonly items = input(_computed(() => this.config().items));\n readonly itemsMap = input(_computed(() => convertToItemsMap(this.displayedItems(), { mapper: this.itemsMapper() })));\n readonly itemActions = input(_computed(() => this.config().itemActions));\n readonly title = input(_computed(() => this.config().title));\n readonly form = input(_computed(() => this.config().form));\n readonly selection = input(_computed(() => this.config().selection));\n readonly highlight = input(_computed(() => this.config().highlight));\n readonly navStartActions = input(_computed(() => this.config().navStartActions));\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly filterFunc = input(_computed(() => this.config().filterFunc));\n readonly itemsMapper = input(_computed(() => this.config().itemsMapper));\n readonly tableChildrenKey = input(_computed(() => this.config().tableChildrenKey));\n\n readonly itemsLength = input(_computed(() => this.config().itemsLength));\n readonly displayedItems = input(_computed(() => {\n let items = this.items() ?? [];\n const filterFunc = this.filterFunc();\n items = filterFunc ? items.filter(filterFunc) : items;\n const itemsMapper = this.itemsMapper();\n return itemsMapper ? itemsMapper(items) : items;\n }));\n readonly selectedIds = derivedAsync(() => {\n return this.selection().changed.pipe(\n startWith(null),\n map(() => this.selection().selected ?? []),\n );\n }, { initialValue: [] });\n readonly selected = computed(() => {\n const items = this.items() ?? [];\n const selectedIdSet = new Set(this.selectedIds());\n return (items ?? []).filter((entry: any) => selectedIdSet.has(entry.id));\n });\n readonly isAllSelected = computed(() => {\n return this.displayedItems().every(entry => this.selectedIds().includes(entry.id));\n });\n readonly skip = injectRouteSkip();\n\n readonly fb = inject(FormBuilder);\n readonly queryForm = input<FormGroup>(_computed(() => this.fb.group({\n status: [''],\n })));\n readonly queryFormFieldMap = input<FormFieldMap>({});\n readonly queryFormDisplayed = input(false);\n readonly navMode = input<'expanded' | 'collapsed'>('expanded');\n\n constructor() {\n super();\n IndexPageStore.Initializer.initializeStore(this);\n\n effect(() => {\n console.debug('[IndexPageStore] itemsMap:', this.itemsMap());\n });\n }\n}\n\n@TokenizedType()\n@Directive({ standalone: true, selector: 'ng-dashboard' })\nexport class IndexPageDashboardStore extends InjectableComponent {\n static provideComponent = <T>(factory: TypeOrTypeFactory<T>) => provideComponent(IndexPageDashboardStore, factory);\n}\n\n@Component({ selector: 'ng-dashboard', template: '' })\nexport class IndexPageDashboard extends NgAtomicComponent { }\n\n@Component({\n selector: 'pages-index',\n imports: [\n RouterOutletFrame,\n IndexTemplate,\n NgAtomicFormSectionBuilder,\n IndexPageDashboardStore,\n ],\n template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-index\n [style]=\"store.style()\"\n [title]=\"store.title()\"\n [type]=\"store.type()\"\n [tableChildrenKey]=\"store.tableChildrenKey()\"\n [items]=\"store.displayedItems()\"\n [itemsMap]=\"store.itemsMap()\"\n [itemsLength]=\"store.itemsLength()\"\n [itemActions]=\"store.itemActions()\"\n [groupedBy]=\"store.groupedBy()\"\n [groupKeys]=\"store.groupKeys()\"\n [form]=\"store.form()\"\n [selection]=\"store.selection()\"\n [highlight]=\"store.highlight()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [navMode]=\"store.navMode()\"\n (action)=\"dispatch($event)\"\n >\n @if (store.queryFormDisplayed()) {\n <div navDashboard>\n <ng-atomic-form-section-builder\n [form]=\"store.queryForm()\"\n [fieldMap]=\"store.queryFormFieldMap()\"\n />\n </div>\n }\n <ng-dashboard dashboard injectable/>\n </templates-index>\n </frames-router-outlet>\n `,\n styleUrl: './index.page.scss',\n hostDirectives: [\n {\n directive: IndexPageStore,\n inputs: [\n 'items',\n 'itemsMap',\n 'displayedItems',\n ],\n },\n ]\n})\nexport class IndexPage extends NgAtomicComponent {\n protected store = inject(IndexPageStore);\n protected router = inject(Router);\n protected sheet = inject(SheetService);\n\n @Effect(IndexTemplate.ActionId.BACK)\n protected back() {\n this.dispatch({ id: IndexPageStore.ActionId.BACK });\n }\n\n @Effect(NavActionId.CLOSE)\n protected close() {\n this.dispatch({ id: ActionId.CLOSE });\n }\n\n @Effect(IndexTemplate.ActionId.ITEM_CLICK)\n protected itemClick(item: { id: string }) {\n this.dispatch({ id: ActionId.DETAIL, payload: item });\n }\n\n @Effect(IndexTemplate.ActionId.TABLE_HEADER_CHECKBOX_CLICK)\n protected onHeaderCheckboxClick(item: { id: string }) {\n this.dispatch({ id: IndexPageStore.ActionId.HEADER_CHECKBOX_CLICK, payload: item });\n }\n\n \n @Effect(IndexTemplate.ActionId.LIST_ITEM_BUTTON_CLICKED)\n protected onItemButtonClicked(item: any) {\n const actions = resolveActions(this.store.itemActions(), item);\n this.sheet.openActions(actions).then((action) => {\n if (!action) return;\n this.dispatch({\n id: action.id,\n payload: action.payload,\n });\n });\n }\n\n @Effect(IndexTemplate.ActionId.TABLE_HEADER_CLICK)\n protected onTableHeaderClick(payload: any) {\n this.dispatch({ id: IndexPageStore.ActionId.TABLE_HEADER_CLICK, payload });\n }\n\n @Effect(IndexTemplate.ActionId.TABLE_CHECKBOX_CLICK)\n protected onCheckboxClick(payload: any) {\n this.dispatch({ id: IndexPageStore.ActionId.TABLE_CHECKBOX_CLICK, payload });\n }\n\n \n \n\n \n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ class ColumnsPage extends NgAtomicComponent {
|
|
|
78
78
|
(action)="dispatch($event)"
|
|
79
79
|
/>
|
|
80
80
|
</frames-router-outlet>
|
|
81
|
-
`, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-columns-
|
|
81
|
+
`, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-columns-zijD: var(--page-width-lv1);--page-width-lv2-SCOPED-IN-columns-zijD: var(--page-width-lv2);--page-width-lv3-SCOPED-IN-columns-zijD: var(--page-width-lv3);--primary-color-SCOPED-IN-columns-zijD: var(--primary-color);--on-primary-color-SCOPED-IN-columns-zijD: var(--on-primary-color);--surface-color-SCOPED-IN-columns-zijD: var(--surface-color);--on-surface-color-SCOPED-IN-columns-zijD: var(--on-surface-color);--on-background-color-SCOPED-IN-columns-zijD: var(--on-background-color);--background-color-SCOPED-IN-columns-zijD: var(--background-color);--navigator-background-color-SCOPED-IN-columns-zijD: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-columns-zijD: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-columns-zijD: var(--table-background-color);--table-on-background-color-SCOPED-IN-columns-zijD: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-columns-zijD)}:host *{--primary-color: var(--primary-color-SCOPED-IN-columns-zijD);--on-primary-color: var(--on-primary-color-SCOPED-IN-columns-zijD);--surface-color: var(--surface-color-SCOPED-IN-columns-zijD);--on-surface-color: var(--on-surface-color-SCOPED-IN-columns-zijD);--background-color: var(--background-color-SCOPED-IN-columns-zijD);--on-background-color: var(--on-background-color-SCOPED-IN-columns-zijD);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-columns-zijD);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-columns-zijD);--table-background-color: var(--table-background-color-SCOPED-IN-columns-zijD);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-columns-zijD)}\n"], dependencies: [{ kind: "component", type: ColumnsTemplate, selector: "templates-columns" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }] }); }
|
|
82
82
|
}
|
|
83
83
|
__decorate([
|
|
84
84
|
Effect(NavActionId.BACK),
|
|
@@ -114,7 +114,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
|
|
|
114
114
|
'form',
|
|
115
115
|
],
|
|
116
116
|
},
|
|
117
|
-
], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-columns-
|
|
117
|
+
], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-columns-zijD: var(--page-width-lv1);--page-width-lv2-SCOPED-IN-columns-zijD: var(--page-width-lv2);--page-width-lv3-SCOPED-IN-columns-zijD: var(--page-width-lv3);--primary-color-SCOPED-IN-columns-zijD: var(--primary-color);--on-primary-color-SCOPED-IN-columns-zijD: var(--on-primary-color);--surface-color-SCOPED-IN-columns-zijD: var(--surface-color);--on-surface-color-SCOPED-IN-columns-zijD: var(--on-surface-color);--on-background-color-SCOPED-IN-columns-zijD: var(--on-background-color);--background-color-SCOPED-IN-columns-zijD: var(--background-color);--navigator-background-color-SCOPED-IN-columns-zijD: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-columns-zijD: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-columns-zijD: var(--table-background-color);--table-on-background-color-SCOPED-IN-columns-zijD: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-columns-zijD)}:host *{--primary-color: var(--primary-color-SCOPED-IN-columns-zijD);--on-primary-color: var(--on-primary-color-SCOPED-IN-columns-zijD);--surface-color: var(--surface-color-SCOPED-IN-columns-zijD);--on-surface-color: var(--on-surface-color-SCOPED-IN-columns-zijD);--background-color: var(--background-color-SCOPED-IN-columns-zijD);--on-background-color: var(--on-background-color-SCOPED-IN-columns-zijD);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-columns-zijD);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-columns-zijD);--table-background-color: var(--table-background-color-SCOPED-IN-columns-zijD);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-columns-zijD)}\n"] }]
|
|
118
118
|
}], propDecorators: { back: [], close: [] } });
|
|
119
119
|
|
|
120
120
|
/**
|
|
@@ -132,9 +132,7 @@ class FormPageStore extends InjectableComponent {
|
|
|
132
132
|
this.style = input(_computed(() => this.config().style), ...(ngDevMode ? [{ debugName: "style" }] : []));
|
|
133
133
|
this.form = input(_computed(() => this.config().form), ...(ngDevMode ? [{ debugName: "form" }] : []));
|
|
134
134
|
this.formFlatExcludes = input(_computed(() => this.config().formFlatExcludes), ...(ngDevMode ? [{ debugName: "formFlatExcludes" }] : []));
|
|
135
|
-
/** @deprecated */
|
|
136
135
|
this.entityId = input(_computed(() => this.config().entityId), ...(ngDevMode ? [{ debugName: "entityId" }] : []));
|
|
137
|
-
/** @deprecated */
|
|
138
136
|
this.entity = input(_computed(() => this.config().entity), ...(ngDevMode ? [{ debugName: "entity" }] : []));
|
|
139
137
|
this.title = input(_computed(() => this.config().title), ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
140
138
|
this.actions = input(_computed(() => {
|
|
@@ -202,7 +200,7 @@ class FormPage extends NgAtomicComponent {
|
|
|
202
200
|
(action)="dispatch($event)"
|
|
203
201
|
/>
|
|
204
202
|
</frames-router-outlet>
|
|
205
|
-
`, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-form-
|
|
203
|
+
`, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-form-lTld: var(--page-width-lv1);--page-width-lv2-SCOPED-IN-form-lTld: var(--page-width-lv2);--page-width-lv3-SCOPED-IN-form-lTld: var(--page-width-lv3);--primary-color-SCOPED-IN-form-lTld: var(--primary-color);--on-primary-color-SCOPED-IN-form-lTld: var(--on-primary-color);--surface-color-SCOPED-IN-form-lTld: var(--surface-color);--on-surface-color-SCOPED-IN-form-lTld: var(--on-surface-color);--on-background-color-SCOPED-IN-form-lTld: var(--on-background-color);--background-color-SCOPED-IN-form-lTld: var(--background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-form-lTld)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-lTld);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-lTld);--surface-color: var(--surface-color-SCOPED-IN-form-lTld);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-lTld);--background-color: var(--background-color-SCOPED-IN-form-lTld);--on-background-color: var(--on-background-color-SCOPED-IN-form-lTld)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }] }); }
|
|
206
204
|
}
|
|
207
205
|
__decorate([
|
|
208
206
|
Effect(FormTemplate.ActionId.BACK),
|
|
@@ -258,7 +256,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
|
|
|
258
256
|
'outletName',
|
|
259
257
|
],
|
|
260
258
|
},
|
|
261
|
-
], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-form-
|
|
259
|
+
], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-form-lTld: var(--page-width-lv1);--page-width-lv2-SCOPED-IN-form-lTld: var(--page-width-lv2);--page-width-lv3-SCOPED-IN-form-lTld: var(--page-width-lv3);--primary-color-SCOPED-IN-form-lTld: var(--primary-color);--on-primary-color-SCOPED-IN-form-lTld: var(--on-primary-color);--surface-color-SCOPED-IN-form-lTld: var(--surface-color);--on-surface-color-SCOPED-IN-form-lTld: var(--on-surface-color);--on-background-color-SCOPED-IN-form-lTld: var(--on-background-color);--background-color-SCOPED-IN-form-lTld: var(--background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-form-lTld)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-lTld);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-lTld);--surface-color: var(--surface-color-SCOPED-IN-form-lTld);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-lTld);--background-color: var(--background-color-SCOPED-IN-form-lTld);--on-background-color: var(--on-background-color-SCOPED-IN-form-lTld)}\n"] }]
|
|
262
260
|
}], propDecorators: { back: [], close: [], fileSelected: [] } });
|
|
263
261
|
|
|
264
262
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-components-pages-form.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/pages/form/form.page.ts","../../../../../packages/@ng-atomic/components/src/lib/pages/form/ng-atomic-components-pages-form.ts"],"sourcesContent":["import { Component, Directive, InjectionToken, computed, effect, inject, input, signal } from '@angular/core';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { FormTemplate } from '@ng-atomic/components/templates/form';\nimport { Action, Effect, InjectableComponent, NgAtomicComponent, _computed, applyToInput, provideEffect } from '@ng-atomic/core';\nimport { AbstractControl, FormBuilder } from '@angular/forms';\nimport { injectOne } from '@ng-atomic/common/stores/entities';\nimport { LoadingService } from '@ng-atomic/common/services/loading';\nimport { injectModel, injectModelName } from '@ng-atomic/common/pipes/domain';\nimport { SnackBarService } from '@ng-atomic/common/services/snack-bar';\nimport { injectIsRootPage, injectNavStartActions, injectSideAppNavStartActions, makeDI, NavActionId } from '@ng-atomic/common/services/ui';\nimport { injectHasNext, injectRouteParam, injectRouteParams, injectRouteSkip } from '@ng-atomic/common/utils';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { camelCase } from 'lodash-es';\nimport { computedAsync } from 'ngxtension/computed-async';\nimport { map, startWith } from 'rxjs';\nimport { ActivatedRoute, PRIMARY_OUTLET, Router } from '@angular/router';\n\nenum ActionId {\n BACK = '[@ng-atomic/components/pages/form] Back',\n CLOSE = '[@ng-atomic/components/pages/form] Close',\n CREATE = '[@ng-atomic/components/pages/form] Create',\n UPDATE = '[@ng-atomic/components/pages/form] Update',\n DELETE = '[@ng-atomic/components/pages/form] Delete',\n NAVIGATE = '[@ng-atomic/components/pages/form] Navigate',\n FILE_SELECTED = '[@ng-atomic/components/pages/form] File Selected',\n}\n\nexport const ENTITY_ID_NAME = new InjectionToken<string>('[@ng-atomic/components/pages/form] EntityIdName');\n\nexport function provideEntityIdName(name: string) {\n return { provide: ENTITY_ID_NAME, useValue: name };\n}\n\nexport function injectEntityIdName() {\n return inject(ENTITY_ID_NAME, { optional: true }) ?? `${(camelCase(injectModelName()()))}Id`;\n}\n\n@Directive({\n standalone: true,\n selector: 'form-page-store',\n})\nexport class FormPageStore<T> extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly DI = makeDI(FormPageStore, () => {\n const modelName = injectModelName();\n const entityId = injectRouteParam(injectEntityIdName());\n const entity = injectModel() ? injectOne(injectModel() as any, { id: entityId }) : signal(null);\n const fb = inject(FormBuilder);\n const mode = computed(() => entityId() === 'new' ? 'create' : 'update');\n return () => ({\n style: {},\n form: fb.group({\n id: [],\n name: [],\n }) as AbstractControl,\n formFlatExcludes: [] as string[],\n entityId: entityId(),\n entity: entity(),\n mode: mode(),\n navStartActions: <Action[] | Action[][]>[],\n navEndActions: <Action[] | Action[][]>(mode() === 'create' ? [] : [\n [\n { id: FormPageStore.ActionId.DELETE, name: '削除', icon: 'delete', color: 'basic' },\n ],\n ]),\n title: mode() === 'create' ? `${modelName()}の作成` : `${modelName()}の更新`,\n fieldMap: undefined as unknown as FormFieldMap,\n outletName: PRIMARY_OUTLET as string,\n });\n }, ['components', 'pages', 'form']);\n static Config = FormPageStore.DI.Config;\n static Initializer = FormPageStore.DI.Initializer;\n static provideInitializer = FormPageStore.Initializer.provide;\n static provideDefaultInitializer = () => FormPageStore.provideInitializer((store) => {\n effect(() => {\n if (store.entity() === null) {\n store.form().reset();\n } else if (store?.entity && store.entity()) {\n store.form().reset();\n store.form().patchValue(store.entity());\n }\n });\n\n effect(() => {\n if (store.mode() !== 'create') return;\n store.form().reset();\n });\n });\n static provideNavStartActionsInitializer = () => FormPageStore.Initializer.provide((store) => {\n const isRootPage = injectIsRootPage() as any;\n const navStartActions = injectNavStartActions(isRootPage);\n effect(() => {\n applyToInput(store, 'navStartActions', navStartActions());\n });\n });\n static provideSideAppNavStartActionsInitializer = () => FormPageStore.Initializer.provide((store) => {\n const navStartActions = injectSideAppNavStartActions();\n effect(() => {\n applyToInput(store, 'navStartActions', navStartActions());\n });\n });\n static provideBackEffect() {\n return provideEffect(FormPageStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n static provideNavigateEffect() {\n return provideEffect(FormPageStore.ActionId.NAVIGATE, () => {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n const hasNext = injectHasNext();\n return (payload: string[]) => {\n router.navigate(payload, {\n relativeTo: route,\n replaceUrl: !!hasNext(),\n });\n };\n });\n }\n\n static provideDefaultEffects() {\n return [\n FormPageStore.provideNavigateEffect(),\n FormPageStore.provideBackEffect(),\n ];\n }\n\n static provideDefault() {\n return [\n FormPageStore.Config.provide(),\n FormPageStore.provideDefaultInitializer(),\n FormPageStore.provideNavStartActionsInitializer(),\n FormPageStore.provideDefaultEffects(),\n ];\n }\n\n readonly config = FormPageStore.Config.inject();\n readonly style = input(_computed(() => this.config().style));\n readonly form = input(_computed(() => this.config().form));\n readonly formFlatExcludes = input(_computed(() => this.config().formFlatExcludes));\n /** @deprecated */\n readonly entityId = input(_computed(() => this.config().entityId));\n /** @deprecated */\n readonly entity = input(_computed(() => this.config().entity) as T);\n readonly title = input(_computed(() => this.config().title));\n readonly actions = input(_computed<Action[]>(() => {\n return this.mode() === 'create'\n ? [{ id: FormPageStore.ActionId.CREATE, name: '作成', icon: 'add', color: 'primary' }]\n : [{ id: FormPageStore.ActionId.UPDATE, name: '更新', icon: 'save', color: 'primary' }];\n }));\n readonly fieldMap = input(_computed(() => this.config().fieldMap));\n readonly mode = input(_computed(() => this.config().mode));\n readonly navStartActions = input(_computed(() => this.config().navStartActions));\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly params = injectRouteParams();\n readonly skip = injectRouteSkip();\n readonly outletName = input(_computed(() => this.params().outletName));\n\n readonly isValid = computedAsync(() => {\n return this.form().valueChanges.pipe(\n startWith(null),\n map(() => this.form().valid),\n );\n })\n\n readonly activatedActions = computed(() => {\n return this.actions().map(action => ({\n ...action,\n disabled: typeof action.disabled === 'undefined' ? !this.isValid() : action.disabled,\n }));\n })\n\n constructor() {\n super();\n FormPageStore.Initializer.initializeStore(this as any);\n }\n}\n\n@Component({\n selector: 'pages-form',\n imports: [\n RouterOutletFrame,\n FormTemplate,\n ],\n template: `\n <frames-router-outlet [skip]=\"store.skip()\">\n <templates-form\n [style]=\"store.style()\"\n [actions]=\"store.activatedActions()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [title]=\"store.title()\"\n [form]=\"store.form()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [fieldMap]=\"store.fieldMap()\"\n (action)=\"dispatch($event)\"\n />\n </frames-router-outlet>\n `,\n styleUrl: './form.page.scss',\n hostDirectives: [\n {\n directive: FormPageStore,\n inputs: [\n 'fieldMap',\n 'entityId',\n 'entity',\n 'mode',\n 'navEndActions',\n 'actions',\n 'title',\n 'form',\n 'formFlatExcludes',\n 'outletName',\n ],\n },\n ]\n})\nexport class FormPage extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n protected store = inject(FormPageStore);\n readonly loading = inject(LoadingService);\n readonly snackBar = inject(SnackBarService);\n\n @Effect(FormTemplate.ActionId.BACK)\n @Effect(NavActionId.BACK)\n protected back() {\n this.dispatch({ id: FormPageStore.ActionId.BACK });\n }\n\n @Effect(NavActionId.CLOSE)\n protected close() {\n this.dispatch({ id: FormPageStore.ActionId.CLOSE });\n }\n\n @Effect(FormTemplate.ActionId.FILE_SELECTED)\n protected fileSelected(payload: { scope: string, files: File[] }) {\n this.dispatch({ id: FormPageStore.ActionId.FILE_SELECTED, payload });\n }\n}\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-components-pages-form.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/pages/form/form.page.ts","../../../../../packages/@ng-atomic/components/src/lib/pages/form/ng-atomic-components-pages-form.ts"],"sourcesContent":["import { Component, Directive, InjectionToken, computed, effect, inject, input, signal } from '@angular/core';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { FormTemplate } from '@ng-atomic/components/templates/form';\nimport { Action, Effect, InjectableComponent, NgAtomicComponent, _computed, applyToInput, provideEffect } from '@ng-atomic/core';\nimport { AbstractControl, FormBuilder } from '@angular/forms';\nimport { injectOne } from '@ng-atomic/common/stores/entities';\nimport { LoadingService } from '@ng-atomic/common/services/loading';\nimport { injectModel, injectModelName } from '@ng-atomic/common/pipes/domain';\nimport { SnackBarService } from '@ng-atomic/common/services/snack-bar';\nimport { injectIsRootPage, injectNavStartActions, injectSideAppNavStartActions, makeDI, NavActionId } from '@ng-atomic/common/services/ui';\nimport { injectHasNext, injectRouteParam, injectRouteParams, injectRouteSkip } from '@ng-atomic/common/utils';\nimport { FormFieldMap } from '@ng-atomic/common/pipes/smart-field';\nimport { camelCase } from 'lodash-es';\nimport { computedAsync } from 'ngxtension/computed-async';\nimport { map, startWith } from 'rxjs';\nimport { ActivatedRoute, PRIMARY_OUTLET, Router } from '@angular/router';\n\nenum ActionId {\n BACK = '[@ng-atomic/components/pages/form] Back',\n CLOSE = '[@ng-atomic/components/pages/form] Close',\n CREATE = '[@ng-atomic/components/pages/form] Create',\n UPDATE = '[@ng-atomic/components/pages/form] Update',\n DELETE = '[@ng-atomic/components/pages/form] Delete',\n NAVIGATE = '[@ng-atomic/components/pages/form] Navigate',\n FILE_SELECTED = '[@ng-atomic/components/pages/form] File Selected',\n}\n\nexport const ENTITY_ID_NAME = new InjectionToken<string>('[@ng-atomic/components/pages/form] EntityIdName');\n\nexport function provideEntityIdName(name: string) {\n return { provide: ENTITY_ID_NAME, useValue: name };\n}\n\nexport function injectEntityIdName() {\n return inject(ENTITY_ID_NAME, { optional: true }) ?? `${(camelCase(injectModelName()()))}Id`;\n}\n\n@Directive({\n standalone: true,\n selector: 'form-page-store',\n})\nexport class FormPageStore<T> extends InjectableComponent {\n static readonly ActionId = ActionId;\n static readonly DI = makeDI(FormPageStore, () => {\n const modelName = injectModelName();\n const entityId = injectRouteParam(injectEntityIdName());\n const entity = injectModel() ? injectOne(injectModel() as any, { id: entityId }) : signal(null);\n const fb = inject(FormBuilder);\n const mode = computed(() => entityId() === 'new' ? 'create' : 'update');\n return () => ({\n style: {},\n form: fb.group({\n id: [],\n name: [],\n }) as AbstractControl,\n formFlatExcludes: [] as string[],\n entityId: entityId(),\n entity: entity(),\n mode: mode(),\n navStartActions: <Action[] | Action[][]>[],\n navEndActions: <Action[] | Action[][]>(mode() === 'create' ? [] : [\n [\n { id: FormPageStore.ActionId.DELETE, name: '削除', icon: 'delete', color: 'basic' },\n ],\n ]),\n title: mode() === 'create' ? `${modelName()}の作成` : `${modelName()}の更新`,\n fieldMap: undefined as unknown as FormFieldMap,\n outletName: PRIMARY_OUTLET as string,\n });\n }, ['components', 'pages', 'form']);\n static Config = FormPageStore.DI.Config;\n static Initializer = FormPageStore.DI.Initializer;\n static provideInitializer = FormPageStore.Initializer.provide;\n static provideDefaultInitializer = () => FormPageStore.provideInitializer((store) => {\n effect(() => {\n if (store.entity() === null) {\n store.form().reset();\n } else if (store?.entity && store.entity()) {\n store.form().reset();\n store.form().patchValue(store.entity());\n }\n });\n\n effect(() => {\n if (store.mode() !== 'create') return;\n store.form().reset();\n });\n });\n static provideNavStartActionsInitializer = () => FormPageStore.Initializer.provide((store) => {\n const isRootPage = injectIsRootPage() as any;\n const navStartActions = injectNavStartActions(isRootPage);\n effect(() => {\n applyToInput(store, 'navStartActions', navStartActions());\n });\n });\n static provideSideAppNavStartActionsInitializer = () => FormPageStore.Initializer.provide((store) => {\n const navStartActions = injectSideAppNavStartActions();\n effect(() => {\n applyToInput(store, 'navStartActions', navStartActions());\n });\n });\n static provideBackEffect() {\n return provideEffect(FormPageStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n static provideNavigateEffect() {\n return provideEffect(FormPageStore.ActionId.NAVIGATE, () => {\n const router = inject(Router);\n const route = inject(ActivatedRoute);\n const hasNext = injectHasNext();\n return (payload: string[]) => {\n router.navigate(payload, {\n relativeTo: route,\n replaceUrl: !!hasNext(),\n });\n };\n });\n }\n\n static provideDefaultEffects() {\n return [\n FormPageStore.provideNavigateEffect(),\n FormPageStore.provideBackEffect(),\n ];\n }\n\n static provideDefault() {\n return [\n FormPageStore.Config.provide(),\n FormPageStore.provideDefaultInitializer(),\n FormPageStore.provideNavStartActionsInitializer(),\n FormPageStore.provideDefaultEffects(),\n ];\n }\n\n readonly config = FormPageStore.Config.inject();\n readonly style = input(_computed(() => this.config().style));\n readonly form = input(_computed(() => this.config().form));\n readonly formFlatExcludes = input(_computed(() => this.config().formFlatExcludes));\n \n readonly entityId = input(_computed(() => this.config().entityId));\n \n readonly entity = input(_computed(() => this.config().entity) as T);\n readonly title = input(_computed(() => this.config().title));\n readonly actions = input(_computed<Action[]>(() => {\n return this.mode() === 'create'\n ? [{ id: FormPageStore.ActionId.CREATE, name: '作成', icon: 'add', color: 'primary' }]\n : [{ id: FormPageStore.ActionId.UPDATE, name: '更新', icon: 'save', color: 'primary' }];\n }));\n readonly fieldMap = input(_computed(() => this.config().fieldMap));\n readonly mode = input(_computed(() => this.config().mode));\n readonly navStartActions = input(_computed(() => this.config().navStartActions));\n readonly navEndActions = input(_computed(() => this.config().navEndActions));\n readonly params = injectRouteParams();\n readonly skip = injectRouteSkip();\n readonly outletName = input(_computed(() => this.params().outletName));\n\n readonly isValid = computedAsync(() => {\n return this.form().valueChanges.pipe(\n startWith(null),\n map(() => this.form().valid),\n );\n })\n\n readonly activatedActions = computed(() => {\n return this.actions().map(action => ({\n ...action,\n disabled: typeof action.disabled === 'undefined' ? !this.isValid() : action.disabled,\n }));\n })\n\n constructor() {\n super();\n FormPageStore.Initializer.initializeStore(this as any);\n }\n}\n\n@Component({\n selector: 'pages-form',\n imports: [\n RouterOutletFrame,\n FormTemplate,\n ],\n template: `\n <frames-router-outlet [skip]=\"store.skip()\">\n <templates-form\n [style]=\"store.style()\"\n [actions]=\"store.activatedActions()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [title]=\"store.title()\"\n [form]=\"store.form()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [fieldMap]=\"store.fieldMap()\"\n (action)=\"dispatch($event)\"\n />\n </frames-router-outlet>\n `,\n styleUrl: './form.page.scss',\n hostDirectives: [\n {\n directive: FormPageStore,\n inputs: [\n 'fieldMap',\n 'entityId',\n 'entity',\n 'mode',\n 'navEndActions',\n 'actions',\n 'title',\n 'form',\n 'formFlatExcludes',\n 'outletName',\n ],\n },\n ]\n})\nexport class FormPage extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n protected store = inject(FormPageStore);\n readonly loading = inject(LoadingService);\n readonly snackBar = inject(SnackBarService);\n\n @Effect(FormTemplate.ActionId.BACK)\n @Effect(NavActionId.BACK)\n protected back() {\n this.dispatch({ id: FormPageStore.ActionId.BACK });\n }\n\n @Effect(NavActionId.CLOSE)\n protected close() {\n this.dispatch({ id: FormPageStore.ActionId.CLOSE });\n }\n\n @Effect(FormTemplate.ActionId.FILE_SELECTED)\n protected fileSelected(payload: { scope: string, files: File[] }) {\n this.dispatch({ id: FormPageStore.ActionId.FILE_SELECTED, payload });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,6 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* グローバルレベルでiframeを管理するサービス
|
|
7
|
-
* router-outletの外側でiframeを保持し、状態を維持する
|
|
8
|
-
*/
|
|
9
5
|
class GlobalIframeService {
|
|
10
6
|
constructor(rendererFactory, appRef) {
|
|
11
7
|
this.appRef = appRef;
|
|
@@ -15,22 +11,16 @@ class GlobalIframeService {
|
|
|
15
11
|
this.renderer = rendererFactory.createRenderer(null, null);
|
|
16
12
|
this.initializeGlobalContainer();
|
|
17
13
|
}
|
|
18
|
-
/**
|
|
19
|
-
* グローバルコンテナを初期化(document.bodyに直接追加)
|
|
20
|
-
*/
|
|
21
14
|
initializeGlobalContainer() {
|
|
22
15
|
if (typeof document === 'undefined')
|
|
23
16
|
return;
|
|
24
|
-
// 即座にコンテナを作成
|
|
25
17
|
this.createGlobalContainer();
|
|
26
18
|
}
|
|
27
19
|
createGlobalContainer() {
|
|
28
|
-
// 既存のコンテナを探す
|
|
29
20
|
const existingContainer = document.querySelector('[data-global-iframe-container="true"]');
|
|
30
21
|
if (existingContainer) {
|
|
31
22
|
this.globalContainer = existingContainer;
|
|
32
23
|
console.debug('[GlobalIframeService] Reusing existing global container');
|
|
33
|
-
// 既存のiframeを復元
|
|
34
24
|
const existingIframes = existingContainer.querySelectorAll('[data-global-iframe-key]');
|
|
35
25
|
existingIframes.forEach((wrapperEl) => {
|
|
36
26
|
const wrapper = wrapperEl;
|
|
@@ -50,7 +40,6 @@ class GlobalIframeService {
|
|
|
50
40
|
});
|
|
51
41
|
return;
|
|
52
42
|
}
|
|
53
|
-
// 新しいコンテナを作成
|
|
54
43
|
this.globalContainer = this.renderer.createElement('div');
|
|
55
44
|
this.renderer.setAttribute(this.globalContainer, 'data-global-iframe-container', 'true');
|
|
56
45
|
this.renderer.setStyle(this.globalContainer, 'position', 'fixed');
|
|
@@ -59,19 +48,14 @@ class GlobalIframeService {
|
|
|
59
48
|
this.renderer.setStyle(this.globalContainer, 'width', '100%');
|
|
60
49
|
this.renderer.setStyle(this.globalContainer, 'height', '100%');
|
|
61
50
|
this.renderer.setStyle(this.globalContainer, 'pointer-events', 'none');
|
|
62
|
-
this.renderer.setStyle(this.globalContainer, 'z-index', '999');
|
|
51
|
+
this.renderer.setStyle(this.globalContainer, 'z-index', '999');
|
|
63
52
|
this.renderer.appendChild(document.body, this.globalContainer);
|
|
64
53
|
console.debug('[GlobalIframeService] Global container created');
|
|
65
54
|
}
|
|
66
|
-
/**
|
|
67
|
-
* iframeを作成または取得
|
|
68
|
-
*/
|
|
69
55
|
getOrCreateIframe(key, url) {
|
|
70
|
-
// キャッシュをチェック
|
|
71
56
|
const existing = this.iframes.get(key);
|
|
72
57
|
if (existing) {
|
|
73
58
|
console.debug(`[GlobalIframeService] Returning existing iframe for key: ${key}`);
|
|
74
|
-
// URLが変更されている場合のみ更新
|
|
75
59
|
if (existing.url !== url && url) {
|
|
76
60
|
console.debug(`[GlobalIframeService] URL changed from ${existing.url} to ${url}`);
|
|
77
61
|
existing.element.src = url;
|
|
@@ -79,11 +63,9 @@ class GlobalIframeService {
|
|
|
79
63
|
}
|
|
80
64
|
return existing.element;
|
|
81
65
|
}
|
|
82
|
-
// コンテナが存在しない場合は作成
|
|
83
66
|
if (!this.globalContainer) {
|
|
84
67
|
this.createGlobalContainer();
|
|
85
68
|
}
|
|
86
|
-
// 新しいiframeを作成
|
|
87
69
|
console.debug(`[GlobalIframeService] Creating new iframe for key: ${key}`);
|
|
88
70
|
const wrapper = this.renderer.createElement('div');
|
|
89
71
|
this.renderer.setAttribute(wrapper, 'data-global-iframe-key', key);
|
|
@@ -92,7 +74,7 @@ class GlobalIframeService {
|
|
|
92
74
|
this.renderer.setStyle(wrapper, 'left', '0');
|
|
93
75
|
this.renderer.setStyle(wrapper, 'width', '100%');
|
|
94
76
|
this.renderer.setStyle(wrapper, 'height', '100%');
|
|
95
|
-
this.renderer.setStyle(wrapper, 'display', 'none');
|
|
77
|
+
this.renderer.setStyle(wrapper, 'display', 'none');
|
|
96
78
|
this.renderer.setStyle(wrapper, 'pointer-events', 'auto');
|
|
97
79
|
const iframe = this.renderer.createElement('iframe');
|
|
98
80
|
this.renderer.setAttribute(iframe, 'src', url);
|
|
@@ -100,7 +82,6 @@ class GlobalIframeService {
|
|
|
100
82
|
this.renderer.setAttribute(iframe, 'height', '100%');
|
|
101
83
|
this.renderer.setAttribute(iframe, 'frameborder', '0');
|
|
102
84
|
this.renderer.setAttribute(iframe, 'allow', 'accelerometer; autoplay; clipboard-write; clipboard-read; encrypted-media; gyroscope; picture-in-picture; fullscreen; camera; microphone; geolocation; midi; payment; usb; web-share; display-capture');
|
|
103
|
-
// Coderのような複雑なアプリケーションのために、sandbox属性を削除またはより緩い設定にする
|
|
104
85
|
this.renderer.setAttribute(iframe, 'sandbox', 'allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox allow-modals allow-storage-access-by-user-activation allow-downloads allow-pointer-lock allow-presentation allow-top-navigation allow-top-navigation-by-user-activation');
|
|
105
86
|
this.renderer.appendChild(wrapper, iframe);
|
|
106
87
|
if (this.globalContainer) {
|
|
@@ -116,16 +97,10 @@ class GlobalIframeService {
|
|
|
116
97
|
this.iframes.set(key, state);
|
|
117
98
|
return iframe;
|
|
118
99
|
}
|
|
119
|
-
/**
|
|
120
|
-
* 指定されたiframeを表示し、他のiframeを非表示にする
|
|
121
|
-
*/
|
|
122
100
|
showIframe(key, targetRect) {
|
|
123
|
-
// 全てのiframeを非表示
|
|
124
101
|
this.iframes.forEach((state, iframeKey) => {
|
|
125
102
|
if (iframeKey === key) {
|
|
126
|
-
// 対象のiframeを表示
|
|
127
103
|
this.renderer.setStyle(state.wrapper, 'display', 'block');
|
|
128
|
-
// targetRectが指定されている場合は位置を調整
|
|
129
104
|
if (targetRect) {
|
|
130
105
|
this.renderer.setStyle(state.wrapper, 'position', 'fixed');
|
|
131
106
|
this.renderer.setStyle(state.wrapper, 'top', `${targetRect.top}px`);
|
|
@@ -137,16 +112,12 @@ class GlobalIframeService {
|
|
|
137
112
|
console.debug(`[GlobalIframeService] Showing iframe for key: ${key}`);
|
|
138
113
|
}
|
|
139
114
|
else {
|
|
140
|
-
// 他のiframeを非表示
|
|
141
115
|
this.renderer.setStyle(state.wrapper, 'display', 'none');
|
|
142
116
|
state.visible = false;
|
|
143
117
|
}
|
|
144
118
|
});
|
|
145
119
|
this.activeIframe$.next(key);
|
|
146
120
|
}
|
|
147
|
-
/**
|
|
148
|
-
* 指定されたiframeを非表示にする
|
|
149
|
-
*/
|
|
150
121
|
hideIframe(key) {
|
|
151
122
|
const state = this.iframes.get(key);
|
|
152
123
|
if (state) {
|
|
@@ -158,9 +129,6 @@ class GlobalIframeService {
|
|
|
158
129
|
}
|
|
159
130
|
}
|
|
160
131
|
}
|
|
161
|
-
/**
|
|
162
|
-
* 全てのiframeを非表示にする
|
|
163
|
-
*/
|
|
164
132
|
hideAll() {
|
|
165
133
|
this.iframes.forEach((state) => {
|
|
166
134
|
this.renderer.setStyle(state.wrapper, 'display', 'none');
|
|
@@ -169,21 +137,12 @@ class GlobalIframeService {
|
|
|
169
137
|
this.activeIframe$.next(null);
|
|
170
138
|
console.debug('[GlobalIframeService] All iframes hidden');
|
|
171
139
|
}
|
|
172
|
-
/**
|
|
173
|
-
* 現在アクティブなiframeのキーを取得
|
|
174
|
-
*/
|
|
175
140
|
getActiveIframe() {
|
|
176
141
|
return this.activeIframe$.asObservable();
|
|
177
142
|
}
|
|
178
|
-
/**
|
|
179
|
-
* 指定されたキーのiframeが存在するか確認
|
|
180
|
-
*/
|
|
181
143
|
has(key) {
|
|
182
144
|
return this.iframes.has(key);
|
|
183
145
|
}
|
|
184
|
-
/**
|
|
185
|
-
* 指定されたキーのiframeを削除
|
|
186
|
-
*/
|
|
187
146
|
remove(key) {
|
|
188
147
|
const state = this.iframes.get(key);
|
|
189
148
|
if (state && state.wrapper.parentNode) {
|
|
@@ -192,14 +151,10 @@ class GlobalIframeService {
|
|
|
192
151
|
this.iframes.delete(key);
|
|
193
152
|
console.debug(`[GlobalIframeService] Removed iframe with key: ${key}`);
|
|
194
153
|
}
|
|
195
|
-
/**
|
|
196
|
-
* 指定されたキーのiframeをリロード
|
|
197
|
-
*/
|
|
198
154
|
reload(key) {
|
|
199
155
|
const state = this.iframes.get(key);
|
|
200
156
|
if (state) {
|
|
201
157
|
console.debug(`[GlobalIframeService] Reloading iframe for key: ${key}`);
|
|
202
|
-
// srcを一時的に空にしてから再設定することでリロードを強制
|
|
203
158
|
const currentSrc = state.element.src;
|
|
204
159
|
state.element.src = '';
|
|
205
160
|
setTimeout(() => {
|
|
@@ -207,22 +162,7 @@ class GlobalIframeService {
|
|
|
207
162
|
}, 0);
|
|
208
163
|
}
|
|
209
164
|
}
|
|
210
|
-
/**
|
|
211
|
-
* 古いiframeをクリーンアップ
|
|
212
|
-
*/
|
|
213
165
|
cleanup(maxAge = 30 * 60 * 1000) {
|
|
214
|
-
// const now = Date.now();
|
|
215
|
-
// const keysToRemove: string[] = [];
|
|
216
|
-
// this.iframes.forEach((state, key) => {
|
|
217
|
-
// // 現在表示中のiframeは削除しない
|
|
218
|
-
// if (!state.visible) {
|
|
219
|
-
// keysToRemove.push(key);
|
|
220
|
-
// }
|
|
221
|
-
// });
|
|
222
|
-
// keysToRemove.forEach(key => this.remove(key));
|
|
223
|
-
// if (keysToRemove.length > 0) {
|
|
224
|
-
// console.debug(`[GlobalIframeService] Cleaned up ${keysToRemove.length} old iframes`);
|
|
225
|
-
// }
|
|
226
166
|
}
|
|
227
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GlobalIframeService, deps: [{ token: i0.RendererFactory2 }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
228
168
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: GlobalIframeService, providedIn: 'root' }); }
|